- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
字符及字符串输入输出与顺序程序设计
西 安年月日
复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。
复习BCD码运算调整指令。
根据“2.2.3 实验内容”中给出的源程序框架编写完整的源程序,以便实验时调试。
从“2.2.4 实验习题”中任选一道题目,编写源程序,以便上机调试。
三.实验内容
1、从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。
四.方案设计
问题分析考虑到与用户进行交互,则需要使用dos功能调用
从键盘获取一个字符并显示
MOV AH, 01H
INT 21H ;调用21号软中断,等待用户输入一个字符,并将该字符保存在AL中
SUB AL, 30H ;将ASCII码转换为对应的数值
显示一个字符
MOV DL, 2
OR DL, 30H ;将数值转换为ASCII码
MOV AH, 02H
INT 21H ;将字符’A’显示到显示器上
显示一个以’$’结尾的字符串
LEA DX, INFOR ;或者MOV DX, OFFSET INFOR
MOV AH, 09H
INT 21H
计算两个一位十进制数的加法
MOV BL, NUM1
MOV AL, NUM2
ADD AL, BL ;将两个数加起来
AAA ;非压缩性BCD码加法调整指令,调整AX寄存器中的内容。
计算两个一位十进制数的乘法
MOV BL, NUM1
MOV AL, NUM2
MUL AL, BL ;将两个数相乘结果放在AL寄存器中
AAM ;非压缩型BCD码乘法调整指令,调整AX寄存器中的内容。
测试数据及运行结果
两个一位十进制数之和程序运行结果
2、求两个一位十进制数的积
1) 部分反汇编结果
输入第一个数8后, AL=38H
输入第二个数6后,AL = 36H
乘法指令执行后,AL=30H
乘法调整后,AX=0408
6*8=48,与实际计算结果一致
最终结果图
总结
实验心得:通过这次试验我学习了字符及字符串的输入输出方法,并对顺序程序的设计方法有了一定了解,并且通过这次试验也进一步掌握调试工具的使用方法,通过这次试验,我发现我在基本的命令上理解还不是很透彻,常把一些命令弄错,有待进一步提高。
七.附录:源代码(电子版)
1、源程序框架补全源代码
assume cs:code, ds:data
data segment
infor1 db Please Input the First Data(10):$
infor2 db 0ah, 0dh, Please Input The Second Data(10):$
infor3 db 0ah, 0dh, The Result is:$
data ends
code segment
start: mov ax, data
mov ds, ax
lea dx, infor1 ;获取第一个数
mov ah, 09h
int 21h
mov ah, 01h
int 21h
sub al, 30h
mov bl, al
lea dx, infor2 ;获取第二个数
mov ah, 09h
int 21h
mov ah, 01h
int 21h
sub al, 30h
mov ah, 0 ;计算结果
add al, bl
aaa
push ax ;显示结果
lea dx, infor3
mov ah, 09h
int 21h
pop ax
push ax
mov dl, ah
or dl, 30h
mov ah, 02h
int 21h
pop ax
mov dl, al
or dl, 30h
mov ah, 02h
int 21h
mov ah, 4ch ;返回dos
int 21h
code ends
end start
2、求两个一位十进制数的积
assume cs:code, ds:data
data segment
infor1 db Please Input the First Data(10):$
infor2 db 0ah, 0dh, Please Input The Second Data(10):$
infor3 db 0ah, 0dh, The Result is:$
data ends
code segment
start: mov ax, data
mov ds, ax
lea dx, infor1 ;获取第一个数
mov ah, 09h
您可能关注的文档
最近下载
- NB∕T 10342-2019 水电站调节保证设计导则.pdf
- 2025年中国碳化硼陶瓷项目创业投资方案.docx
- conval(康阀)画册.pdf VIP
- 污水波纹管工程施工方案(3篇).docx VIP
- 微观经济学知到智慧树期末考试答案题库2024年秋北方工业大学.docx VIP
- 2025年衢州常山县统计局公开招聘编外统计员13人笔试备考试题含答案详解(能力提升).docx
- 2024届高考英语二轮复习50分阅读理解提分练(五).docx VIP
- DB4211T 12-2022 医疗废物暂存间卫生管理规范.docx VIP
- 中国氯气项目创业计划书.docx
- 中国红磷阻燃剂项目商业计划书.docx
文档评论(0)