微机接口与原理 课件 4.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文档。上传文档
查看更多
当定义数据段、附加段和堆栈段时,在SEGMENT/ENDS 伪指令中间的语句,只能包括伪指令语句,不能包括指令语句。 只有当SEGMENT/ENDS 定义代码段时,中间的语句才能为指令语句以及与指令有关的伪指令语句。 下面的程序段将AL中的数X乘以10 SAL AL, 1; 将AL中的数左移1位,得2X MOV BL, AL; 2X保存在BL中 MOV CL, 2;移位次数置入CL中 SAL AL, CL; 2X左移2位,得8X ADD AL, BL; 2X加上8X,所以AL中为10X 例: 求表达式Z=(10X+4Y)/2的值。 (X、Y为字节变量,Z为字变量) 分析: 1. 分配存储单元 2. 简单乘除运算用移位指令完成。 X 43H Y FFH Z ? ? AX清零,AL←(X) 用移位法做AL×10→BX AX清零, AL ←(Y) 用移位法做AL×4→AX AX+BX → AX,右移1位 (Z) ←AX 一、顺序程序设计 二、分支程序设计 满足 不满足 测试表达式 程序段1 程序段2 程序段3 多分支 单分支 例:设数据段中NUM1、NUM2两个字节单元存有无符号整数,试编制一段程序完成以下操作: 如果两个都是偶数,则两个数分别加1后送DATA1、DATA2字节单元; 如果两个都是奇数,则两个数分别减1后送DATA1、DATA2字节单元; 如果既有偶数又有奇数,则奇数送DATA1、偶数送DATA2字节单元。 开始 测试数据送AL、AH AL为偶数吗? AH为偶数吗? AH为偶数吗? AH+1送AH AL+1送AL AH-1送AH AL-1送AL AL与AH内容交换 AL送DATA1、AH送DATA2 结束 Y Y Y N N N NEXT1 NEXT2 ENDO 多分支程序设计 例:由入口地址构造跳转表实现段内多分支。 SUB1 SUB2 SUB3 SUB5 不同入口数值 (1~5) SUB4 TABLE SUB1 SUB1 SUB2 SUB2 SUB3 SUB3 SUB4 SUB4 SUB5 SUB5 三、循环程序设计 循环初始状态设置 循环控制条件 循环体 循环初始状态设置 循环体 循环控制条件 不满足 满足 满足 不满足 DO—WHELE结构 DO—UNTIL结构 例:自DATA2单元开始存放N个无符号字节数,编程将大数送MAX单元. DATA2 N MAX 分析: 1. 用无符号数比较控制转移指令 2. AL存放比较后的大数,初值0 3. CX计数,初值放N 4. BX存放数表指针 AL ←0, CX ← N BX ←数表指针 (MAX) ← AL AL 与(BX)交换 修改地址指针BX CX减1 AL(BX) N Y CX=0 N Y AA NEXT 例:用冒泡法对无符号数组由大到小顺序排列。 分析:从表头开始,相邻两数比较,顺序不对交换。 8 5 16 84 32 8 5 16 84 32 8 16 5 84 32 8 16 84 5 32 8 16 84 32 5 第一轮 第二轮 8 16 84 32 5 16 8 84 32 5 16 84 8 32 5 16 84 32 8 5 第三轮 16 84 32 8 5 84 16 32 8 5 84 32 16 8 5 第四轮 84 32 16 8 5 84 32 16 8 5 使用LOOP指令实现循环 外循环初值CX←N-1 保存外循环初值DI← CX CX作为内循环初值 BX ←指针初值 AL ← (BX) (BX)与(BX+1)交换 修改地址指针BX+1 恢复外循环值 CX ← DI 结束 AL(BX+1) Y Y CX-1=0? N CX-1=0? N 内循环 外循环 AA0 AA NEXT 四、子程序设计 过程名 PROC [NEAR或FAR] PUSH AX PUSH BX PUSH CX POP CX POP BX POP AX RET 过程名 ENDP …… 近属性,段内调用 远属性,段间调用 保护现场 具体处理程序 恢复现场 为保证主程序中寄存器的内容不丢失,子程序要保护和恢复现场 说明: 近调用:子程序与主程序在同一代码段; 远调用:子程序与主程序不在同一代码段; 主程序可看成是DOS系统的子程序,这时主程序定义为 远属性; 主程序与子程序之间参数传递方式: 通过寄存器传送

文档评论(0)

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

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

1亿VIP精品文档

相关文档