实验二算术运算实验

实验二算术运算实验

ID:22840257

大小:415.27 KB

页数:12页

时间:2018-11-01

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

《实验二算术运算实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验二算术运算实验一、实验目的1、掌握MASMforWindows环境下的汇编语言编程环境使用;2、掌握汇编语言程序设计的基本流程及汇编语言中的二进制、十六进制、十进制、BCD码的表示形式;3、掌握汇编语言对多精度十六进制和十进制的编程方法及运算类指令对各状态标志位的影响及测试方法;4、掌握无符号数和有符号数运算区别及编程方法;5、掌握BCD码调整指令的使用方法二、软硬件实验环境1、硬件环境:惠普64位一体化计算机及局域网;2、软件环境:windows8,红蜘蛛管理系统,MASMforWindows。三、实验基本原理算术运算实验需要对运行结果进

2、行调试及查看状态字,其相关知识如下。1)标志位在debug调试过程中,标志位用特殊符号表示的,其标志名和状态符号的对照表参照表1所示。表1标志名和状态符号的对照表参照表2)加减法指令ADD表示加法指令,ADC表示带进位加法指令,SUB表示减法指令,SBB表示带进位减法指令。3)乘除法指令MUL表示无符号数乘法指令,IMUL表示带符号数乘法指令,DIV表示无符号数除法指令,IDIV表示带符号数除法指令。4)符号位扩展指令CBW表示从字节扩展到字的指令,CWD表示从字扩展到双字的指令。5)BCD码的调整指令在进行十进制加减运算时,需要将数据用BCD

3、码表示,还要考虑到是组合BCD码还是非组合BCD码,组合BCD码是用一个字节表示两位十进制数,非组合BCD码是用一个字节表示一位十进制数,对于组合的BCD码加减法运算其结果存放在AL中。组合的BCD码加法调整指令DAA;组合的BCD码减法调整指令DAS;非组合的BCD码加法调整指令AAA;非组合的BCD码减法调整指令AAS;乘法的非组合BCD码调整指令AAM;除法的非组合BCD码调整指令AAD。8088/8086指令系统提供了实现加、减、乘、除运算指令,可参照表2所示内容。表2数据类型的数据运算表四、实验步骤与内容1)对于表格中三组无符号数,试

4、编程求这三组数的指定运算结果,并考虑计算结果对标志寄存器中状态标志位的影响:①实验分析本实验要求简单,仅对指定三组数进行基本运算。只需使用ADD、SUB、MUL、DIV四个运算命令,并以MOV命令作为数值转移的手段即可。运算结果和状态标志的情况可以通过debug调试中的T命令进行逐步查看。需要注意的主要有以下几点:1.在进行加法和乘法运算时,会出现对高位的进位扩展。因此,在记录结果的时候不能仅仅记录低2位(十六进制)的结果,应记录包含高位的完整结果;1.在使用MUL和DIV命令时,语句的写法与ADD和SUB有区别;2.除法运算既可得到商,也可得

5、到余数,余数存在DL中;3.查看结果时以三个语句为一次运算,输入三个T命令后的结果才是此次运算的结果。②流程图③程序样例1、DATASSEGMENT;此处输入数据段代码BUF1DB0ABH,64H,0A2HBUF2DB78H,5AH,3FHBUF3DB10DUP(?)DATASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVSI,0MOVCX,2Q1:MOVAH,0HMOVA

6、L,BUF1[SI]MOVBL,ALMOVAL,BUF2[SI]ADDAX,BX;进行运算MOVBUF3[SI],ALADDSI,1HDECCXJNZQ1;跳转再做一次第二组数的加法运算MOVAX,4CHINT21HCODESENDSENDSTART2、STACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVSI,0MOVCX,2Q1:MOVAH,0HMOVAL,BUF2[SI]MOVBL,

7、ALMOVAL,BUF1[SI]SUBAX,BXMOVBUF3[SI],ALADDSI,1H;dotheoperationDECCXJNZQ1;doitagainwiththesecondgroupofnumbersMOVAX,4CHINT21HCODESENDSENDSTART3、DATASSEGMENT;此处输入数据段代码BUF1DB0ABH,64H,0A2HBUF2DB78H,5AH,3FHBUF3DB10DUP(?)DATASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMEC

8、S:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVSI,2MOVCX,1Q1:MOVAH,0

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

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

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