- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
东北大学计算机硬件基础第一次实验报告
东 北 大 学
计算机硬件技术基础实验报告
专业班级: 姓名: 学号: 实验题目: 认识汇编语言 日期:
一、实验目的
(1) 掌握顺序程序设计方法;
(2) 学习数据传送及算术和逻辑运算指令的用法;
(3) 熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序的过程。
二、实验内容
首先将FIRST字变量与SECOND字变量相加,结果存至THIRD1存储字中,然后将FIRST与SECOND两个字变量相乘,结果存至THIRD2 开始的两个字中。
三、算法描述流程
四、实验步骤
1. 输入源程序:
DATA????? SEGMENT
FIRST?????????? DW??????? 0D56CH
SECOND?????? DW??????? 1F08H
THIRD1???????? DW??????? ?
THIRD2???????? DW??????? 2 DUP(?)
DATA????? ENDS
CODE???? SEGMENT
????????????? ASSUME CS:CODE,DS:DATA
START:?? MOV????? AX,DATA
????????????? MOV????? DS,AX
????????????? MOV????? AX,FIRST
????????????? ADD?????? AX,SECOND???????? ;求和
????????????? MOV????? THIRD1,AX????????? ;保存
????????????? MOV????? AX,FIRST
????????????? MUL?????? SECOND????????????? ;求积
????????????? MOV????? THIRD2,AX????????? ;保存
????????????? MOV????? THIRD2+2,DX
????????????? MOV????? AH,4CH
????????????? INT??????? 21H
CODE???? ENDS
????????????? END?????? START
2. 保存源文件,执行masm汇编源程序,生成obj目标文件,结果无错误。
3. 执行link连接程序,生成exe可执行文件,结果无错误。
4. 执行debug调试程序,执行程序,在内存中得到结果,验证结果正确,执行d参数命令察看THIRD1和 THIRD2所在的地址单元中的数据为0004字节单元和0006中存放结果。
五、实验结果
1. 执行masm编译源程序 ,生成OBJ文件,得到如下界面:
2. 执行link连接程序,生成exe可执行文件得到如下界面:
3. 执行debug调试程序,使用u进行反编译,得如下界面
4. 执行d参数命令察看DATA所在的地址单元中的数据,得到如下界面:
5.执行t参数命令,单步查看
六、思考题
假如FIRST0000,那么THIRD2的偏移地址是多少?
答:如果FIRST的偏移地址是0000,由题可知,FIRST占用两个字节,SECOND占用两个字节,THIRD1占用两个字节,那么THIRD2的偏移地址为6个字节,由于占用四个字节,所以偏移地址为0006。
七、扩展题
设HEX,HEX+1单元的低4位分别存放一位十六进制数,编制程序将其装配在一个字节中并存入DATA单元,其中,HEX单元的数作为高位部分。
答:
DSEC SEGEMENT
HEX DB 0CH
DB 0DH
DATA DB ?
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DA,AX
MOV AL,HEX
MOV CL,4
SHL AL,CL
ADD AL, HEX+1
MOV DATA,AL
MOV AH,4CH
INT 21H
CSEG ENDS
END START
八、实验心得
理解了汇编语言中编程的基本步骤,掌握了通过地址对数据赋值的方法。掌握汇编语言编制基本顺序结构的算法,包括地址取值和加法的算法步骤等。这个实验,使我可以在编程中认识到直接通过CPU寄存器地址赋值可以大大提高了程序效率,但我要继续练习熟读汇编语言代码的能力。
AX与SECOND求积
文档评论(0)