- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一 多字节数求和运算,字节拆分运算
实验目的
熟悉emu8086调试程序的使用。
编写两个4字节数的加法、减法运算程序,并运用emu8086进行调试。
3. 编写字节拆分运算程序,并运用emu8086进行调试
实验目的
学习数据传送和算术运算指令
熟悉在PC机上调试程序的方法
emu8086调试程序的使用
启动emu8086
a.在WINDOWS下双击emu8086图标,启动界面如图1所示,用户可以选择新建文本、程序实例、启动指南、近期文档。
2.新建文件
单击图1中的“New”选项,软件会弹出如图2所示的选择界面。
选择empty workspace的选项,打开一个完全空的文档。
3. 编辑程序
如图3所示为编辑程序界面。该编辑界面集文档编辑、指令编译、程序加载、系统工具、在线帮助为一体。
编写完程序后,用户只需单击工具栏上的“emulate”按钮即可仿真运行程序。
4.仿真运行
当用户将程序加载到仿真器后,会同时打开仿真器界面和源程序界面,用户在仿真器界面中也可以同时看到源代码和编译后的机器码。点击的任意一条源程序指令,则对应的机器代码显示为被选显示状态,与此同时,上面的代码指针也会相应变化。用户也可以通过这种操作了解,数据段和堆栈段中各变量或数据在存储器中的情况。
用户可以利用工具栏中的“single step”按钮进行单步跟踪调试,以便仔细观察各寄存器、存储器、变量、标记位等情况,这对于程序初始调试时十分有用;当程序调试完毕,或需要连续运行观察时,则可以使用“run”按钮;当希望返回上一步操作时,则可以使用“step back”按钮;若单击“reload”按钮,则仿真器会重新加载程序,并将指令指针指向程序的第一条指令;您也可以利用“load”按钮,从您保存的文件夹中加载其它程序。用户除使用上述工具栏中的按钮进行仿真调试外,还可以利用其菜单中的其它功能进行更高级的调试和设置。
多字节加法
要求:在当前的数据段内(段基址寄存器DS)的偏移地址为1000H处定义4各字节的被加数78H、56H、34H、12H(即被加数);在偏移地址2000H处定义4字节加数12H、34H、56H、78H(即加数)
程序流程:
程序清单:
MOV SI,1000H ;置被加数指针
MOV DI,2000H ;置加数指针
MOV CX,4 ;数据个数
CLC ;清进位标志
AGAIN: MOV AL,[SI] ;取被加数
ADC AL,[DI] ;加 加数
MOV [SI],AL ;和送回至加数
INC SI ;修改数据指针
INC DI
LOOP AGAIN ;记数—1=0?
五. 拆分字符
拆字
10050H 7 A
10050H
7 A
10052H10051H 0 A 0 7
10052H
10051H
0 A
0 7
程序:
MOV AX,1000H
MOV DS,AX ;数据段基址DS=1000H
MOV SI,50H ;需拆字的指针SI=50H
MOV AL,[SI] ;取字节给AL
AND AL,0FH ;屏蔽高4位
MOV [SI+1],AL ;得到的数据存入10051
MOV AL,[SI] ;再取出需拆字的字节
MOV CL,4
SHR AL,CL ;逻辑右移4次,高4位补0
MOV [SI+2],AL ;存入10052单元
实验内容(实验程序及结果写在练习本上)。
(1)熟悉emu8086各窗口内容。
(2)多字节加法
在编辑窗口输入多字节加法程序。
点击“emulate”进行仿真。
在当前数据段的1000H、2000H偏移地址输入被加数和加数。
用单步命令逐步运行上述程序,运行过程注意每条指令执行后,指定的寄存器或内存的变化,填入下表。
MOV
SI,1000H
;置被加数指针
(SI)=
MOV
DI,2000H
;置加数指针
(DI)=
MOV
CX,
文档评论(0)