汇编语言程序的设计6-7.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.注释伪指令 分号“;”后面的内容为注释。 编写程序时最好加入注释,便于以后的阅读和修改。 练习: 写出伪指令,并回答问题。 (1)定义名为NEW的字单元,保存10,20,30,40四个数 (2)将NEW单元的段地址放入DX寄存器,偏移地址放入BX寄存器 (3)NEW中数值40所在单元的偏移地址是多少? (4)如果将NEW单元的偏移地址设置为10H,用什么伪指令? 4.4 屏幕显示和键盘输入 常用的DOS功能有5个: 键盘输入1个字符: 01号DOS功能调用 显示器输出1个字符: 02号DOS功能调用 键盘输入缓冲区: 0AH号DOS功能调用 显示字符串: 09号DOS功能调用 返回DOS控制: 4CH号DOS功能调用 4.4.1 DOS功能调用 1.单字符的输入输出 (1)1号功能键盘输入 格式:AH=1 INT 21H 功能:从键盘输入一个字符并将该字符的ASCⅡ码送入AL中。 (2)2号功能显示器输出 格式:AH=2 DL=字符 INT 21H 功能:输出DL中的一个字符到显示器的光标处。 例1 从键盘输入一个字符后,接着再显示出来。 MOV AH,1 INT 21H MOV DL,AL MOV AH ,2 INT 21H 例2 键盘输入的大写字母换成小写字母显示 MOV AH , 1 INT 21H ADD AL,20H ;大写转换为小写 MOV DL ,AL MOV AH,2 INT 21H 2.键盘输入字符串 格式:AH=10 DS:DX=字节缓冲区首址 INT 21H 说明:定义缓冲区的第1个字节单元为允许输入的最大字符数,第2个单元为实际键入个数(由系统自动填入),从第3个单元开始存放键入字符。 功能:从键盘输入一串ASCII字符到缓冲区,用“回车”结束输入。若输入字符超过缓冲区能容纳的个数,则系统忽略此字符并响铃警告。 例 设置缓冲区,允许从键盘输入10个字符。 BUFFER DB 10,?,10 DUP(?) …… MOV AX,SEG BUFFER MOV DS,AX MOV DX,OFFSET BUFFER MOV AH,10 INT 21H 执行结果:例如从键盘输入 Hello↓ (回车) 缓冲区存储情况: 3.显示字符串 格式:AH=9 DS:DX=字符串地址 INT 21H 功能:显示一个以“$”结尾的ASCⅡ码字符串。 例 DISPLAY DB ‘Very Good!’ , ‘$’ …… MOV AX,SEG DISPLAY MOV DS,AX LEA DX,DISPLAY MOV AH,9 INT 21H 屏幕上显示出:Very Good! 4.5.2 实验示例 设计思路: (1)用DOS中断调用的1号功能输入数据,用2号功能显示结果,9号功能显示提示信息; (2)做乘法时必须将输入数字的ASCII码去掉,转换成数值; (3)乘法之后用十进制调整指令AAM。 示例4-9 从键盘输入两个一位的十进制数,做乘法运算。相乘的结果保存在存储单元x中,算式显示在屏幕上。用简化的程序格式。 运行结果: 程序如下: assume cs:code,ds:data data segment x db ?,? infor db input,$ data ends code segment start: mov ax,offset data mov ds,ax mov dx,offset infor mov ah,09H int 21h mov ah,1 ;键盘输入 int 21h sub al,30h ;去掉ASCII码 mov bl,al mov dl,2ah ;显示乘号 mov ah,2 int 21h mov ah,1 int 21h ;输入第2个数 sub al,30h mov ah,0 mul bl ;相乘 aam ;十进制乘法调整 ;乘积高位数在AH,低位数在AL mov x,al ;保存结果 mov x+1,ah add ax,3030h mov bx,ax mov ah,2 mov dl,3dh ;显示‘=’ int 21h

文档评论(0)

zxli + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档