- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北理工_汇编_实验二_算术运算类操作实验
本科实验报告
实验名称: 实验二 算术运算类操作实验(基础与设计)
一、实验要求和目的?
1.了解汇编语言中的二进制、十六进制、十进制、BCD?码的表示形式;
2.掌握各类运算类指令对各状态标志位的影响及测试方法;
3.熟悉汇编语言二进制多字节加减法基本指令的使用方法;
4.熟悉无符号数和有符号数乘法和除法指令的使用;
5.掌握符号位扩展指令的使用;
6.掌握BCD?码调整指令的使用方法?。
二、软硬件环境?
1、硬件环境:计算机系统?windows;?
2、软件环境:装有MASM、DEBUG、LINK、等应用程序。?
三、实验涉及的主要知识
1.加减法处理指令
2.乘除法指令和符号位扩展指令
3.BCD 码的调整指令
四、实验内容
(一)对于两组无符号数,087H 和034H,0C2H 和5FH,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响:
计算 状态标识 表达式 结果(H) CF AF ZF OF SF PF 087H +034H 00BB 0 0 0 0 0 1 087H -034H 0053 0 0 0 0 0 1 087H *034H 1B6C 0 0 0 0 0 1 087H/034H 0002(1F) 0 0 0 0 0 1 0C2H+5FH 0121 0 1 0 0 0 1 0C2H-5FH 0063 0 1 0 0 0 1 0C2H*5FH 47FE 0 1 0 0 0 1 0C2H/5FH 0002(04) 0 1 0 0 0 1
流程图
2.程序代码:
DATAS SEGMENT
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,0C2H
MOV BX,5FH
ADD AX,BX ;add
MOV AX,0C2H
MOV BX,5FH
SUB AX,BX ;sub
MOV AX,0C2H
MOV BX,5FH
MUL BX ;mul
MOV AX,0C2H
MOV BX,5FH
DIV BX ;div
MOV AH,4CH
INT 21H
CODES ENDS
END START
(将数据改变得到另一组输出结果)
实验结果
以第一组数的加法为例
(已将截图以上输入-t进行debug的步骤省略)
此时右下角信息(NV UP……)代表标志寄存器的值 。
结果分析:
由资料可得:
1.CF(carry flag):进位标志位,运算结果需要进位为1,不需进位为0
2.PF(parity flag):奇偶标志位,当运算结果的低8位中的“1”的个数为偶数时PF=1,为奇数时,PF=0。
4.ZF(zero flag):零标志位,当运算结果为零时ZF=1,否则ZF=0。
当运算结果的最高位为1时SF=1,否则SF=0。
当算术运算结果超出了带符号数的范围,即溢出时,OF=1,否则OF=0.
(二)在数据段定义了两个多精度的有符号16 进制数,FIRST 和SECOND ,1)求两数的和与差,并将结果存放在THIRD 为首地址的缓冲区中;2)如果把两组数据当作十进制数据来处理,再次求两数的和与差,并将结果存放在FORTH 为首地址的缓冲区中。试编程实现上述运算。
FIRST DW 45H,82H,96H,57H
SECOND DW 12H,46H,83H,45H
16进制结果 10进制结果 FIRST +SECOND 00 57 C9 19 9CH 00 58 29 80 02D FIRST -SECOND 00 33 3C 13 12H 00 33 36 13 12D
1.流程图
十六进制减法及十进制显示部分略。
十进制加法前设置寄存器值为SI=0,DI=0,CX=3,在每步相加后用DAA显示为十进制数,十进制加法前设置寄存器值为SI=0,DI=5,CX=3,在每步相减后用DAS显示为十进制数。
2.程序代码:
DATAS SEGMENT
FIRST DB 45H,82H,96H,57H
SECOND DB 12H,46H,83H,45H
THIRD DB 10 DUP(?) ;注意保证数组空间足够大
FORTH DB 10 DUP(?)
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES
文档评论(0)