1、精选课件ppt1 程程 序序 的的 调调 试试精选课件ppt2汇编语言源程序编写好以后,必须经过以下几个步骤才能在机器上运行:1 编辑源程序编辑源程序2 汇编源程序汇编源程序3 连接目标程序连接目标程序4 调试可执行程序调试可执行程序5 运行程序、输出结果运行程序、输出结果精选课件ppt31 编辑源程序编辑源程序 利用编辑程序将编写好的源程序通过输入设备送入计算机并以ASCII 码的形式存入内存缓冲区,修改好的源程序在磁盘上建立源程序文件。源程序文件名的格式为:文件名.ASM文件名是用户自己定义的一个标识符,汇编语言源文件名的扩展名必须为.ASM。精选课件ppt42 汇编源程序汇编源程序汇编源
2、程序是利用汇编程序对已编辑好的源程序文件进行汇编,将源程序文件中以ASCII 码表示的助记符指令逐条翻译成机器码指令,并完成源程序中的伪指令所指出的各种操作。最后可在盘上建立3个文件:.OBJ 目标文件.LST 列表文件.CRF 交叉索引文件精选课件ppt5汇编程序是通过对源程序进行两次扫描实现汇编的。第1次扫描的主要工作是在逐条扫描源程序语句的过程中确定各标识符的位置,建立符号表。第2次扫描的工作是根据指令码表、伪指令表、符号表产生机器指令码。为了确定各标识符的位置,汇编程序中采用了一个位置计数器。初值为0,在逐条扫描源程序语句过程中,位置计数器将增量计数,增加的值等于语句所需的字节数。源程
3、序中换段时,位置计数器清零。精选课件ppt6DATA SEGMENTBCD1 DB?,?BCD2 DB?,?BCD3 DB?,?DATA ENDSCODE SEGMETN ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV AL,BCD1 ADD AL,BCD2 DAA MOV BCD3,AL MOV AL,BCD1+1 。END START位置计数器 0024600035812131619语句长度02220003234133精选课件ppt7符号(标识符)符号(标识符)偏移量偏移量所在段所在段类型类型DATA00H段段BCD100HDAT
4、A字节变量字节变量BCD202HDATA字节变量字节变量BCD304HDATA字节变量字节变量CODE00H段段START00HCODE近程标号近程标号第一次扫描结束时的符号表第一次扫描结束时的符号表精选课件ppt8第次扫描通过查阅指令码表、伪指令表、符号表将每条指令汇编成机器指令,并将伪指令中定义的数据置于相应的位置,表达式求值也是在此时进行。精选课件ppt93 连接目标程序连接目标程序汇编后的目标程序必须通过连接程序(LINK)连接成一个可执行程序后才能运行。连接后输出两个文件:.EXE 可执行文件.MAP 内存分配文件精选课件ppt10精选课件ppt114 调试可执行程序调试可执行程序在
5、DOS状态下启动DEGUG程序:C:DEBUG 文件名.EXEDEBUG提示符为精选课件ppt12上机题:1、用A汇编命令在CS:0100单元开始汇编以下程序:MOV AX,1000H MOV DS,AX MOV AX,1010H MOV ES,AX2、用U反汇编命令查看CS:0100以上程序。3、用T单步跟踪命令执行以上4条指令,建立DS、ES段基址。精选课件ppt134、用E命令建立SS、DS、ES各段的数据,其中在SS:0000H-SS:000FH单元分别建立10H-1FH数据在DS:0000H-DS:000FH单元分别建立20H-2FH数据在ES:0000H-ES:000FH单元分别建
6、立30H-3FH数据5、用D命令查看各段所建立数据的正确性精选课件ppt146、用A汇编命令在CS:010AH单元开始继续汇编以下程序:MOV BX,0004MOV CX,5MOV BP,3MOV SI,2MOV DI,0001HMOV AX,CX ;*MOV AX,500HMOV AX,0004MOV AX,ES:0004MOV AX,BX MOV AX,SS:BX+03HMOV AX,BPMOV AX,BP+04HMOV AX,DS:BPMOV AX,ES:BX+02HMOV AX,BXSIMOV AX,BPDIMOV AX,BXDI+02H精选课件ppt157、写出以上*以下各MOV指令SRC的寻址方式,SRC的地址,以及指令执行后的DST AX的值。8、用N命名命令、W写磁盘命令将以上程序写入磁盘保存(保存后也可用L命令重新装入)。9、用T命令单步跟踪以上程序中各指令,当单步跟踪到*以下MOV指令时,每单步执行一条MOV指令,观察AX的变化,并与第7步计算的AX值比较,以检查第7步的计算是否正确,从而检验自己对寻址方式掌握的情况。10、总结8086CPU关于数据的寻址方式,特别是存贮器寻址。