实验二 熟悉汇编程序建立及其调试方法
一、实验目的
1.熟悉汇编语言源程序的框架结构,学会编制汇编程序。 2.熟悉汇编语言上机操作的过程,学会汇编程序调试方法。
二、实验内容
1.学习编写汇编语言源程序的方法,了解数据存放格式。 2.阅读给出的程序,找出程序中的错误。
3.通过调试给出的汇编语言源程序,了解并掌握汇编语言程序的建立、汇编、链接、调试、修改和运行等全过程。
三、修改后的程序
STACKSG SEGMENT PARA STACK'STACK' ;定义堆栈段 DB 256 DUP (?) ;堆栈段为256个字节空间, STACKSG ENDS
DATASG SEGMENT PARA 'DATA' ;设置数据段 BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512;定义数据段有20个字的数据 DW 23, 56, 420, 75, 0,-1024,-67,39,-2000 COUNT EQU 20 ;定义计数次数常量COUNT等于20 MAX DW ? ;保留1个字空间,用以存放最大值结果 DATASG ENDS
CODESG SEGMENT ;代码段
ASSUME SS : STACKSG, CS : CODESG ;STACKSG为堆栈段CODESG为代码段 ASSUME DS : DATASG ;DATASG为数据段
ORG 100H ;指令语句的起始偏移量为100H BEGIN: MOV AX, DATASG ;保存最大值结果 MOV DS,AX ;给段寄存器赋值
LEA SI,BLOCK ;将SI设为指向数据的指针
MOV CX,COUNT ;设置循环次数,CX中装入计数初值 DEC CX ;CX循环次数减1
MOV AX,[SI] ;从内存取数到AX
CHKMAX: ADD SI,2 ;取完一次数据,地址偏移量加2
CMP [SI],AX ;数据指针当前所指单元的值与 AX比较 JLE NEXT ;取其中较大者存于AX中 MOV AX,[SI]
NEXT: LOOP CHKMAX ;与数据段最后一个数据比较后跳出循环 MOV MAX,AX ;保存最大值到MAX MOV AH,4CH ;退出程序 INT 21H CODESG ENDS
END BEGIN
程序的功能:输入20个数,比较出数值最大的一个数。
四、实验步骤
1. 建立汇编语言源程序,对所建立的汇编语言源程序进行编译、链接。
2. 运行DEBUG调试程序,装入被调试程序,用U命令查看调入的程序,用R命令查看
并记录当前寄存器内容。
3. 用D命令查看并记录下内存中数据存放格式。
4. 用T命令但不运行程序,观察个条指令执行结果,以及对寄存器、标志位、内存单元
的影响,若查找出程序中的错误,用Q命令退出DEBUG环境修改汇编语言源程序,重复上述步骤,直至整个程序无误。
5. 若将LEA SI,BLOCK语句换成LEA SI,BLOCK+2*COUNT-2,并将ADD SI,2语句改为
SUB SI,2重新运行程序,观察程序运行结果。
6. 若重新给出一组数据后运行程序应该如何操作。
答:在源程序上直接修改数据后进行编译、链接、再用DEBUG程序查错最后生成EXE文件。
MOV DS,AX
7. 若要求找出数据区中最小数,程序将如何修改,并上机调试。
应将JLE NEXT改为JGE NEXT
五、习题与思考
1. 在装入被调试程序后,如何知道分配给该用户程序的数据段在内存中的位置?
答:在DEBUG调试环境中,通过输入-R指令即可知道数据段在内存中的位置。
2. 数据区以什么形式存放用符号数的?
答:通过转换成补码的形式,来存放有符号数。
3. 修改前、后程序在执行时有何区别(提示:观察数据指针的变化)
答:修改程序前:SI=0000到SI=0002到SI=0004再到SI=0006,是一个逐渐递增的过程。 而在将:LEA SI,BLOCK改成LEA SI,BLOCK+2*COUNT-2,并将ADD SI,2改为SUB SI,2后。SI=0000到SI=0026D到SI=0024再到SI=0022,是一个之间递减的过程
4. 程序执行完毕,结果存放在何处?
答:结果放在内存数据段的变量MAX中(0770:0028)
5. 总结一下CS,IP,SS,DS,ES被设置的区别?
答:CS、SS、DS、ES都是通过伪指令ASSUME来设置成与数据段建立联系。而IP则是通过伪指令ORG来进行设置的。
6. 观察伪指令PARA和ORG的作用
答:PARA表示:本段从1节的边界开始(1节为16字节),即段的起始地址能被16整除(段起始地址的低四位为0)。
ORG表示:定义处于当前段的偏移地址。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务