微机原理第三章课件.ppt

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

3.2 8086/8088指令系统 控制转移指令特点 控制转移指令特点 控制转移指令特点 控制转移指令特点 控制转移指令特点 程序举例(1) 将20000H~20007H共8个存储器单元中的非组合BCD码累加起来,非组合BCD码的和放在20008H、20009H单元中。 MOV AX,2000H MOV DS,AX ;设置默认的段寄存器值 MOV SI,0 ;第一个单元(20000H)的偏移量 MOV CX,8 ;累加次数 MOV AX,0 ;清空,准备累加 AGN: ADD AL,[SI] ; AAA ;调整为非组合BCD码,AH中为进位 INC SI ;修改指针,指向下一个单元 LOOP AGN ;循环控制 MOV [0008H],AX ;存结果(非组合BCD码) 程序举例(2) 将分别存放在34000H、34200H处的两个4位组合BCD码相加,组合BCD码的结果放在34200H处。 MOV AX,3400H MOV DS,AX ;设置默认段寄存器值 MOV SI,0 ;使SI指向34000H单元 MOV DI,0200H ;使DI指向34200H单元 MOV AL,[SI] ADD AL,[DI] ;低2位组合BCD码相加 DAA ;调整得组合BCD码,仍在AL中 MOV [DI],AL ;组合BCD码结果(低2位)存入34200H处 MOV AL,[SI+1] ADC AL,[DI+1] ;高2位组合BCD码相加 DAA MOV [DI+1],AL ;组合BCD码结果(高2位)存入34201H处 MOV [DI+2],0 ADC [DI+2],0 ;高位的进位存入34202H处 程序举例(3) SAL AX,1 ;实现AX×2 MOV BX,AX SAL AX,1 ;实现AX×4 ADD AX,BX ;实现AX×6 MOV BL,AL MOV CL,3 SHR AL,CL ;实现AL÷8 SUB BL,AL ;实现AL×7/8 程序举例(4) MOV CX, 10H ;源串、目标串中字的个数 LEA SI, STR1 ;STR1:源串(数据段中)的首址标号 ADD SI, 30 ;SI指向源串的末地址 LEA DI, STR2 ;STR2:目标串(附加段中)首址标号 ADD DI, 30 ;DI指向目标串的末地址 STD ;DF=1,串指针自动减量 REP MOVSW ;完成16个字的传送 第3章 80X86/Pentium指令系统 2.返回指令RET 指令格式:RET 或 RET imm16(带立即数返回) 放在子程序的末尾 使子程序在功能完成后返回调用程序的断点处继续执行。 为能准确返回 ,返回指令类型与调用指令类型相对应。 RET返回指令有4种: 段内返回 段内带立即数返回 段间返回 段间带立即数返回 ① RET * 若过程定义为NEAR,则为段内返回,RET将栈顶的一个字送IP * 若程序定义为FAR,则为段间返回,RET指令将栈顶的一个双 字送IP,CS。 ②RET imm16 除完成指令的功能外,还将当前栈顶的imm16个字节内容废除。 第3章 80X86/Pentium指令系统 执行操作: IP ← ((SP+1):((SP)) IP← ((SP+1):((SP)) SP ← SP+2 SP ← SP+2 CS ← ((SP+1):((SP)) SP ← SP+n SP ← SP+2 SP ← SP+n 执行操作例见下一页 例:RET imm16 堆栈使用情况 CODE SEG MENT ASSUME CS:CODE,DS:DATA MAIN PROC FAR START: MOV AX,DATA MOV DS,AX …… PUSH BX PUSH CX CALL DELCHAR CS:XXXX

文档评论(0)

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

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

1亿VIP精品文档

相关文档