《第3章-计算机指令系统-数据传送指令课件.ppt》由会员分享,可在线阅读,更多相关《第3章-计算机指令系统-数据传送指令课件.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2.8086的指令系统的指令系统 数据传送指令数据传送指令 算术指令算术指令 逻辑指令逻辑指令 串处理指令串处理指令 控制转移指令控制转移指令 处理机控制与杂项操作指令处理机控制与杂项操作指令(1)指令功能指令功能-该指令能实现何种操作,通该指令能实现何种操作,通常指令助记符就是指令功能的英文缩写词。常指令助记符就是指令功能的英文缩写词。(2)指令支持的寻址方式指令支持的寻址方式-指令中的源操作指令中的源操作数和目的操作数字段允许采用的寻址方式。数和目的操作数字段允许采用的寻址方式。(3)指令对标志位的影响指令对标志位的影响-该指令执行后对该指令执行后对各个标志位的影响。各个标志位的影响。(4
2、)指令的特殊要求指令的特殊要求-该指令隐含使用或限该指令隐含使用或限定使用的寄存器以及需要预置的参数。定使用的寄存器以及需要预置的参数。学习一条指令时,要注意以下几个方面:学习一条指令时,要注意以下几个方面:数据传送指令:数据传送指令:数据传送指令的功能是把数据、地址传送到寄存器或存储数据传送指令的功能是把数据、地址传送到寄存器或存储器单元中器单元中 通用数据传送指令通用数据传送指令 MOV、PUSH、POP、XCHG 累加器专用传送指令累加器专用传送指令 IN、OUT、XLAT 地址传送指令地址传送指令 LEA、LDS、LES 标志寄存器传送指令标志寄存器传送指令 LAHF、SAHF、PUS
3、HF、POPF 类型转换类型转换指令指令 CBW、CWD 通用数据传送指令通用数据传送指令传送指令:传送指令:MOV DST,SRCMOV DST,SRC执行操作:执行操作:(DST)(DST)(SRC)SRC)功能:功能:将源操作数(字节或字)传送到目的地址将源操作数(字节或字)传送到目的地址支持的寻址方式:支持的寻址方式:srcsrc可用可用datadata,memmem,regreg Dst Dst可用可用memmem,regreg例:例:MOV AX,DATA_SEGMOV AX,DATA_SEGMOV DS,AXMOV DS,AX例:例:MOV AL,E MOV AL,E例:例:MO
4、V BX,OFFSET TABLE MOV BX,OFFSET TABLE MOVMOV注意注意:*DST DST 不能是立即数和不能是立即数和CSCS*DST*DST、SRC SRC 不能同时为存储器寻址(不能同时为存储器寻址(这个限制适用于所有这个限制适用于所有指令指令 )*DST*DST、SRC SRC 不能同时为段寄存器不能同时为段寄存器 MOV DS,ES MOV DS,ES *立即数不能直接送段寄存器立即数不能直接送段寄存器 MOV DS,2000H MOV DS,2000H *不影响标志位不影响标志位 通用寄存器AX、BX、CX、DXBP、SP、SI、DIDSESSS 存储器 C
5、S 立 即数MOV指令数据传送方向示意图:例:假设例:假设(AX)=2107 H,执行执行 PUSH AX*(SP)PUSH AX 执行前执行前(SP)*07H07H21H21H低地址低地址 高地址高地址PUSH AX 执行后执行后进栈方向进栈方向执行操作:执行操作:(SP)(SP)2 (SP)+1,(SP)(SRC)进栈指令:进栈指令:PUSH SRC(SP)*07H07H21H21HPOP AX 执行执行前前(SP)*07H07H21H21H低地址低地址 高地址高地址 POP AX 执行后执行后 (AX)=2107H例:例:POP AX出栈方向出栈方向执行操作:执行操作:(DST)(SP)
6、+1,(SP)(SP)(SP)+2出栈指令:出栈指令:POP DST堆栈:堆栈:先进后出先进后出的存储区,段地址存放在的存储区,段地址存放在SS中,中,SP在任何时候都指向栈顶,进出栈后自动修改在任何时候都指向栈顶,进出栈后自动修改SP。注意:注意:PUSH和和POP指令只能是字操作,因此存取字数据后,指令只能是字操作,因此存取字数据后,SP的的修改必须是修改必须是2或或2;PUSH和和POP指令不能使用立即数方式指令不能使用立即数方式(单操作数指令一般不单操作数指令一般不能使用立即数方式);能使用立即数方式);PUSH 1234H POP指令的指令的dst不允许是不允许是CS寄存器;寄存器;
7、POP CS PUSH和和POP指令都不影响标志位。指令都不影响标志位。例:例:PUSH AXPUSH AX PUSH BX PUSH BX PUSH CX PUSH CX ;其间用到其间用到AX、BX、CX POP CX POP CX ;后进先出后进先出 POP BX POP BX POP AX POP AXPUSH指令在程序中常用来暂存某些数据,而指令在程序中常用来暂存某些数据,而POP指令又可将这些数据恢复。指令又可将这些数据恢复。注意恢复数据时寄存器的操作顺序(出栈和进栈的顺序相反)。注意恢复数据时寄存器的操作顺序(出栈和进栈的顺序相反)。IN/OUTIN/OUT累加器专用传送指令(只
8、限使用累加器专用传送指令(只限使用AX或或AL)输入指令输入指令 IN (I/O CPU)长格式:长格式:IN AL,PORT (字节)(字节)IN AX,PORT (字)(字)执行操作:执行操作:(AL)(PORT)(字节)(字节)(AX)(PORT+1,PORT)(字)(字)短格式:短格式:IN AL,DX (字节)(字节)IN AX,DX (字)(字)执行操作:执行操作:(AL)(DX)(字节)(字节)(AX)(DX)+1,(DX)(字)(字)例:例:IN AX,28H MOV DATA_WORD,AX例:例:MOV DX,3FCH IN AX,DX IN AL,DX累加器专用传送指令(
9、只限使用累加器专用传送指令(只限使用AX或或AL)输出指令输出指令 OUT (CPU I/O)长格式:长格式:OUT PORT,AL (字节)(字节)OUT PORT,AX (字)(字)执行操作:执行操作:(PORT)(AL)(字节)(字节)(PORT+1,PORT)(AX)(字)(字)短格式:短格式:OUT DX,AL (字节)(字节)OUT DX,AX (字)(字)执行操作:执行操作:(DX)(AL)(字节)(字节)(DX)+1,(DX)(AX)(字)(字)例:例:OUT 5,AL OUT 5,AX例:mov dx,3fch mov al,80h out dx,alout DX,AX注意注
10、意:*不影响标志位不影响标志位*前前256个端口号个端口号00HFFH可直接在指令中指可直接在指令中指定(长格式)定(长格式)*如果如果端口号端口号 256,端口号,端口号 DX(短格式)(短格式)有效地址送寄存器指令:有效地址送寄存器指令:LEA REG,SRC 指针送寄存器和指针送寄存器和DS指令:指令:LDS REG,SRC 指针送寄存器和指针送寄存器和ES指令:指令:LES REG,SRC 注意注意:*不影响标志位不影响标志位 *REG必须必须是是通用寄存器通用寄存器 *SRC 必须为存储器寻址方式必须为存储器寻址方式 地址传送指令地址传送指令有效地址送寄存器指令有效地址送寄存器指令L
11、EA格式为:LEAREG,SRC执行的操作:(REG)SRC指令把源操作数的有效地址送到指定的寄存中。例:LEABX,BX+SI+0F62H如指令执行前(BX)=0400H,(SI)=003CH则指令执行后(BX)=0400+003C+0F62=139EH必须注意,在这里BX寄存器得到的是偏移地址而不是该存储单元的内容。LEALEA40 H00 H00 H30 H TABLE(DS):1000HMOV BX,TABLE ;(BX)=0040HMOV BX,OFFSET TABLE ;(BX)=1000HLEA BX,TABLE ;(BX)=1000H举例 CBW AL AX 执行操作:执行操作
12、:若若(AL)的最高有效位为的最高有效位为0,则,则(AH)=00H 若若(AL)的最高有效位为的最高有效位为1,则,则(AH)=FFH CWD AX (DX,AX)执行操作:若执行操作:若(AX)的最高有效位为的最高有效位为0,则,则(DX)=0000H 若若(AX)的最高有效位为的最高有效位为1,则,则(DX)=FFFFH 例:例:(AX)=0BA45H CBW ;(AX)=0045H CWD ;(DX)=0FFFFH (AX)=0BA45H注意注意:*无操作数指令无操作数指令 *隐含对隐含对AL 或或AX 进行符号扩展进行符号扩展 *不影响不影响条件标志位条件标志位 类型转换指令类型转换指令