- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
三汇编语言程序设计三汇编语言程序设计
三《汇编语言程序设计》
软件要求:WIN98或WIN2000
MASM5.0或MASM6.0(含MASM、LINK、DEBUG等程序)
硬件要求:IBM-PC及兼容机
实验一 非压缩BCD码乘法
一、实验目的:
学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。为后续课程打下坚实的基础。同时熟练掌握数据传送指令、算术运算指令和十进制运算调整指令。
二、实验内容:
编程实现C=A*B,其中A、B单元分别存放着两位用非压缩BCD码表示的十进制数34和56。
三、实验要求:
上机前要作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。
熟悉与实验有关的系统软件(如编辑程序(自选)、汇编程序(MASM)、链接程序(LINK)和调试程序(DEBUG)等)的使用方法。
每个实验完成后,需由实验辅导教师在机器上检查运行结果,并写出实验报告。实验报告的要求如下:
(1)、设计说明:用来说明程序的结构、功能。包括:程序名、功能、原理及算法说明,程序及数据结构、主要符号名的说明。
(2)、调试说明:便于学生总结经验提高编程及调试能力。包括:调试情况,对程序设计技巧的总结及分析,程序输出结果及对结果的分析;实验的心得体会等。
(3)、使用说明:程序提供给用户使用时必须作出的说明。如:程序的使用方法,要求输入信息的类型及格式;出错信息的含义及程序的适用范围等。
(4)、程序框图。
(5)、程序清单。
四、实验提示:
A、B单元分别存放则二位用非压缩BCD码表示的十进制数,因而(A)=04H,(A+1)=03H,(B)=06H,(B+1)=05H。结果应存放在以C为首地址的4个相继字节单元中,在计算过程中还应开辟以C0和C1为首地址的各三字节单元作为存放中间结果用。
二位十进制数乘法的算法如下:
A+1 A
× B+1 B
————————————
C0+2 C0+1 C0
+ C1+2 C1+1 C1
———————————————————
C+3 C+2 C+1 C
参考程序段如下:
MOV AL,A
MUL B
AAM
MOV WORD PTR C0,AX
MOV AL,A+1
MUL B
AAM
ADD AL,C0+1
AAA
MOV WORD PTR C0+1,AX
MOV AL,A
MUL B+1
AAM
MOV WORD PTR C1,AX
MOV AL,A+1
MUL B+1
AAM
ADD AL,C1+1
AAA
MOV WORD PTR C1+1,AX
MOV AL,C0
MOV C,AL
MOV AL,C0+1
ADD AL,CL
AAA
MOV C+1,AL
MOV AL,C0+2
ADC AL,C1+1
AAA
MOV C+2,AL
MOV A,0
ADC AL,C1+2
AAA
MOV C+3,AL
实验二 双字右移
实验目的:
学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。同时熟练掌握移位指令。
二、实验内容:
试写出程序将DX,AX中的双字右移四位。
三、实验要求:
同实验一
四、实验提示
AX中移出的高位可通过CF标志位移入DX,可使用带进位的循环移位指令RCL。
实验三 二化十六进制输出
实验目的:
学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。熟练掌握条件转移指令、逻辑指令,并理解和掌握汇编语言源程序中字符的显示输出方法以及进制转换算法。同时理解和掌握单重循环程序设计方法
二、实验内容:
试编程把BX寄存器的内容(二进制)用十六进制的形式在屏幕上显示出来。
三、实验要求:
同实验一
四、实验提示
编程过程中要注意十六进制数中数字0~9和字母A~F在处理时的不同,参考程序如下:
DATA SEGMENT
A DW 1234H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV CX,4
MOV BX,A
L:ROL BX,1
ROL BX,1
ROL BX,1
ROL BX,1
MOV DL,BL
AND DL,0FH
OR DL,30H
CMP DL,39H
JBE LL
ADD DL,7
LL:MOV
文档评论(0)