实验二 运算类编程实验

实验二 运算类编程实验

ID:1210502

大小:119.00 KB

页数:7页

时间:2017-11-08

实验二  运算类编程实验_第1页
实验二  运算类编程实验_第2页
实验二  运算类编程实验_第3页
实验二  运算类编程实验_第4页
实验二  运算类编程实验_第5页
资源描述:

《实验二 运算类编程实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二运算类编程实验一实验目的1.1掌握使用运算类指令编程及调试方法。1.2掌握运算类指令对各个状态标志位的影响及其测试方法。二实验设备2.1TDN86/88教学实验系统一台。2.2微型计算机(PC机)一台。三实验内容8086/8088指令系统提供了实现加、减、乘、除运算的基本指令,可对表2-1所示的数据类型进行算术运算。表2-1数据类型算术运算表数制二进制BCD码带符号无符号组合非组合运算符+、-、×、÷+、-+、-、×、÷操作数字节,字,多精度字节(二位数字)字节(一位数字)3.1二进制双精度加法运算3.1.1实验要求:计算X+Y=Z,将结果Z存入某存储单元。3.

2、1.2实验原理:本实验程序是双精度(2个16位,既32位)运算,利用累加器AX,先求低16位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。由于低位和可能向高位有进位,因而高位字相加语句需要用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。3.1.3参考程序清单:STACKSEGMENTSTACKDW64DUP(?)STACKENDSDATASEGMENTXLDW?;请在此处给X低位赋值XHDW?;请在此处给X高位赋值YLDW?;请在此处给Y低位赋值YHDW?;请在此处给Y高位赋值ZLDW?ZHDW?DATAENDSCODESE

3、GMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;段地址送DSMOVAX,XL;X的值送AXADDAX,YL;X低位加Y低位,65A0+B79E=1D3E且CF=1MOVZL,AX;存低位和MOVAX,XH;X高位送AXADCAX,YH;X高位加Y高位,0015+0021+CF=0037MOVZH,AX;存高位和CODEENDSENDSTART3.1.4调试提示:(1)输入程序并检查无误,经汇编、链接后装入系统(设:CS=0000H,IP=2000H)。(2)打开寄存器窗口,观察各寄存器内容的变化。(3)用U0000

4、:2000查看MOVAX,XXXX(DATA)语句,即得到宝贵的数据段的段地址,即DS=XXXX=002A,用E命令EXXXX:0000↙给XL,XH和YL,YH赋值存入二进制数AO,65,15,00和9E,B7,21,00。(4)G=0000:2000↙,运行以上程序。(5)DXXXX:0008↙,显示计算结果:3E,1D,37,00,CC,…。(6)重新赋值,用T(T=0000:2000)↙命令逐步运行程序,观察寄存器内容的变化。(7)反复试几组数,考察程序的正确性。3.2十进制数的BCD码减法运算3.2.1实验要求:计算X-Y=Z(40-12=28),其中X,Y

5、,Z为BCD码。3500350135023503350435053506000402010802CC3.2.2参考实验程序及流程图如下:STACKSEGMENTSTACKDW64DUP(?)STACKENDSDATASEGMENTXDW?;请在此处给X赋值YDW?;请在此处给Y赋值ZDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;段地址送DSMOVAH,00HSAHF;清CFMOVCX,0002HMOVSI,OFFSETXMOVDI,OFFSETZA1:MOVAL,[SI]SBBA

6、L,[SI+02H];带进位十进制数相减,40-12-CF=28DAS;十进制调整。实验指导书3.1.4图表中的09和10之间。;教科书P67。PUSHF;防止AND影响PSW寄存器的标志位ANDAL,0FH;非压缩BCD码高4位为0POPFMOV[DI],ALINCDIINCSILOOPA1A2:JMPA2;防止指令代码流窜下去。Ctrl键+C键,可以解决死循;环造成的死机问题。语句“A2:JMPA2”也可以去掉。CODEENDSENDSTART3.2.3调试提示:(1)输入实验程序并检查无误,经汇编、链连接后装入系统,并打开寄存器窗口。(设:CS:0000H,IP

7、:2000H)(2)用U0000:2000查看MOVAX,XXXX(DATA)语句即得到数据段的段地址,即DS=XXXX(DS=020B)。用E命令EXXXX:0000↙给X,Y赋值存入40和12的BCD码:00040201。(3)G=0000:2000↙,运行以上程序。(4)DXXXX:0004↙,显示计算结果:0802CC...。(5)重新赋值,用T命令单步运行程序,观察各寄存器内容的变化。(6)反复试几组数,考察程序的正确性。3.3乘法运算(选做)3.3.1实验要求:本实验实现十进制数的乘法,被乘数和乘数均以BCD码形式存放于内存中,乘积在屏幕

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。