微机原理与接口技术-4-2 汇编语言程序设计基本方法(实验2).pptVIP

微机原理与接口技术-4-2 汇编语言程序设计基本方法(实验2).ppt

  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文档。上传文档
查看更多
微机原理与接口技术-4-2 汇编语言程序设计基本方法(实验2)

* 例3:清除数据段中EA为8002H ~ 2000H号字中的内容为0。 MOV BX,8002H L: MOV WORD PTR[BX],0 SUB BX,2 CMP BX,2000H JAE L ;问题:此处用JGE会怎样?JNB呢? 不能循环,因为清第一个字后,EA修改为8000H,为负,跳出循环。 地址是一种无符号数。 * 根据以上各条件指令的选用,可总结如下: 1.简单转移指令 用在TEST、CMP、AND、OR后面,测试某一标志位是否满足条件; 用在算术运算指令后,测试某一标志位是否满足条件; 在循环计数控制中,用来判断循环是否结束(JZ /JE /JNZ /JNE)。 2.有符号数的条件转移指令 用在CMP后面,比较带符号数大小,确定转移方向; 用在算术运算指令后面,根据结果正负确定转移方向; 用在OR,AND后面,根据结果正负确定转移方向。 3.无符号数的条件转移指令 用作无符号数的比较---地址的比较、ASCII码比较; 用于循环控制。 * 例1:从键盘输入0~9中任一自然数,求其立方值。若输入的字符不是0~9中的数字,则显示“Input Error!” 从键盘输入一个字符 是0~9中的某一个数 求其立方 显示输入错 结束 Y 开始 N * 从键盘输入一个字符 是0~9中的某一个数 求其立方 显示输入错 结束 Y N 程序是从上到下一行编写的。 从二维框图,向一维变迁。 * 从键盘输入一个字符 不是0~9中的数 求其立方 显示输入错 结束 N y 条件成立时,一般的转移标号应与该指令有一段距离,条件不成立的处理分支,就在转移指令之下。 条件写法变迁 * 从键盘输入一个字符 (AL)‘0’ 求其立方 显示输入错 结束 N y (AL)‘9’ N y 条件细化 加标号 LERR: EXIT: j1.asm * 分支程序设计应该注意的问题(1) 1.选择合适的转移指令。 例:CMP AX,0 JL L1 能不能换成JB,JS;JB:CF=1且ZF=0 2.要为每个分支准备好出口。 例:CMP AX,0 JGE L1 MOV DL,‘-’ L1: MOV DL,‘+’ …… * 分支程序设计应该注意的问题(2) 3.应将各分支的公共部分尽量提到分支前或分支后的公共程序段去执行,使程序简短、清晰。 CMP AX, 0 JL L1 ADD AX, SUM MOV SUM, BX JMP EX1 L1: NEG AX ADD AX, SUM MOV SUM, AX EX1: CMP AX, 0 JGE L1 NEG AX L1: ADD AX, SUM MOV SUM, AX EX1: * 分支程序设计应该注意的问题(3) 4.分支比较多时,框图对每个分支的判断先后次序应尽量与问题提出的先后次序一致。而程序对各分支的安排也需要与框图的安排次序一致,这样在编写程序时就不会漏掉某一分支,而且写出的程序清晰,容易阅读和检查。 5.在调试分支程序时,要假定各种可能的输入数据,沿着每一支路逐一检查,测试程序是否正确。只有所有分支都满足设计要求时,才能保证整个程序满足设计要求。 * 第二次汇编实验 分支程序设计 学习汇编分支程序设计相关内容; 上机摸索验证下述练习题1-4(请先自行完成,再上机验证); 编程完成书上题目:P122 11中(3)(4)小题, 12 (请用跳转指令,而不是字符串指令来完成以上编程)。 * 练习1 阅读下列程序段,给出每条指令执行后寄存器的值 DATA SEGMENT BUF DW 10, ’AB’, -1, 8001H, 45H COUNT EQU ($-BUF)/2 NUM DW 5 M DW 0, -9 N DD M DATA ENDS … …… MOV AX, BUF+COUNT ; (AX)= ? MOV BX, NUM-4 ; (BX)= ? LEA DI, M ; (DI)= ? ADD BX, 2[DI] ; (BX)= ? ,(CF)= ? SAR BX, 1 ; (BX)= ? , (CF)= ? * 练习2:阅读程序 执行下列程序段,查看各条指令对数据存储区和各寄存器的影响 DATA Segment ORG 100H

文档评论(0)

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

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

1亿VIP精品文档

相关文档