1 / 14

3 .2 指令系统

3 .2 指令系统. 按功能分为: 数据传送指令 算术运算指令 位处理指令(逻辑运算指令) 串操作指令 控制转移指令 处理机控制指令. 一、 数据传送指令. 内存. AX , BX CX , DX SI , DI B P , SP. AH,AL CH , CL DH , DL BH , BL. 立即数. DS , ES,SS. MOV AX,2000H MOV DS,AX. 通用数据传送指令 1、 MOV 指令 格式: MOV dest , src 功能: ( dest)  (src ). 例如:

yuma
Download Presentation

3 .2 指令系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3.2 指令系统 • 按功能分为: • 数据传送指令 • 算术运算指令 • 位处理指令(逻辑运算指令) • 串操作指令 • 控制转移指令 • 处理机控制指令

  2. 一、数据传送指令 内存 AX,BX CX,DX SI,DI BP,SP AH,AL CH,CL DH,DL BH,BL 立即数 DS,ES,SS MOV AX,2000H MOV DS,AX • 通用数据传送指令 • 1、MOV 指令 • 格式:MOV dest, src • 功能: (dest)  (src) 例如: MOV AX,BX MOV CL,[SI] MOV CL,AL MOV DS,SI MOV DI,[SI] MOV [DI],DH MOV CX,030H MOV BYTE PTR [SI],04 MOV DX,ES • dest不能是CS和立即数 • 不影响标志位 • dest、src不同为段寄存器 •  MOV DS, ES • 立即数不能直接送段寄存器 • MOV DS, 2000H

  3. 一、数据传送指令 内存 AX,BX CX,DX SI,DI BP,SP AH,AL CH,CL DH,DL BH,BL DS,ES,SS • 通用数据传送指令 • 2、XCHG 指令 • 格式:XCHGdest, src • 功能: (dest) (src) 例如: XCHG AX,BX XCHG CL,[SI]XCHG CL,AL XCHG DS,SI XHCG [DI],DH • 不影响标志位 • 不允许使用段寄存器 •  XCHG DS, ES • 不允许使用立即数 • XCHG AX, 2000H

  4. 一、数据传送指令 (BX)  30 H F0040 31 H F0041 (DS)=F000H (AL) = 3 32H F0042 例如:0~9的ASCII表,表头 TABLE=040H。 MOV BX, 040H MOV AL, 3 XLAT 指令执行后 (AL)=33H 33 H F0043 TABLE 34 H F0044 AL • 通用数据传送指令 • 3、查表指令XLAT (换码指令 ) • 格式:XLAT • 功能: (AL)  ( [(BX) + (AL)] ) • 不影响标志位 • 字节表格(长度不超过256) • 首地址 (BX) • 需转换代码  (AL)

  5. 一、数据传送指令 (SS)=1000H (SP)=46H (SP)→ **** 10046 12H 10045 进栈方向 出栈方向 34H 10044 56H 10043 78H 10042 9AH 10041 • 通用数据传送指令 • 4、堆栈操作指令 • 堆栈:“先进后出”的存储区,存在于堆栈段中,SP在任何时候都指向栈顶。 • 进栈指令:PUSH SRC • 执行操作: • (SP)  (SP) – 2 • [(SP), (SP+1)]  (SRC) • 出栈指令: POP DST • 执行操作: • [ DEST ]  (SP)+1, (SP) • (SP)  (SP) + 2 • 不影响标志位 • 堆栈操作必须以字为单位。 • 不能用立即寻址方式 •  PUSH 1234H • DEST不能是CS •  POP CS

  6. AX (SS)=1000H 21H 05H (SP)=46H 2 **** 10046 (SP+1) 进栈方向 21H 10045 (SP) 05H 10044 1 56H 10043 78H 10042 (SP)  (SP) – 2 9AH 10041 1 (SP) – 2→(SP)=0044H 2 [(SP), (SP+1)]  (SRC) ([10044H])=2105H 例 PUSH AX (AX)=2105H (SS)=1000H (SP)=0046H 栈顶为: =10000H+0046H=10046H 栈底为:(SS)×16+(SP)=10000H+0000H=10000H

  7. (SS)=1000H 21H 05H (SP)=46H (SP) + 2→(SP) **** 10046 (SP)+1 出栈方向 21H 10045 2 (SP) (SP) 1 05H 10044 56H 10043 78H 10042 9AH 10041 CX 2 (SP) + 2→(SP)=0046H 1 (DEST)  (SP)+1, (SP) (CX)=2105H 例 POP CX (CX)=1045H (SS)=1000H (SP)=0044H 栈顶为:(SS)×16+(SP) =10000H+0044H=10044H

  8. 一、数据传送指令 DS:1000H 0000H (1) AX …… 12H 20H 34H 2012H 56H 2013H 78H 2014H 9AH 2015H • 地址传送指令 • 5、LEA指令——EA地址送寄存器指令。 • 格式:LEA REG, SRC • 功能:(REG)  SRC EA地址 例 (1) LEA AX,[2012H] 相当于 MOV AX,2012H (2) LEA SI,[BX] 相当于 MOV SI,BX (3) LEA DI,[BX+SI] 无直接对应指令,DI  (BX+SI) • 不影响标志位 • REG 16位寄存器,不能是段寄存器。 • SRC必须为存储器寻址方式

  9. 一、数据传送指令 DS:1000H 0000H (DI) SI …… 34H 56H 2012H 34H 例 LDS SI,[2012H] 操作: SI  (2013H:2012H) DS  (2015H:2014H) 56H 2013H 2014H 78H 2015H 9AH 78H 9AH 7、LES指令——指针地址传送ES指令 格式:LES REG, SRC 功能:(REG)  (SRC) (ES)  (SRC+2) 例 LES DI,[2012H] 操作: DI  (2013H:2012H) ES  (2015H:2014H) DS (ES) 6、LDS指令——指针地址传送DS指令 格式:LDS REG, SRC 功能: (REG)  (SRC) (DS)  (SRC+2) • 不影响标志位 • REG 16位寄存器,不能是段寄存器。 • SRC为双字存储单元

  10. 一、数据传送指令 • 标志寄存器传送指令 影响标志位 8、 LAHF——标志送AH指令 格式:LAHF 功能:(AH)  (PSW的低字节) 9、SAHF——AH送标志寄存器指令 格式:SAHF 功能:(PSW的低字节)  (AH) 10、PUSHF——标志进栈指令 格式: PUSHF 功能:(SP)  (SP) – 2 [(SP), (SP+1)]  PSW 11、POPF——标志出栈指令 格式: POPF 功能:PSW  ((SP)+1, (SP)) (SP)  (SP) + 2

  11. 一、数据传送指令 • 输入输出指令 12、输入指令(I/O  CPU) PORT端口地址为8位: 格式: IN AL, PORT (字节) IN AX, PORT (字) 功能: (AL)  (PORT)(字节) (AX)  (PORT+1, PORT) (字) • 不影响标志位 • 端口号00H~FFH可直接在指令中指定 • 端口号 256,端口号 DX PORT端口地址为16位: 格式: IN AL, DX (字节) IN AX, DX (字) 功能: (AL)  ( (DX) ) (字节) (AX)  ( (DX)+1, (DX) ) (字)

  12. 一、数据传送指令 • 输入输出指令 13、输出指令( CPU I/O ) PORT端口地址为8位: 格式: OUT PORT,AL (字节) OUT PORT ,AX (字) 功能: (PORT)  (AL) (字节) (PORT+1, PORT)  (AX)(字) • 不影响标志位 • 端口号00H~FFH可直接在指令中指定 • 端口号 256,端口号 DX PORT端口地址为16位: 格式: OUT DX ,AL (字节) OUT DX ,AX (字) 功能: ( (DX) )  (AL) (字节) ( (DX)+1, (DX) )  (AX) (字)

  13. 一、数据传送指令 例1: IN AX, 28H ; MOV DX, 28H ; IN AX, DX MOV DATA_WORD, AX 例2: MOV DX, 3FCH IN AX,DX 例3: OUT 5, AL 例4: MOV DX,108H OUT DX,AX

  14. 课后作业: • P128 3.1 (3) (4) (5) • P128 3.2 (1) (2) (3) (4) (5)

More Related