欢迎来到天天文库
浏览记录
ID:18767716
大小:165.50 KB
页数:6页
时间:2018-09-23
《实验一 两个多字节数的加减运算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一多字节数求和运算,字节拆分运算一.实验目的1.熟悉emu8086调试程序的使用。2.编写两个4字节数的加法、减法运算程序,并运用emu8086进行调试。3.编写字节拆分运算程序,并运用emu8086进行调试二.实验目的1.学习数据传送和算术运算指令2.熟悉在PC机上调试程序的方法三.emu8086调试程序的使用1.启动emu8086a.在WINDOWS下双击emu8086图标,启动界面如图1所示,用户可以选择新建文本、程序实例、启动指南、近期文档。2.新建文件单击图1中的“New”选项,软件会弹出如图2所示的选择界面。选择emptyworkspace的选项,打开一
2、个完全空的文档。3.编辑程序如图3所示为编辑程序界面。该编辑界面集文档编辑、指令编译、程序加载、系统工具、在线帮助为一体。编写完程序后,用户只需单击工具栏上的“emulate”按钮即可仿真运行程序。4.仿真运行当用户将程序加载到仿真器后,会同时打开仿真器界面和源程序界面,用户在仿真器界面中也可以同时看到源代码和编译后的机器码。点击的任意一条源程序指令,则对应的机器代码显示为被选显示状态,与此同时,上面的代码指针也会相应变化。用户也可以通过这种操作了解,数据段和堆栈段中各变量或数据在存储器中的情况。用户可以利用工具栏中的“singlestep”按钮进行单步跟踪调试,以便仔
3、细观察各寄存器、存储器、变量、标记位等情况,这对于程序初始调试时十分有用;当程序调试完毕,或需要连续运行观察时,则可以使用“run”按钮;当希望返回上一步操作时,则可以使用“stepback”按钮;若单击“reload”按钮,则仿真器会重新加载程序,并将指令指针指向程序的第一条指令;您也可以利用“load”按钮,从您保存的文件夹中加载其它程序。用户除使用上述工具栏中的按钮进行仿真调试外,还可以利用其菜单中的其它功能进行更高级的调试和设置。一.多字节加法要求:在当前的数据段内(段基址寄存器DS)的偏移地址为1000H处定义4各字节的被加数78H、56H、34H、12H(即
4、被加数为12345678H);在偏移地址2000H处定义4字节加数12H、34H、56H、78H(即加数为78563412H)程序流程:程序清单:MOVSI,1000H;置被加数指针MOVDI,2000H;置加数指针MOVCX,4;数据个数CLC;清进位标志AGAIN:MOVAL,[SI];取被加数ADCAL,[DI];加加数MOV[SI],AL;和送回至加数INCSI;修改数据指针INCDILOOPAGAIN;记数—1=0?五.拆分字符拆字10050H7A10052H10051H0A07程序:MOVAX,1000HMOVDS,AX;数据段基址DS=1000HMOVSI
5、,50H;需拆字的指针SI=50HMOVAL,[SI];取字节给ALANDAL,0FH;屏蔽高4位MOV[SI+1],AL;得到的数据存入10051MOVAL,[SI];再取出需拆字的字节MOVCL,4SHRAL,CL;逻辑右移4次,高4位补0MOV[SI+2],AL;存入10052单元一.实验内容(实验程序及结果写在练习本上)。(1)熟悉emu8086各窗口内容。(2)多字节加法1.在编辑窗口输入多字节加法程序。2.点击“emulate”进行仿真。3.在当前数据段的1000H、2000H偏移地址输入被加数和加数。4.用单步命令逐步运行上述程序,运行过程注意每条指令执行
6、后,指定的寄存器或内存的变化,填入下表。MOVSI,1000H;置被加数指针(SI)=MOVDI,2000H;置加数指针(DI)=MOVCX,4;数据个数(CX)=CLC;清进位标志AGAIN:MOVAL,[SI];取被加数(AL)=ADCAL,[DI];+加数(AL)=MOV[SI],AL;和送回至加数[SI]=INCSI;修改数据指针(SI)=INCDI(DI)=LOOPAGAIN;记数—1=0?(CX)=循环第1次第2次第3次第4次5.运行结束查看和的情况。即在当前的数据段内(段基址寄存器DS)的偏移地址为1000H处定义4各字节的内容(3)拆分字符1.在编辑窗口
7、输入多字节加法程序。2.点击“emulate”进行仿真。3.在数据段中1000H:0050H单元输入数据7A。4.用单步命令逐步运行上述程序,运行过程注意查看每条指令执行后各寄存器及内存的变化。MOVAX,1000H(AX)=MOVDS,AX(DS)=MOVSI,50H(SI)=MOVAL,[SI](AL)=ANDAL,0FH(AL)=MOV[SI+1],AL[SI+1]=MOVAL,[SI](AL)=MOVCL,4SHRAL,CL(AL)=MOV[SI+2],AL[SI+2]=6.查看1000H:0051H、1000H:0052H单元中
此文档下载收益归作者所有