实验二算术运算

实验二算术运算

ID:35342241

大小:70.44 KB

页数:9页

时间:2019-03-23

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

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

1、汇编语言实验报告(-)班级:01540802班姓名:南征学号:20080705信息与电子学院实验二算术运算一、实验目的熟悉利用汇编语言对多精度十六进制和十进制的编程方法,弄清带符号数及不带符号数的运算区别,理解各状态标志位的含义,以及运算结果对各状态标志的影响,掌握无符号数的乘除法运算并保证运算结果不溢出。二、实验要点对汇编语言的算术运算要分清是有符号的运算还是无符号的运算,当对无符号数进行加减时,要考虑进位CF,对于有符号数进行加减时,要考虑运算结果是否溢出。为防止溢出,常将操作数利用CBW或CWD指令进行符号扩展后再进行加减运算。对于多精度的加减运算时,对髙位字节或字的加减法要分

2、别采用ADC和DBB:对低位字节或字采用不带进位的加减指令ADD和SUB;在利用循环计算多字节的加减法时,可以用CLC指令将CF初始化为0,然后在循环体内统一使用帯进位(或借位)的加减法指令。在汇编语言进行十进制的加减运算时,首先需将操作数用BCD码示,并且要考虑操作数是用组合的BCD码还是用一个字节表示一个十进制数。对于组合的BCD码加减法,其结果应放在AL寄存器中,再用DAA和DAS指令进行二一一十进制调整。二对于未组合的BCD码加减法,用AAA和AAS对结果进行二一一十进制调整。此外在进行十进制数减法吋,要考虑用大数减小数,因为十进制数运算不能用补码表示。对于有符号数惩罚要用I

3、MUL指令,对无符号数乘法要用MUL指令。字乘时AX为约定的一个乘数,其积在DX:AX中;字节相乘时AL为约定的一个乘数,其积在AX中。乘法指令屮的操作数,不得为立即数,可以为通用寄存器或存储器操作数。对于除法要用IDIV、DIV分别对有符号数和无符号数进行除法运算。字除法时被除数约定在DX:AX中;字节相除吋,被除数约定在AX中,除法指令中的操作数可以为通用寄存器或者存储器操作数,但不得是立即数。在进行除法运算时要考虑除数是否为零,以及其商是否溢出,在出现除零溢出时,将产生类型号为0的内部中断。三、实验任务及步骤1・在数据段中一缓冲区内存放有无符号数0ABH和78H,64H和54H

4、;试编程求这两组数的和、差,并将结果填入表格代码如下:DATASEGMENTDATA1DBOABH,64HDATA2DB78H,5AHCOUNTEQU$-DATA2DATA3DW6DUP(O)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATAMAINPROCFARSTART:MOVAX,DATAMOVDS,AXMOVES,AXLEASI,DATA1LEADI,DATA2LEABX,DATA3MOVCX,COUNTAGAIN1:XORAH,AHMOVAL,[SI]ADCAL,[DI]ADCAH,0MOV[BX],AXINCSIINCDIIN

5、CBXINCBXDECCXJNZAGAIN1LEASI,datalLEADI,data2MOVCX,COUNTCLCAGAIN2:MOVAL,[SI]SBBAL,[DI]MOV[BXLALINCSIINCDIINCBXDECCXJNZAGAIN2MOVAH,4CHINT21HMAINENDPCODEENDSENDSTART运行结果如下:OB3E:OOOOAB64785A2301BE00-330A0000000000000B3E:0010B83EOB8ED88ECO8D-3600008D3E02008D0B3E:0020IE0400B9020032E4-8A04120580D40089

6、0B3E:003007464743434975EE-8D3600008D3E02000B3E:0040B90200F88A041A05-88074647434975F30B3E:0050B44CCD21064E9100-002EC7061A925B5D0B3E:00602EC7061C927C3C2E-C706IE923E2B2EC70B3E:00700620923D3BE88309-7313B8FFFF53268B计算状态标志算式结果AFCFOFPFSFZF0ABH+78H0123ACNCNVPOPLNZ0ABH-78H0033NANCNVPEPLNZ64H+5AHOOBENANC

7、NVPEPLNZ64H-5AH000AACNCNVPEPLNZ2.在数据缓冲区BUF内存放有20个学生的数学成绩,78、86、95、67、56、80、92、68、77、88,试编程求总分和平均分,并分别存入SUM字单元和AVERAGE字节单元。代码如下:DATASEGMENTBUF1DB78H,86H,95H/67H,56H/80H/92H,68H/77H,88HSUMDW0AVERAGEDW0DATAENDSSTACKSEGMENTDB256DUP(?)

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

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

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