中国高校课件下载中心 》 教学资源 》 大学文库

清华大学:《汇编语言程序设计》第三章(3-2) 8086的指令系统

文档信息
资源类别:文库
文档格式:PPT
文档页数:37
文件大小:640KB
团购合买:点击进入团购
内容简介
一、数据传送指令 二、算术指令 三、逻辑指令 四、串处理指令 五、控制转移指令 六、处理机控制与杂项操作指令
刷新页面文档预览

2.8086的指令系统 数据传送指令 算术指令 逻辑指令 串处理指令 控制转移指令 处理机控制与杂项操作指令

1 • 数据传送指令 • 算术指令 • 逻辑指令 • 串处理指令 • 控制转移指令 • 处理机控制与杂项操作指令 2. 8086 的指令系统

重点关注 指令的汇编格式 指令的基本功能 指令支持的寻址方式 指令的执行对标志位的影响 指令的特殊要求

2 重点关注: • 指令的汇编格式 • 指令的基本功能 • 指令支持的寻址方式 • 指令的执行对标志位的影响 • 指令的特殊要求

数据传送指令 通用数据传送指令 MoV、PUSH、POP、ⅩCHG 累加器专用传送指令 IN、OUT、ⅩLAT 地址传送指令 LEA、LDS、LES 标志寄存器传送指令 LAHF、SAHF、 PUSHF、POPF 类型转换指令 CBW、CwD

3 数据传送指令: • 通用数据传送指令 MOV、PUSH、POP、XCHG • 累加器专用传送指令 IN、OUT、XLAT • 地址传送指令 LEA、LDS、LES • 标志寄存器传送指令 LAHF、SAHF、PUSHF、POPF • 类型转换指令 CBW、CWD

通用数据传送指令 传送指令: MOV DST,SRC 执行操作:(DST)←(SRC) 注意 *DST不能是CS *DST、SRC不能同时为段寄存器 MOV DS,ES *立即数不能直接送段寄存器 MOV DS,2000H *DST不能是立即数 *DST、SRC不能同时为存储器寻址

4 传送指令: MOV DST , SRC 执行操作: ( DST )  ( SRC ) 注意: * DST 不能是 CS * DST、SRC 不能同时为段寄存器 MOV DS, ES  * 立即数不能直接送段寄存器 MOV DS, 2000H  * DST 不能是立即数 * DST、SRC 不能同时为存储器寻址 • 通用数据传送指令

进栈指令: PUSH SRC 执行操作 (SP)←(SP) ((SP)+1,(SP))←(SRC) 出栈指令 POP DST 执行操作: (DST)←((SP)+1,(SP)) SP)←(SP)+2 堆栈:‘先进后出′的存储区,存在于堆栈段,任何时候SP都指向栈 顶 注意: *堆栈操作必须以字为单位 *不影响标志位 *不能用立即寻址方式PUSH1234H *DST不能是CS POP CS 5

5 进栈指令: PUSH SRC 执行操作: ( SP )  ( SP ) – 2 ( ( SP ) + 1 , ( SP ) )  ( SRC ) 出栈指令: POP DST 执行操作: ( DST )  ( ( SP ) + 1 , ( SP ) ) ( SP )  ( SP ) + 2 堆栈:‘先进后出’的存储区,存在于堆栈段,任何时候SP都指向栈 顶。 注意: * 堆栈操作必须以字为单位 * 不影响标志位 * 不能用立即寻址方式 PUSH 1234H  * DST 不能是 CS POP CS 

例:假设(AX)=2107H,执行 PUSH AX 低地址 SP) 07H 21H (SP) * 进栈方向 ** * 高地址 PUSH AX执行前 PUSH AX执行后

6 例:假设 ( AX ) = 2107 H , 执行 PUSH AX * * * * * * * * (SP)→ PUSH AX 执行前 (SP)→ * * * * * * * * 07H 21H 低地址 高地址 PUSH AX 执行后 进栈方向

例: POP BX 低地址 SP) 07H 07H 21H 21H SP) 出栈方向 **高地址 POP BX执行前 POP BX执行后 (Bx)=2107H 7

7 (SP)→ * * * * * * * * 07H 21H POP BX 执行前 (SP)→ * * * * * * * * 07H 21H 低地址 高地址 POP BX 执行后 ( BX ) = 2107H 例: POP BX 出栈方向

例: PUSH DS SUB AX,AⅩ PUSH AX RET 例: PUSH AX PUSH BX PUSH CX 其间用到AX、BX、CX POP CX POP BX POP AX

8 例: PUSH DS SUB AX , AX PUSH AX …… …… RET 例: PUSH AX PUSH BX PUSH CX …… ;其间用到AX、BX、CX POP CX POP BX POP AX

交换指令: XCHG OPR1,OPR2 执行操作:(OPR1)<>(OPR2) 注意 *不影响标志位 *不允许使用段寄存器 例:Ⅹ CHG BX,[BP+SI] XCHG AL. BH

9 交换指令: XCHG OPR1 , OPR2 执行操作: ( OPR1 )  ( OPR2 ) 注意: * 不影响标志位 * 不允许使用段寄存器 例:XCHG BX , [ BP + SI ] XCHG AL , BH

累加器专用传送指令(只限使用AX或AL) 输入指令(I/O→>CPU) 长格式:NAL,PORT(字节) INAX,PORT(字) 执行操作:(AL)←-(PORT) (字节) (AX )<( PORT+1, PORT )(3) 短格式:INAL,DX(字节) INAX,DX(字) 执行操作:(AL)←((DX)) (字节) (AX)←(DX)+1,(DX)(字)

10 • 累加器专用传送指令(只限使用AX 或AL ) 输入指令( 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 ) ) (字)

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档