1 / 29

3 .2 指令系统

3 .2 指令系统. 按功能分为: 数据传送指令 算术运算指令 位处理指令(逻辑运算指令) 串操作指令 控制转移指令 处理机控制指令. 三、位处理指令 — 逻辑运算指令. 内存. AX , BX CX , DX SI , DI B P , SP. AH,AL CH , CL DH , DL BH , BL. 立即数. * * * * * * * * AND 1 1 1 1 1 1 0 0 * * * * * * 0 0. 例:屏蔽 AL 的0、1两位

lazar
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 立即数 * * * * * * * * AND 1 1 1 1 1 1 0 0 * * * * * * 0 0 例:屏蔽AL的0、1两位 AND AL, 0FCH 1、AND 指令 格式:AND dest, src 功能: (dest)  (dest)  (src)例如: AND AX,BX AND CL,[SI] AND CL,AL AND DX,00FFH • 影响标志位 SF ZF PF • CF OF=0 0 • AF 无定义

  3. 三、位处理指令—逻辑运算指令 内存 AX,BX CX,DX SI,DI BP,SP AH,AL CH,CL DH,DL BH,BL 立即数 * * * * * * * * OR 0 0 1 0 0 0 0 0 * * 1 * * * * * 例:置AL的第5位为1 OR AL, 20H 2、OR 指令 格式:OR dest, src 功能: (dest)  (dest)  (src)例如: OR AX,BX OR CL,[SI] OR CL,AL OR DX,00FFH • 影响标志位 SF ZF PF • CF OF=0 0 • AF 无定义

  4. 三、位处理指令—逻辑运算指令 内存 AX,BX CX,DX SI,DI BP,SP AH,AL CH,CL DH,DL BH,BL 立即数 * * * * * * * * XOR 0 0 0 0 0 0 1 1 * * * * * * * * 例:对AL的0、1位求反 XOR AL, 3 3、XOR 指令 格式:XORdest, src 功能: (dest)  (dest)  (src)例如: XOR AX,BX XOR CL,[SI] XOR CL,AL XOR DX,00FFH • 影响标志位 SF ZF PF • CF OF=0 0 • AF 无定义

  5. 三、位处理指令—逻辑运算指令 内存 AX,BX CX,DX SI,DI BP,SP AH,AL CH,CL DH,DL BH,BL 立即数 * * * * * * * * TEST 1 0 0 0 0 0 0 1 *0 0 0 0 0 0 * 例:测试某些位是0是1 TEST AL, 81H JZ EVEN 4、TEST 指令 格式:TESTdest, src 功能: (dest)  (src) 例如: TEST AX,BX TEST [SI],CL TEST CL,0101 0101B TEST SI,00FFH • 影响标志位 SF ZF PF • CF OF=0 0 • AF 无定义

  6. 三、位处理指令—逻辑运算指令 内存 AX,BX CX,DX SI,DI BP,SP AH,AL CH,CL DH,DL BH,BL 功能: (dest)  (dest) 5、NOT 指令 格式:NOTdest 例如: NOT AX NOT DH NOT SI NOT BYTE PTR [SI] • 不影响标志位 • DEST不能为立即数

  7. 三、位处理指令—移位运算指令 D7 D15 1 6、SHL 指令 格式:SHL dest,count D0 存放移位次数 0 CF CL 功能:逻辑左移 • SF、ZF、PF 根据移位结果设置 • CF = 移入的数值 • OF • AF无定义 • DEST不能为立即数 1 count=1时,最高位的值改变 0 count=1时,最高位的值不变 例如: SHL AX,1 MOV CL,4 SHL DH,CL

  8. 三、位处理指令—移位运算指令 1 7、SHR 指令 格式:SHR dest,count 存放移位次数 CL D7 D15 D0 0 功能:逻辑右移 CF • SF、ZF、PF 根据移位结果设置 • CF = 移入的数值 • OF • AF无定义 • DEST不能为立即数 1 count=1时,最高位的值改变 0 count=1时,最高位的值不变 例如: SHR SI,1 MOV CL,3 SHL BYTE PTR [BX],CL

  9. 三、位处理指令—移位运算指令 D7 D15 D0 0 CF 功能:算术左移 • SF、ZF、PF 根据移位结果设置 • CF = 移入的数值 • OF • AF无定义 • DEST不能为立即数 1 count=1时,最高位的值改变 0 count=1时,最高位的值不变 1 8、SAL 指令 格式:SAL dest,count 存放移位次数 CL 例如: SAL AX,1 MOV CL,4 SAL DH,CL

  10. 三、位处理指令—移位运算指令 1 9、SAR 指令 格式:SAR dest,count 存放移位次数 CL D7 D15 D0 CF 功能:算术右移 保持符号位不变 • SF、ZF、PF 根据移位结果设置 • CF = 移入的数值 • OF • AF无定义 • DEST不能为立即数 1 count=1时,最高位的值改变 0 count=1时,最高位的值不变 例如: SAR DI,1 MOV CL,3 SAR BP,CL

  11. 三、位处理指令—移位运算指令 1 10、ROL 指令 格式:ROL dest,count 存放移位次数 CL D7 D15 D0 功能:循环左移 CF • SF、ZF、PF 、AF不受影响。 • CF = 移入的数值 • OF • DEST不能为立即数 1 count=1时,最高位的值改变 0 count=1时,最高位的值不变 例如: ROL DI,1 MOV CL,3 ROL BYTE PTR [SI],CL

  12. 三、位处理指令—移位运算指令 1 11、ROR 指令 格式:ROR dest,count 存放移位次数 CL D7 D15 D0 功能:循环右移 CF • SF、ZF、PF 、AF不受影响。 • CF = 移入的数值 • OF • DEST不能为立即数 1 count=1时,最高位的值改变 0 count=1时,最高位的值不变 例如: ROR DI,1 MOV CL,3 ROR BYTE PTR [SI],CL

  13. 三、位处理指令—移位运算指令 1 12、RCL 指令 格式:RCL dest,count 存放移位次数 CL D7 D15 D0 功能:带进位循环左移 CF • SF、ZF、PF 、AF不受影响。 • CF = 移入的数值 • OF • DEST不能为立即数 1 count=1时,最高位的值改变 0 count=1时,最高位的值不变 例如: RCL DI,1 MOV CL,3 RCL BYTE PTR [SI],CL

  14. 三、位处理指令—移位运算指令 1 13、RCR 指令 格式:RCR dest,count 存放移位次数 CL D7 D15 D0 功能:带进位循环右移 CF • SF、ZF、PF 、AF不受影响。 • CF = 移入的数值 • OF • DEST不能为立即数 1 count=1时,最高位的值改变 0 count=1时,最高位的值不变 例如: RCR DI,1 MOV CL,3 RCR BYTE PTR [DI],CL

  15. 三、位处理指令 AX=0012H 0000 0000 0001 00010 (CL)=8 AX=1200H ROL AX, CL 0001 00010 0000 0000 例:(AX)= 0012H,(BX)= 0034H,把它们装配成(AX)= 1234H MOV CL, 8 ADD AX, BX ;AX=1234H (OR AX,BX) 例:(BX)=84F0H (1) (BX)为无符号数,求(BX)/2 SHR BX, 1 (2) (BX)为带符号数,求(BX)/2 SAR BX, 1

  16. 四、串操作指令—串传送指令 1、MOVS 指令 格式:MOVS dest,src 数据段中定义的一组数据→[DS:SI] 附加数据段中定义的缓冲区→[ES:DI] 数据段DS 附加段ES DF=0 (DI) (SI) (DI) (SI) (3)方向标志: DF=0 (CLD)时地址“ +”,DF=1 (STD)时地址“ -”。 DF=1 功能: (1)[ES:DI] ← [DS:SI] (2) MOVSB(字节操作):(SI)←(SI)±1, (DI)←(DI)±1 MOVSW (字操作): (SI)←(SI)±2, (DI)←(DI)±2 (4)REP与之配合。

  17. 四、串操作指令—前缀指令 操作: CX←CX-1当 CX≠0 重复执行串操作指令 CX=0 退出REP操作 操作: CX←CX-1当 操作: CX←CX-1当 CX≠0 且 ZF=1重复执行串操作指令 CX=0 或 ZF=0退出REP操作 CX≠0 且 ZF=0重复执行串操作指令 CX=0 或 ZF=1退出REP操作 3、REPZ/REPE 前缀指令 格式:REPZ 串操作指令 4、REPNZ/REPNE 前缀指令 格式:REPNZ 串操作指令 2、REP 前缀指令 格式:REP 串操作指令 例 REP MOVSB

  18. 四、串操作指令—前缀指令 • 执行REP MOVS之前,应先做好: • (1)源串首地址(末地址)→ SI • (2)目的串首地址(末地址)→ DI • (3)串长度 → CX • (4)建立方向标志(CLD使DF=0,STD使DF=1) 数据段DS 附加段ES DF=0 地址增量 (DI) (SI) (DI) (SI) • 例:MOVSB ;ES: [DI] ← DS: [SI]完成一个字节传送 例:LDS SI, 源串首地址 LES DI, 目的串首地址 MOV CX, 串长度 CLD REP MOVSB ;将数据段中的整串数据传送到附加段中。 源串(数据段)→ 目的串(附加段)

  19. 四、串操作指令—串比较指令 5、CMPS 指令 格式:CMPS dest,src 数据段中定义的一组数据→[DS:SI] 附加数据段中定义的一组数据→[ES:DI] 数据段DS 附加段ES DF=0 (DI) (SI) CF SF ZF AF OF (DI) (SI) 功能: (1)[ES:DI] - [DS:SI],不保存结果,影响标志位同SUB。 (2) CMPSB(字节操作):(SI)←(SI)±1, (DI)←(DI)±1 CMPSW (字操作): (SI)←(SI)±2, (DI)←(DI)±2 (3)方向标志: DF=0(CLD)时地址“ +”,DF=1(STD)时地址“ -”。 (4)REPZ / REPE、REPNZ / REPNE与之配合。

  20. 四、串操作指令—串传送指令 6、STOS 指令 格式:STOS dest 附加数据段中定义的缓冲区→[ES:DI] 附加段ES 地址增量 (DI) 以一串相同的数据初始化附加数据段中一串数据 AX(AL) (DI) DF=1 功能: (1)[ES:DI] ←AL(AX),不影响标志位。 (2) STOS B(字节操作): (DI)←(DI)±1 STOSW (字操作): (DI)←(DI)±2 (3)方向标志: DF=0(CLD)时地址“ +”,DF=1(STD)时地址“ -”。 (4)REP与之配合。

  21. 四、串操作指令—串传送指令 7、LODS 指令 格式:LODS src 数据段中定义的一组数据→[DS:SI] 数据段DS 地址增量 (SI) 从数据串取数到AX或AL中。 AX(AL) (SI) DF=1 功能: (1) AL(AX) ← [DS:SI] ,不影响标志位。 (2) LODSB(字节操作):(SI)←(SI)±1 LODSW (字操作): (SI)←(SI)±2, (3)方向标志: DF=0(CLD)时地址“ +”,DF=1(STD)时地址“ -”。 (4)可与REP配合,但一般不与REP联用

  22. 四、串操作指令—串搜索指令 8、SCAS 指令 格式:SCAS dest 附加数据段中定义的缓冲区→[ES:DI] 附加段ES 地址增量 (DI) 搜索附加段数据串中与AL相同(不相同)的数据 AX(AL) (DI) DF=1 功能: (1) AL(AX) -[ES:DI] ,影响标志位。 (2) SCASB(字节操作): (DI)←(DI)±1 SCASW (字操作): (DI)←(DI)±2 (3)方向标志: DF=0(CLD)时地址“ +”,DF=1(STD)时地址“ -”。 (4)REPZ / REPE、REPNZ / REPNE 与之配合。

  23. 第 三 章 习 题 课 P128 3.2题 设, DS=1000H; SS = 2000H, AX = 1A2BH, BX = 1200H, CX = 339AH, BP =1200H,SP = 1352H, SI= 1354H, (11350H) =0A5H, (11351H) = 3CH, (11352H) =OFFH,(11353H) = 26H, (11354H) = 52H, (11355H) = 0E7H, (126A4H) = 9DH,(126A5H) = 16H, (21350H) = 88H, (21351H) = 51H. 下列各指令都在此环境下执行,在下列各小题的空格中填人相应各指令执行结果。 (1) MOV AX, 1352H AX = 1352H (2) MOV AX, [1352H] AX =26FFH (3) MOV 0150H[BX] ,CH PA1= DS*16+BX+150H=10000H+1200H+150H=11350H (11350H) = 33H (11351H)= 3CH

  24. 第 三 章 习 题 课 P128 3.2题 设, DS=1000H; SS = 2000H, AX = 1A2BH, BX = 1200H, CX = 339AH, BP =1200H,SP = 1352H, SI= 1354H, (11350H) =0A5H, (11351H) = 3CH, (11352H) =OFFH,(11353H) = 26H, (11354H) = 52H, (11355H) = 0E7H, (126A4H) = 9DH,(126A5H) = 16H, (21350H) = 88H, (21351H) = 51H. 下列各指令都在此环境下执行,在下列各小题的空格中填人相应各指令执行结果。 (4) Mov AX,0150H[BP] PA= SS*16+BP+150H=20000H+1200H+150H=21350H (21350H) 送AX=5188H AX =5188H (5) POP AX PA= SS*16+SP=20000H+1352H=21352H 栈顶为21352H,将其送入AX.该单元未知为XXXXH AX =xxxxH SP =1354H

  25. 第 三 章 习 题 课 E 7 5 2 H + 3 3 9 A H 1 1 A E C H 1 P128 3.2题 设, DS=1000H; SS = 2000H, AX = 1A2BH, BX = 1200H, CX = 339AH, BP =1200H,SP = 1352H, SI= 1354H, (11350H) =0A5H, (11351H) = 3CH, (11352H) =OFFH,(11353H) = 26H, (11354H) = 52H, (11355H) = 0E7H, (126A4H) = 9DH,(126A5H) = 16H, (21350H) = 88H, (21351H) = 51H. 下列各指令都在此环境下执行,在下列各小题的空格中填人相应各指令执行结果。 (6) ADD [SI] ,CX PA1= DS*16+SI=10000H+1354H=11354H (11354H)=52H (11355H)=E7H E752H+339AH=1AEC H ; CF=1 (11355H) =1AH ( 11354H) =ECH SF=0 ZF =0 , PF = , CF =1 , OF =0

  26. 第 三 章 习 题 课 P128 3.2题 设, DS=1000H; SS = 2000H, AX = 1A2BH, BX = 1200H, CX = 339AH, BP =1200H,SP = 1352H, SI= 1354H, (11350H) =0A5H, (11351H) = 3CH, (11352H) =OFFH,(11353H) = 26H, (11354H) = 52H, (11355H) = 0E7H, (126A4H) = 9DH,(126A5H) = 16H, (21350H) = 88H, (21351H) = 51H. 下列各指令都在此环境下执行,在下列各小题的空格中填人相应各指令执行结果。 (7) SUB BH,0l50H[BX] [SI] PA=DS*16+BX+SI+150H =10000H+1200H+1354H+150H=126A4H (126A4H)=9DH BH=12H 12H-9DH=75H SF=0 ZF =0 , PF = 0 , CF =1 , OF =0

  27. 第 三 章 习 题 课 CF 1010 0101B=A5H CF=1 11010010B=D2H P128 3.2题 设, DS=1000H; SS = 2000H, AX = 1A2BH, BX = 1200H, CX = 339AH, BP =1200H,SP = 1352H, SI= 1354H, (11350H) =0A5H, (11351H) = 3CH, (11352H) =OFFH,(11353H) = 26H, (11354H) = 52H, (11355H) = 0E7H, (126A4H) = 9DH,(126A5H) = 16H, (21350H) = 88H, (21351H) = 51H. 下列各指令都在此环境下执行,在下列各小题的空格中填人相应各指令执行结果。 (10) SAR BYTE PTR 0150H[ BX], 1 PA=10000H+1200H+150H=11350H (11350H)=0A5H=1010 0101B (11350H)=D2H CF =1 OF =0

  28. 第 三 章 习 题 课 P128 3.2题 设, DS=1000H; SS = 2000H, AX = 1A2BH, BX = 1200H, CX = 339AH, BP =1200H,SP = 1352H, SI= 1354H, (11350H) =0A5H, (11351H) = 3CH, (11352H) =OFFH,(11353H) = 26H, (11354H) = 52H, (11355H) = 0E7H, (126A4H) = 9DH,(126A5H) = 16H, (21350H) = 88H, (21351H) = 51H. 下列各指令都在此环境下执行,在下列各小题的空格中填人相应各指令执行结果。 (11) SAL BYTE PTR 0150H[BX],1 PA=10000H+1200H+150H=11350H (11350H)=0A5H=1010 0101B 一次移位时最高位不发变化时OF=0 ,最高位发生变化OF=1 SAL 010 0 1010B=4AH CF =1 (11350H)=4AH ,CF =1 ,OF=1

  29. 课后作业: • P128 3.2 (10) (11) • P129 3.4 (3)(4)

More Related