- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编实验报告1 (6000字)
汇编实验报告1 (6000字)
汇编实验报告
1.实验名称
顺序与分支程序设计
2.实验目的
1) 掌握顺序程序设计方法。
2) 掌握分支程序的结构及分支程序的设计,调试方法。 3) 学习数据传送及算术和逻辑运算指令的用法。
4) 熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。
3.实验内容
1) 从键盘上接收一位十进制数X,计算Y值,并以十六进制形式显示出来,Y按下
列公式计算。
???
Y??
???
XXXX
2
?X(X?3)?2X(X?4)(X?5)/2(X?6)
2
2
2
2) 从键盘上接收两个一位十六进制数X和Y,然后再输入一个A-D之间的一个字符,按下列要求计算。
a)
b) c) d)
当输入字符为A,则计算X+Y,并以十六进制形式显示出来 当输入字符为B,则计算|X-Y|,并以十六进制形式显示出来 当输入字符为C,则计算X*Y,并以十六进制形式显示出来 当输入字符为D,则计算X/Y,并以十六进制形式显示出来
4.源程序
1)DATA SEGMENT
TABLE DW L1,L2,L3,L4
X DB ? ;存放键盘输入的数 DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA
MOV DS,AX ;将DATA装入DS寄存器
MOV AH,1
INT 21H;输入一个数存入AL
寄存器 CMP AL,33H
JB L10 CMP AL,36H JA L10 ;判断输入的数是否在3-6之间
AND AL,0FH ;转换成数字
MOV X,AL SUB AL,3 SHL AL,1 XOR AH,AH
LEA BX,TABLE ADD BX,AX
JMP [BX];程序转移指令
L1: MOV AL,X MUL AL ADD AL,X
JMP L5 ;X+X
L2: MOV AL,X MUL AL SHL X,1
SUB AL,X
JMP L5 ;X-2X
L3: MOV AL,X MUL AL
JMP L5 ;XL4: MOV AL,X
MUL AL SHR AL,1 JMP L5 ;(X)/2L5: MOV BL,AL MOV CL,4 SHR AL,CL CMP AL,9H JBE L8
ADD AL,7
L8: ADD AL,30H
MOV DL,AL MOV AH,02H INT 21H ;输出高位结果 MOV DL,BL AND DL,0FH CMP DL,9 JBE L7
ADD DL,7
L7: ADD DL,30H
MOV AH,2 INT 21H ;输出低位结果L10: MOV AH,4CH
INT 21H ;结束程序
CODE ENDS END START 2)DATA SEGMENT
TABLE DW L1,L2,L3,L4
X DB ? ;存放键盘输入的数x Y DB ? ;存放键盘输入的数y Z DB ? ;存放键盘输入的数z DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA
MOV DS,AX ;将DATA装入DS寄存器 MOV AH,1
INT 21H;输入一个数存入AL
寄存器 CMP AL,30H JB L10
CMP AL,46H
JA L10 ;判断输入的数是否在0-F之间 CMP AL,41H
JB L5
SUB AL,07H L5: SUB AL,30H MOV X,AL ;完成输入16进制数存入X中
MOV AH,1 INT 21H;输入一个数存入AL寄存器
CMP AL,30H
JB L10 CMP AL,46H
文档评论(0)