- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《汇编语言程序设计的》实验指导书
前 言
《汇编语言程序设》在计算机科学中是一门综合性的专业基础课,是计算机专业的核心课程。它不仅是一般程序设计的基础,而且也是设计和实现编译程序、操作系统及其它系统程序和大型应用程序的重要基础。它为后续专业课程的学习打下理论基础实践基 共阳 共阴 0 0 000 0000 0000 30H 40H 3FH 1 1 001 0001 0001 31H 79H 06H 2 010 0010 0010 32H 24H 5BH 3 011 0011 0011 33H 30H 4FH 4 100 0100 0100 34H 19H 66H 5 101 0101 0101 35H 12H 6DH 6 110 0110 0110 36H 02H 7DH 7 111 0111 0111 37H 78H 07H 8 1000 1000 38H 00H 7FH 9 1001 1001 39H 18H 67H A 1010 41H 08H 77H B 1011 42H 03H 7CH C 1100 43H 46H 39H D 1101 44H 21H 5EH E 1110 45H 06H 79H F 1111 46H 0EH 71H
本次试验的内容是ASCⅡ码转换为未组合BCD码
设从键盘输入十进制数的ASCⅡ码已存放在起始地址CS :150H的单元中,把它转换成未组合BCD码后,再分别存入起始地址为CS:15AH的单元中。若输入的不是十进制数的ASCⅡ码,则相应存放结果单元的内容为“FF”。
提示:
1.组合BCD码是一位十进制数字占一个字节,高半字节为0,低半字节为该十进制数字的BCD码。ASCⅡ码转换为未组合BCD码只需减30H。
2.程序框图如下图所示。
3.程序执行前,需要在CS:150H内存缓冲区写入待转换的ASCⅡ码。方法如下:
方法一:用A命令
-ACS:150 DB 35,39,30,41,32
CS:155 ∧C
方法二:用E 命令
-ECS:150,35,39,30,41,32
方法三:用F命令
-FCS:150 L5 35,39,30,41,32
执行程序后检查执行结果可用D命令:
-DCS:15A
CS:15A 05,09,00,FF,02
ASCⅡ码转换为未组合BCD码的程序流程图
三.参考程序
ORG 100H
MOV CX,0005H
MOV DI,150H
BB: MOV BL,0FFH
MOV A,[DI]
CMP AL,3AH
JNB DONE
SUB AL,30H
JB DONE
MOV BL,AL
DONE: MOV AL,BL
MOV [DI+0AH],AL
INC DI
LOOP BB
INT 20H
ORG 150H
DB 35H,39H,30H,41H,32H
四.运行结果
五.调试分析及实验心得
六.源程序清单
实验二 顺序结构的程序设计
一.实验目的
1.掌握计算机常用代码的软件转换技术。
2.进一步首席DEBUG软件的使用。
3.掌握简单顺序结构程序的编程方法。
二.实验内容
本次实验的内容延续上一次实验内容,将16进制数转换为ASCⅡ码,相关内容参看上一次实验的表格。
设经过CPU运算后的4位16进制数已存放在CS:150H字单元中,把它转换为ASCⅡ码后分别存入CS:15AH为起始地址的4个单元中,低位数存在低地址的字节中。
提示:
1.十六进制数0-9H加30H即可得到ASCⅡ码,而A-FH则需要加37H,也就是加7H后再加30H,才能完成转换。因此对每一位十六进制数应先判断是0-9H的数还是A——FH的数,再分别加30H和37H即可完成转换。
2.4位数的转换需用循环程序结构。用CX作为计数器,DI作为地址指针,指向150H单元,则DI+0AH就指向结果存放单元。用逻辑右移指令使高位逐个地移至个位,用AND指令可以将个位从4位数中分离出来进行转换。
MOV CL,04H
SHR DX,CL
两条指令使DX中的数右移4位,由于CX已用做循环控制计数器,因此右移前应将CX压栈保护,移位后再出栈恢复CX。
3.程序流程图如下图所示。
16进制数转换为ASCII码程序流程图
三.参考程序
ORG 100H
MOV CX,0004H ;给循环计数器赋转换代码长度
MOV DI,0150H ;16进制数首地址送DI
MOV DX,[DI] ;16进制数送DX
AA: MOV AX,DX
AND AX,000FH ;取低四位值
CMP AL,0AH
文档评论(0)