Masm软件使用教程及上机实验问题.pptx
进入Masm for WindowsMasm for Windows集成实验环境第1页/共21页输入汇编程序红方框内是需要输入的汇编程序代码,而其它的汇编程序代码该软件自动生成汇编程序框架第2页/共21页保存汇编程序点击“工具栏”中的“保存”按钮(或“文件/另存为”或“文件/保存”),弹出“另存为”对话框,键入文件名,如“helloworld”,然后点击“保存”即可。第3页/共21页运行程序点击“工具栏”中的“运行”按钮,即可出现程序的运行结果。程序的运行结果的下面的“Press any key to exit”表示按任意键退出DOS窗口。第4页/共21页修改程序语法错误当运行程序发生语法错误时,Masm for Windows集成实验环境会自动定位源程序中错误所在行的位置并高亮显示该行,修改好第一条发生错误行后,双击任一条错误信息,该软件定位源程序中与之相对应错误所在行的位置并高亮显示该行,以便改正错误。第5页/共21页修改程序语法错误提示:汇编程序的语法错误信息的形式:文件名 行号 错误编号错误内容 E:汇编程序helloworld.asm(9):Error A2008:Syntax error:CODES小技巧:一条语句错误可能会产生若干条错误信息,该例就是因为第9行SEGMENT多输入一个S,导致很多错误,只要在第9行SEGMENTS改为SEGMENT即可调试通过。特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。第6页/共21页调试程序在Masm for Windows中集成CV(全称CodeView)与DEGUB两种调试工具,默认为用CV调试程序。(1)用CV调试 先单击“运行”按钮生成EXE文件,再单击“调试”按钮。下图是调试求3+5的汇编程序,当连续按F10或连续在命令窗口输入P或t命令执行到ADD AL,03时,可以看到AL的值为8。第7页/共21页调试程序(2)用DEBUG调试 依次单击“工具/选项”出现图8的界面,选中“DEBUG 调试”,再单击确定。第8页/共21页调试程序 先单击“运行”按钮生成EXE文件,再单击“调试”按钮。说明:图中是调试求3+5的汇编程序,当连续输入P命令执行到ADD AL,03时,可以看到AL的值为8。第9页/共21页在线帮助当编写程序时,有可能忘记某个指令的用法,只要用鼠标点击关键字,按右键在弹出的菜单上选实时帮助(或按F2)即可获得该指令的帮助。第10页/共21页在线帮助下面是获得MOV指令帮助说明第11页/共21页快速打开自己编写过的程序方法一(推荐使用):在编写自己的程序之前,先创建好一个存放自己的程序的文件夹,然后在“Masm for Windows集成实验环境”中依次点击“工具/选项”菜单,打开“选项”对话框在单击“设置”,在弹出的“浏览文件夹”对话框中找到刚创建好的文件夹,进行设置即可。设置好“我的程序文件夹”后,每次在打开或保存自己的文件时,软件会自动定位到自己设置好的文件夹,可以很方便地打开或保存自己的程序。方法二:对于没有创建自己文件的人,可以依次点击“文件/我的程序”,打开“我的程序”对话框,在这里保存着你最近操作过的30个程序,按图中的“提示”操作,即可打开要找的程序。第12页/共21页 上机实验问题上机实验问题第13页/共21页上机实验问题什么是有效地址?有效地址EA是一16位无符号数,表示操作数所在单元到段首的距离即逻辑地址的偏移地址。当操作数是存放在存储器中时,存储器的存储单元的物理地址有两部分组成。一部分是偏移地址;一部分是段地址。在8086/8088的各种寻址方式中,寻找存储单元所需的偏移地址可由各种成分组成,称为有效地址,用EA表示。可以通过存储器寻址方式获得有效地址。第14页/共21页上机实验问题怎么计算物理地址?物理地址=(DS)+有效地址EA 有效地址需要根据具体指令的寻址方式计算,如 MOV AX,BX 其中(DS)=2000H,(BX)=1000H则 物理地址=20000+1000=21000H 需多一个0第15页/共21页上机实验问题INT 21H是什么?是一种软件中断,通过AH里的值来确定具体执行什么中断子程序,参看dos系统功能调INT 21H表(p471)第16页/共21页上机实验问题调试中NV UP EI PL NZ NA PO NC代表什么意思?标志位的符号溢出标志OF(Over flow flag)OV(1)NV(0)方向标志DF(Direction flag)DN(1)UP(0)中断标志IF(Interrupt flag)EI(1)DI(0)符号标志SF(Sign flag)NG(1)PL(0)零标志ZF(Zero flag)ZR(1)NZ(0)辅助标志AF(Auxiliary carry flag)AC(1)NA(0)奇偶标志PF(Parity flag)PE(1)PO(0)进位标志CF(Carry flag)CY(1)NC(0)第17页/共21页上机实验问题为什么程序里都有这两句?MOV AX,DATAS MOV DS,AXmov ax,datas ;将伪段地址放入ax中,实际装入的就是数据段的首地址!在80X86中规定,一个数值不能直接送到段寄存器,所以才会有这样的一次中转!伪指令是属于编译软件的第18页/共21页上机实验问题习题解答(1)寄存器间接寻址 MOV BX,OFFSET BLOCK MOV BX,(6-1)*2 MOV DX,BX;操作数的有效地址存放在BX寄存器中(实现间接寻址)(2)寄存器相对寻址 MOV BX,(6-1)*2 MOV DX,BLOCKBX;操作数的有效地址是基址和位移量之和(3)基址变址寻址 MOV BX,OFFSET BLOCK MOV SI,(6-1)*2 MOV DX,BX SI;操作数的有效地址是基址和变址之和第19页/共21页上机实验问题习题解答该程序AX中存的内容就是偏移TABLE数组3个的地址内容第20页/共21页感谢您的观看!第21页/共21页