微机原理34.ppt

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

一、 控制转移指令 8086/8088CPU的控制转移指令分为: 转移指令 (无条件转移指令JMP、有条件转移指令) 循环控制指令 (LOOP、LOOPZ、LOOPNZ) 子程序调用(CALL)和返回(RET)指令 中断指令(INT n) 1.转移指令 ① 段内直接转移 ②段内间接转移 转移的目标地址由寄存器或存储单元的内容给出。 例:JMP SI 若指令执行前,SI=1200H 则指令执行后,IP=1200H,于是转向1200H 又例:JMP WORD PTR[BX+DI] 设指令执行前:DS=3000H,BX=1300H, DI=1200H,[32500H]=2350H 则指令执行后:IP=2350H 所取得的目标地址是一个字有效地址。 ③段间直接转移 采用这种寻址方式,指令直接提供了要转移的段地址和偏移地址。 例:JMP 2000:1000H 执行时,IP←1000H,CS←2000H 在汇编语言中,则在符号地址前加操作符FAR PTR来表示 例:JMP FAR PTR ADR2 ④段间间接转移 (2)条件转移指令 ⑴根据单个标志位设置的条件转移指令:P85 JB/JNAE/JC ;低于,或CF=1,则转移 JNB/JAE/JNC ;高于或等于,或CF=0,则转移 JP/JPE ;奇偶标志PF=1(偶),则转 JNP/JPO ;奇偶标志PF=0(奇),则转 JZ/JE ;结果为零(ZF=1),则转 JNZ/JNE ;结果不为零(ZF=0),则转 JS ;SF=1,则转 JNS ;SF=0,则转 JO ;OF=1,则转 JNO ;OF=0,则转 ⑵根据组合条件设置的条件转移指令 ②判断有符号数的大小 P86 ⑶根据CX中的值来决定是否转移的条件转移 指令 JCXZ lab;若CX=0,则转移 2.循环控制指令3条 (LOOP、LOOPZ、LOOPNZ) 这类指令用在一个循环程序的头部或尾部,以确定是否要继续循环。循环次数通常置于CX中。 这类指令的目标地址应该在控制指令中的-128~+127的范围之内。 循环控制指令不影响标志位。 (1)LOOP指令 指令执行时,首先使CX←CX-1,再判断CX=0?若CX≠0,转至目标地址继续循环,若CX=0,退出循环,执行下一条指令。 上面讲取串指令举例时 DEC CX JNZ LP (2)LOOPZ/LOOPE 首先使CX← CX-1,判断只有在CX≠0,且ZF=1的条件下,才转至目标地址。若CX=0或ZF=0,则退出循环。 (3)LOOPNZ/LOOPNE 此指令先使CX← CX-1,只有在CX≠0,且ZF=0的条件下,才转至目标地址。若CX=0,或ZF=1,则退出循环。 3. 调用和返回指令 编程时往往将程序中常用到的具有相同功能的部分独立出来,设计为一个子程序(或叫过程).需要时进行调用,子程序结束后,再返回原来调用的地方。这种方法的优点是:源程序长度缩短,有利于模块化设计,使程序的编制、阅读和修改都比较方便。 8086/8088 CPU为实现这一功能提供了下面两条指令: 调用指令 CALL 返回指令 RET ②段内间接调用 ③段间直接调用 ④段间间接调用 2、 处理器控制指令 1)、标志操作指令 用来对CPU标志寄存器中的某个标志位进行操作。共有7条: (1) CLC ;使CF=0 (2) STC ;使CF=1 (3) CMC ;使CF求反 (4) CLD ;使DF=0 (5) STD ;使DF=1 (6) CLI ;使IF=0,用来屏蔽可屏蔽中断 (7) STI ;使IF=1,用来开放可屏蔽中断 2). 暂停指令HLT 执行HLT指令时,CPU进入暂停状态,设置该指令通常是为了等待中断。 外部中断(包括IF=1时的可屏蔽中断请求INTR及非屏蔽中断请求NMI)或复位信号可让CPU退出暂停状态。 HLT不影响标志位。 3).空操作指令NOP 执行NOP指令不进行任何操作,但占用3个时钟周期,然后执行下一条指令。 其它处理器控制指令就不予介绍了。 例:CALL AX ;调用地址由AX给出. CALL WORD PTR [SI] ;调用地址由存储器给出. 指令的操作为: (SP)←(SP)-2 ;修改SP [(SP)+1,(SP)]←(IP) ;IP压栈 (IP)←reg16或[mem16] 例:1、CALL 2000H:1

文档评论(0)

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

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

1亿VIP精品文档

相关文档