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