汇编语言-第五章.pptVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言-第五章

第5章 循环与分支程序设计 本章重点: 分支结构程序设计 循环结构程序设计 本章作业: P193 5.1 5.6 5.11 例:实现把一位十六进制数转换为对应ASCII码的程序。 分析:对应关系 X+30H(0=X =9) Y= X+37H(0AH=X=0FH) DATA SEGMENT DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,4CH INT 21H CODE ENDS END START 例:设程序每次接收一个单键命令A至H,然后根据命令进行相应处理。否则不处理。 分析: 1.这是一个多分支选择结构,如果用C语言实现为程序 2.汇编语言实现多分支选择结构,多采用地址表的方法,实现安排一张入口地址表,存放入口地址的偏移地址。见程序段。 MOV AH,1 INT 21H AND AL CMP AL,’A’ JB OK CMP AL,’H’ JA OK SUB AL,’A’ XOR AH,AH ADD AX,AX MOV BX,AX JMP COMTAB[BX] …. OK: MOV AH,4CH INT 21H COMA:….. JMP OK ….. COMH:…. JMP OK char a; a=Getchar( ); Switch(a): { case ‘a’: case ‘A’:COMA( );break; case ‘b’: case ‘B’:COMB( );break; …… case ‘H’:COMH( );break; } 返回 DATA SEGMENT …… COMTAB DW COMA,COMB,COMC,…. DATA ENDS 返回 5.2 循环程序设计 循环由四部分组成:初始化部分,循环体部分,调整部分,控制部分。 例:在ADDR单元中存放着数Y的地址,试编制一程序把Y中1的个数存入COUNT单元中。 分析: 1.测试Y中1的个数,采用逐位测试方法,用移位的方法把各位数逐次移到最高位,根据最高位是否为1来计数。 2.循环结束方法: 1)计数值为16,作为结束 2)测试数是否为0 例:写程序把一个字符串中的所有的大写字母转换为小写字母,设字符串以0结尾。 分析: 1.判断是否大小写字母,比较字母ASCII码。 2.A—Z的ASCII码:41H—5AH a----z的ASCII码:61H----7AH 转换方法:大写ASCII码+20H 3.循环次数不确定,以结束符作为循环结束条件 DATA SEGMENT STRING DB ‘HOW ARE YOU!’,0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX AGAIN: OK: MOV AH,4CH INT 21H CODE ENDS END START * * 5.1 分支程序设计 单个条件分支:IF语句和IF-ELSE语句,利用条件测试指令和条件转移指令实现。 开关条件分支:SWITCH语句,利用地址表实现。 XX DB 4 ASCII DB ? MOV AL,XX AND AL,0FH CMP AL,9 JA LAB1 ADD AL,30H JMP LAB2 LAB1: ADD AL,37H LAB2: MOV ASCII,AL DATA SEGMENT ADDR DW NUMBER NUMBER DW Y COUNT DW ? DATA ENDS 数据段定义如下: CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,4CH INT 21H CODE ENDS END START MOV DX,0 MOV CX,16 MOV BX, ADDR MOV AX,[BX] REPEAT: TEST AX,0FFFFH JNS SHIFT

文档评论(0)

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

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

1亿VIP精品文档

相关文档