第3章汇编语音.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章汇编语音

例3.8从键盘上键入0~9中任一自然数N,将2的N次方值在显示器的下一行显示出来。 求一个数的N次方值可以用查表法实现,也可以用乘法运算实现。用查表法求一个数的N次方值与例3.5类似,此处使用乘法运算来编制该程序。由于乘法运算都是乘2操作,故用逻辑左移实现。设其初值为1,键入的N值就是对该初值移位的位数。求得的徝是一个二进制数,为了输出还要将二进制数转换为十进制数的ASCII码。其最大值是2的9次方,29=512,最大值的ASCII码占3个单元,再加上回车、换行和?$?,所以输出数据区OBUF最多6个单元。程序如下: OBUF DB 6 DUP(0) MOV AH,1 INT 21H AND AL,0FH ;将?N?转换为N MOV CL,AL MOV AX,1 SHL AX,CL MOV BX,5 MOV OBUF[BX],?$? MOV CX,10 ;转换为十进制数的ASCII码 AGAIN: MOV DX,0 DIV CX OR DL,30H DEC BX MOV [BX],DL AND AX,AX JNZ AGAIN SUB BX,2 MOV WORD PTR[BX],0A0DH ;存入回车换行 MOV DX,BX ADD DX,OFFSET OBUF MOV AH,9 INT 21H 例3.9 从键盘上键入2位十六进制数将其拼合成一个字节存入字节变量SB中。 IBUF DB 3,0,3 DUP(0) SB DB 0 MOV DX, OFFSET IBUF ;键入2位十六进制数 MOV AH, 10 INT 21H MOV AX, WORD PTR IBUF+2 ;键入字符送AX SUB AX, 3030H ;字符变为十六进制数 CMP AL,0AH JB LNSUB7 SUB AL,7 LNSUB7: CMP AH,0AH JB LNSUB7 SUB AH,7 HNSUB7: MOV CL, 4 ;将AX中的数拼合成一个字节 SHL AL ,CL OR AL, AH MOV SB,AL 循环程序的具体结构流程有两种: 初始化 循环体 修改 结束循环? Y N (a)先执行,后判断→至少执行一次循环体 初始化 循环体 修改 进入循环? Y N (b)先判断,后执行→可以不执行循环体 3.3.1 循环程序的基本结构 杏极橱癌朝辗契别焦聘铃僧未贡旺鞭恼阴列豹甥棒绰爆租楚佐渊园倔孙井第3章汇编语音第3章汇编语音 如:编程统计字变量W中有多少位1,并将结果存入字节变量N中 W DW 1999H N DB 0 方法一:先执行,后判断 MOV N,0 MOV CX,16 LOP: SHL W,1 JNC NOINC INC N NOINC:DEC CX JNZ LOP ret 方法二:先判断,后执行 MOV N,0 LOP: CMP W,0 JZ DONE SHL W,1 JNC LOP INC N JMP LOP DONE: ret 椿汀杯匡雇任惕鼻冬服窑手呻坠懂离润勿嗓瞅椒我绞井爹陶拭酣劝痉惮拴第3章汇编语音第3章汇编语音 循环控制方法最常见的有两种: ⒈ 计数控制→ 循环次数已知,故可用某个寄存器或单元作为计数器, 用计数器的值来控制循环的结束与否. 如上例,方法一 ⒉ 条件控制→ 循环次数未知,即循环次数与循环体的执行情况有关,通过条件测试指令来测试是否满足循环条件,以控制循环是否结束. 如上例,方法二 3.3.1 循环程序的基本结构 差宇妆犀笨受滑勾礼荡礼捣柔柑蜀偷七眯圃耳顿爬誊舷园谢资什宿妇志卤第3章汇编语音第3章汇编语音 此类指令的特点是: 循环次数由 CX计数器控制.循环指令本身不影响标志.

文档评论(0)

ww90055 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档