版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微型计算机原理-重庆三峡学院物理与电子工程学院微型计算机原理微型计算机原理( (第第三三章)章)重庆三峡学院物理与电子工程学院重庆三峡学院物理与电子工程学院微型计算机原理-重庆三峡学院物理与电子工程学院第三章第三章 80X8680X86寻址方式和指令系统寻址方式和指令系统3.13.1 80X8680X86寻址方式寻址方式3.23.2 80X8680X86指令格式指令格式3.33.3 80X8680X86指令系统指令系统 微型计算机原理-重庆三峡学院物理与电子工程学院3.1 80X863.1 80X86寻址方式寻址方式3.1.1 3.1.1 数据寻址方式数据寻址方式 操作数有可能在:操作数有可能
2、在: (1 1) 代码段中,作为指令中的立即数代码段中,作为指令中的立即数 (2 2) CPUCPU寄存器中寄存器中 (3 3)存储器的数据段或堆栈段或附加数据段中)存储器的数据段或堆栈段或附加数据段中所以,总的来说,数据寻址方式分为三种:所以,总的来说,数据寻址方式分为三种: 立即寻址立即寻址 寄存器寻址寄存器寻址 存储器寻址存储器寻址微型计算机原理-重庆三峡学院物理与电子工程学院一、立即寻址一、立即寻址操作数操作数直接包含在直接包含在代码段的指令代码段的指令中。中。 如:如: MOV EAXMOV EAX,80000000H80000000H MOV BX MOV BX,6688H6688
3、H MOV AL MOV AL,12H12H 立即数只能作为源操作数立即数只能作为源操作数 立即寻址主要用来给通用寄存器或存储器赋值立即寻址主要用来给通用寄存器或存储器赋值 不允许给段寄存器直接赋值不允许给段寄存器直接赋值微型计算机原理-重庆三峡学院物理与电子工程学院例例3.1 立即寻址立即寻址微型计算机原理-重庆三峡学院物理与电子工程学院立即寻址过程示意立即寻址过程示意微型计算机原理-重庆三峡学院物理与电子工程学院立即寻址动态示意立即寻址动态示意微型计算机原理-重庆三峡学院物理与电子工程学院二、寄存器寻址二、寄存器寻址操作数操作数在在寄存器寄存器中。中。3232位寄存器:位寄存器:EAXEA
4、X、EBXEBX、ECXECX、EDXEDX、ESPESP、EBPEBP、 ESIESI、EDIEDI1616位寄存器:位寄存器:AXAX、BXBX、CXCX、DXDX、SPSP、BPBP、SISI、 DIDI、CSCS、DSDS、SSSS、ESES、FSFS、GSGS8 8 位寄存器:位寄存器:AHAH、ALAL、BHBH、BLBL、CHCH、CLCL、DHDH、DLDL 如:如:MOV AXMOV AX,BXBX MOV EDI MOV EDI,ESIESI MOV AL MOV AL,CLCL微型计算机原理-重庆三峡学院物理与电子工程学院例例3.2 寄存器寻址寄存器寻址微型计算机原理-重
5、庆三峡学院物理与电子工程学院三、存储器寻址三、存储器寻址 操作数操作数在在存储器存储器中,其地址由指令以某种方式中,其地址由指令以某种方式指出。指出。(一)(一)1616位指令模式下:位指令模式下: 物理地址物理地址= =段基址段基址 10H 10H 有效地址有效地址EAEA(二)(二)3232位指令模式下:位指令模式下: 物理地址物理地址= =段基址段基址 有效地址有效地址EAEAEAEA的计算方法根据采用的寻址方式不同而不同。的计算方法根据采用的寻址方式不同而不同。微型计算机原理-重庆三峡学院物理与电子工程学院(一)一)1616位指令模式下的存储器寻址位指令模式下的存储器寻址 1616位指
6、令模式寻址结构位指令模式寻址结构: :段基址段基址10H10H基址变址偏移量基址变址偏移量 基址:基址:BXBX、BPBP 变址:变址:SISI、DIDI 偏移量:偏移量:8 8位或位或1616位位 如果有效地址在如果有效地址在BXBX,SISI或或DIDI中,则以中,则以DSDS寄存器内容为段基寄存器内容为段基址;如果有效地址在址;如果有效地址在BPBP中,则以中,则以SSSS段寄存器之内容为段基址。段寄存器之内容为段基址。如果使用段超越前缀(如果使用段超越前缀(CSCS:ESES:DSDS:SSSS:),操作数可以放在:),操作数可以放在冒号前指定的段。冒号前指定的段。 1616位指令模式
7、寻址方式位指令模式寻址方式: : 直接寻址直接寻址 寄存器间接寻址寄存器间接寻址 寄存器相对寻址寄存器相对寻址 基址变址寻址基址变址寻址 相对基址变址寻址相对基址变址寻址 微型计算机原理-重庆三峡学院物理与电子工程学院1 1、直接寻址、直接寻址操作数在存储器单元中。操作数在存储器单元中。操作数所在的操作数所在的有效地址有效地址EAEA直接由指令指出直接由指令指出。 例例1 MOV AX1 MOV AX,3000H3000H 例例2 MOV BL2 MOV BL,BLOCKBLOCK 例例3 MOV BX3 MOV BX,DATA1DATA1微型计算机原理-重庆三峡学院物理与电子工程学院例例3.
8、3 直接寻址直接寻址微型计算机原理-重庆三峡学院物理与电子工程学院直接寻址过程示意直接寻址过程示意微型计算机原理-重庆三峡学院物理与电子工程学院直接寻址动态示意直接寻址动态示意微型计算机原理-重庆三峡学院物理与电子工程学院2 2、寄存器间接寻址、寄存器间接寻址 操作数的操作数的有效地址在有效地址在BXBX、BPBP或或SISI、DIDI中中,EAEA可表示为可表示为例例1 MOV AX1 MOV AX,BXBX例例2 MOV DL2 MOV DL,SISI( ( B B X X ) ) ( ( B B P P ) ) ( ( S S I I ) ) ( ( D D I I ) ) E E A
9、A = = 微型计算机原理-重庆三峡学院物理与电子工程学院例例3.4 寄存器间接寻址寄存器间接寻址微型计算机原理-重庆三峡学院物理与电子工程学院寄存器间接寻址过程示意寄存器间接寻址过程示意微型计算机原理-重庆三峡学院物理与电子工程学院寄存器间接寻址动态示意寄存器间接寻址动态示意微型计算机原理-重庆三峡学院物理与电子工程学院3 3、寄存器相对寻址、寄存器相对寻址操作数在存储单元中,其操作数在存储单元中,其有效地址有效地址EAEA可表示为可表示为 例例1 MOV AL1 MOV AL,BXBX4000H4000H亦可写成:亦可写成: MOV ALMOV AL,4000HBX4000HBX 例例2
10、MOV AX2 MOV AX,BP+2000HBP+2000H( (B BX X) ) ( (B BP P) ) 8 8 位偏移量 ( (S SI I) ) 1 16 6 位偏移量 ( (D DI I) ) E EA A= = 微型计算机原理-重庆三峡学院物理与电子工程学院例例3.6 寄存器相对寻址寄存器相对寻址微型计算机原理-重庆三峡学院物理与电子工程学院寄存器相对寻址过程示意寄存器相对寻址过程示意微型计算机原理-重庆三峡学院物理与电子工程学院寄存器相对寻址动态示意寄存器相对寻址动态示意微型计算机原理-重庆三峡学院物理与电子工程学院4 4、基址变址寻址、基址变址寻址操作数在存储单元中,其有效
11、地址操作数在存储单元中,其有效地址EAEA可表示为可表示为 例例1 MOV AX1 MOV AX,BXBXSI SI 或写成:或写成:MOV AXMOV AX,BXSIBXSI 例例2 MOV AX2 MOV AX,BX+DIBX+DI 例例3 MOV AX3 MOV AX,BP+SIBP+SI 例例4 MOV AX4 MOV AX,BP+DIBP+DI ( B X ) ( S I ) ( B P ) ( D I ) E A = 微型计算机原理-重庆三峡学院物理与电子工程学院例例3.7 基址变址寻址基址变址寻址微型计算机原理-重庆三峡学院物理与电子工程学院基址变址寻址过程示意基址变址寻址过程示
12、意微型计算机原理-重庆三峡学院物理与电子工程学院基址变址寻址动态示意基址变址寻址动态示意微型计算机原理-重庆三峡学院物理与电子工程学院5 5、相对基址变址寻址、相对基址变址寻址操作数在存储单元中,其操作数在存储单元中,其有效地址有效地址EAEA可表示为可表示为 例例1 MOV AX1 MOV AX,BXBXSISI1500H1500H或写成或写成 MOV AXMOV AX,1500BXSI1500BXSI 例例2 MOV AX2 MOV AX,BP+DI+1000HBP+DI+1000H (BX) (SI) 8 位偏移量 (BP) (DI) 16 位偏移量 EA= 微型计算机原理-重庆三峡学院
13、物理与电子工程学院例例3.8 相对基址变址寻址相对基址变址寻址微型计算机原理-重庆三峡学院物理与电子工程学院相对基址变址寻址过程示意相对基址变址寻址过程示意微型计算机原理-重庆三峡学院物理与电子工程学院相对基址变址寻址动态示意相对基址变址寻址动态示意微型计算机原理-重庆三峡学院物理与电子工程学院(二)二)3232位指令模式下的存储器寻址位指令模式下的存储器寻址 32 32位指令模式寻址结构由位指令模式寻址结构由5 5部分组成部分组成:段址段址基址变址比例因子偏移量基址变址比例因子偏移量 其中基址寄存器或变址寄存器可以是除其中基址寄存器或变址寄存器可以是除ESPESP以以外的任何外的任何3232
14、位通用寄存器。当基址寄存器为位通用寄存器。当基址寄存器为EBPEBP时,时,默认段寄存器默认段寄存器SSSS存放段选择符,否则,默认存放段选择符,否则,默认DSDS存存放段选择符。也可使用段超越前缀来指定。比例放段选择符。也可使用段超越前缀来指定。比例因子为因子为1 1,2 2,4 4,8 8。偏移量为。偏移量为8 8位或位或3232位。位。 微型计算机原理-重庆三峡学院物理与电子工程学院3232位指令模式下的存储器寻址方式位指令模式下的存储器寻址方式1 1、直接寻址、直接寻址 如:如:MOV EAXMOV EAX,10000000H10000000H2 2、 间接寻址间接寻址 如:如:MOV
15、 EDXMOV EDX,ECXECX3 3、 相对基址寻址相对基址寻址 如:如:MOV ECXMOV ECX,EAX+80HEAX+80H4 4、 相对比例变址寻址相对比例变址寻址 如:如:MOV EBXMOV EBX,ESIESI* *4+80H4+80H5 5、 相对比例基址变址寻址相对比例基址变址寻址 如:如:MOV EAXMOV EAX,EBP+EDIEBP+EDI* *4+80H4+80H微型计算机原理-重庆三峡学院物理与电子工程学院3.1.2 3.1.2 程序地址寻址方式程序地址寻址方式一、相对寻址一、相对寻址 相对寻址为段内寻址,指令中给出带符号的相对偏相对寻址为段内寻址,指令中
16、给出带符号的相对偏移量,程序目标地址为当前移量,程序目标地址为当前IPIP值加上相对偏移量作为偏移值加上相对偏移量作为偏移地址。地址。 二、二、 直接寻址直接寻址 直接寻址是指指令中直接给出转移指令的目标地址。在直接寻址是指指令中直接给出转移指令的目标地址。在段间转移中,指令中给出目标段地址或代码段的段描述符。段间转移中,指令中给出目标段地址或代码段的段描述符。三、间接寻址三、间接寻址 间接寻址间接寻址 分段内和段间间接寻址,指令中以间接方分段内和段间间接寻址,指令中以间接方式给出转移指令的目标地址,通常存放在数据段。式给出转移指令的目标地址,通常存放在数据段。 微型计算机原理-重庆三峡学院物
17、理与电子工程学院3.1.3 3.1.3 堆栈地址寻址方式堆栈地址寻址方式字数据字数据进栈进栈步骤步骤: :1 1、(、(E E)SPSP11(E E)SPSP2 2、 高高8 8位位堆栈堆栈3 3、(、(E E)SPSP11(E E)SPSP4 4、低、低8 8位位堆栈堆栈字数据字数据出栈出栈步骤步骤: :1 1、栈顶内容、栈顶内容目标寄存器或目标单元的低目标寄存器或目标单元的低8 8位位2 2、(、(E E)SPSP11(E E)SPSP3 3、栈顶内容、栈顶内容目标寄存器或目标单元的高目标寄存器或目标单元的高8 8位位4 4、(、(E E)SPSP11(E E)SPSP微型计算机原理-重庆
18、三峡学院物理与电子工程学院堆栈操作示意堆栈操作示意微型计算机原理-重庆三峡学院物理与电子工程学院3.2 80X863.2 80X86指令格式指令格式指令基本格式:指令基本格式: 标号:标号: 助记符助记符 操作数操作数 ;注释;注释BYTE PTR BYTE PTR 。 WORD PTR WORD PTR 。 DWORD PTR DWORD PTR 。 如如 INC WORD PTR BXINC WORD PTR BX微型计算机原理-重庆三峡学院物理与电子工程学院3.3 80X863.3 80X86指令系统指令系统按功能分类:按功能分类: 数据传送指令数据传送指令 算术运算指令算术运算指令 逻
19、辑运算指令逻辑运算指令 控制转移类指令控制转移类指令 串操作指令串操作指令 输入输入/输出指令输出指令 处理器控制指令处理器控制指令 中断指令与中断指令与DOS功能调用功能调用微型计算机原理-重庆三峡学院物理与电子工程学院3.3.1 3.3.1 数据传送指令数据传送指令 通用数据传送指令通用数据传送指令 堆栈操作指令堆栈操作指令 地址传送指令地址传送指令 标志寄存器传送指令标志寄存器传送指令 查表指令查表指令 符号扩展指令符号扩展指令数据传送指令包括:数据传送指令包括:微型计算机原理-重庆三峡学院物理与电子工程学院3.3.1 3.3.1 数据传送指令数据传送指令数据传送指令包括:数据传送指令包
20、括: 通用数据传送指令通用数据传送指令堆栈操作指令堆栈操作指令地址传送指令地址传送指令标志寄存器传送指令标志寄存器传送指令查表指令查表指令符号扩展指令符号扩展指令微型计算机原理-重庆三峡学院物理与电子工程学院传送指令数据流传送指令数据流* * CS CS不能为目的操作数,不能对(不能为目的操作数,不能对(E E)IPIP直接传送数据直接传送数据* * 堆栈操作不允许为字节操作堆栈操作不允许为字节操作 堆堆 栈栈 段段寄寄存存器器 存存储储器器单单元元 立立即即数数 寄寄存存器器 微型计算机原理-重庆三峡学院物理与电子工程学院一、通用数据传送指令一、通用数据传送指令DEST:目的操作数:目的操作
21、数SRC:源操作数:源操作数1、一般传送指令、一般传送指令 MOV DEST,SRC如:如:MOV AL,CL MOV BX,SI MOV EAX,EBX 微型计算机原理-重庆三峡学院物理与电子工程学院使用使用MOV指令应注意:指令应注意: 立即数不允许直接送段寄存器,且立即数不能立即数不允许直接送段寄存器,且立即数不能做目的操作数做目的操作数 源操作数和目的操作数不允许同时为存储器操源操作数和目的操作数不允许同时为存储器操作数作数 源操作数和目的操作数不允许同时为段寄存器源操作数和目的操作数不允许同时为段寄存器 两操作数的数据类型要一致两操作数的数据类型要一致 传送操作不影响标志位传送操作不
22、影响标志位 不允许对不允许对CS、(、(E)IP传送数据传送数据微型计算机原理-重庆三峡学院物理与电子工程学院2、扩展传送指令、扩展传送指令 MOVSX DEST,SRC MOVZX DEST,SRC如如 MOV BL,80H MOVSX AX,BL;AX=FF80H MOVZX AX,BL;AX=0080H*目的操作数为通用寄存器(目的操作数为通用寄存器(16位或位或32位位)*源操作数长度必须小于目的操作数长度,为通源操作数长度必须小于目的操作数长度,为通用寄存器或存储器操作数(用寄存器或存储器操作数(8位或位或16位位)微型计算机原理-重庆三峡学院物理与电子工程学院3、交换指令、交换指令
23、 XCHG DEST,SRC如:如:XCHG EAX,EBX XCHG AX,SI XCHG AL,SI*两操作数中不允许出现立即数两操作数中不允许出现立即数*两操作数不允许同时为存储器操作数两操作数不允许同时为存储器操作数*两操作数数据类型必须一致两操作数数据类型必须一致 微型计算机原理-重庆三峡学院物理与电子工程学院二、堆栈操作指令二、堆栈操作指令 压栈指令压栈指令 PUSH SRC如:如:PUSH EAX PUSH DS PUSH SI PUSH DWORD PTR SI PUSH 1234H PUSHD 80H 出栈指令出栈指令 POP DEST如:如:POP AX POP DS PO
24、P BX POP DWORD PTR DI 微型计算机原理-重庆三峡学院物理与电子工程学院三、地址传送指令三、地址传送指令格式:格式: LEA DEST,SRC *DEST为为16位或位或32位通用寄存器位通用寄存器 *SRC为为16位或位或32位存储器操作数位存储器操作数例例1:LEA BX,SI+1005H 若若SI=1000H 则则BX=?例例2:LEA DI,BLOCK MOV DI,BLOCK 有何区别?有何区别?微型计算机原理-重庆三峡学院物理与电子工程学院四、标志寄存器传送指令四、标志寄存器传送指令格式格式1:LAHF SAHF格式格式2:PUSHF POPF格式格式3: PUS
25、HFD POPFD*SAHF、POPF、POPFD影响标志位影响标志位微型计算机原理-重庆三峡学院物理与电子工程学院五、查表指令五、查表指令格式:格式: XLAT指令规定:表格存于数据段中指令规定:表格存于数据段中 表首偏移地址表首偏移地址BX 表内偏移量表内偏移量AL 查找结果查找结果AL所找单元的物理地址所找单元的物理地址: (DS)10H+(BX)+(AL)微型计算机原理-重庆三峡学院物理与电子工程学院查表指令应用举例查表指令应用举例 3FH 06H 5BH 4FH 66H 6DH BLOCK LEA BX,BLOCK MOV AL, 3 XLAT结果:结果:AL内容为内容为4FH例:试
26、编程将内存中以例:试编程将内存中以BLOCK为起始地址的编码表中为起始地址的编码表中顺序号为顺序号为3的编码送的编码送AL寄存器。寄存器。 微型计算机原理-重庆三峡学院物理与电子工程学院六、符号扩展指令六、符号扩展指令针对带符号数,按带符号数扩展。针对带符号数,按带符号数扩展。1、CBW 功能:功能:AL(8位)位)AX(16位)位)2、CWD 功能:功能:AX(16位)位)DX:AX(32位)位)3、CWDE 功能:功能:AX(16位)位)EAX(32位)位)4、CDQ 功能:功能:EAX(32位)位)EDX:EAX(64位)位)微型计算机原理-重庆三峡学院物理与电子工程学院3.3.2 3.
27、3.2 算术运算指令算术运算指令 加法指令加法指令 减法指令减法指令 加加1减减1指令指令 比较指令比较指令 乘法指令乘法指令 除法指令除法指令 BCD算术运算指令算术运算指令微型计算机原理-重庆三峡学院物理与电子工程学院算术运算类指令特点算术运算类指令特点 影响标志位影响标志位 操作数不允许为段寄存器操作数不允许为段寄存器 不允许两个操作数同为存储器操作数不允许两个操作数同为存储器操作数 若无特别规定,操作数类型必须一致若无特别规定,操作数类型必须一致 目的操作数不允许为立即数目的操作数不允许为立即数 当操作数类型不明确时必须使用当操作数类型不明确时必须使用PTR伪指令伪指令微型计算机原理-
28、重庆三峡学院物理与电子工程学院一、加法指令一、加法指令格式(格式(1) ADD DEST,SRC功能:源操作数功能:源操作数+目的操作数目的操作数目的操作数目的操作数格式(格式(2) ADC DEST,SRC功能:源操作数功能:源操作数+目的操作数目的操作数+CF目的操作数目的操作数例:例:32F2H+A020H=?MOV AX,32F2H 或或 MOV AX,32F2HMOV BX,0A020H MOV BX,0A020HADD AX,BX ADD AL,BL ADC AH,BH微型计算机原理-重庆三峡学院物理与电子工程学院二、减法指令二、减法指令格式(格式(1) SUB DEST,SRC功
29、能:目的操作数源操作数功能:目的操作数源操作数目的操作数目的操作数格式(格式(2) SBB DEST,SRC功能:目的操作数源操作数功能:目的操作数源操作数CF目的操作数目的操作数*SUB、SBB指令与指令与ADD、ADC一样,影响标志位一样,影响标志位OF、SF、ZF、AF,PF,CF微型计算机原理-重庆三峡学院物理与电子工程学院三、加三、加1减减1指令指令加加1指令指令 INC DEST功能:目的操作数功能:目的操作数1目的操作数目的操作数减减1指令指令 DEC DEST功能:目的操作数功能:目的操作数1目的操作数目的操作数*不影响不影响CF,影响,影响OF、SF、ZF、AF、PF例:例:
30、INC BX INC BYTE PTR BX DEC EAX DEC WORD PTRSI 微型计算机原理-重庆三峡学院物理与电子工程学院四、比较指令四、比较指令格式格式 CMP DEST,SRC功能:目的操作数源操作数功能:目的操作数源操作数(1)若目、源为无符号数)若目、源为无符号数 CF=0 则目则目源源 (若(若ZF=1,则目,则目=源)源) CF=1 则目源则目源(2)若目、源为带符号数)若目、源为带符号数 若目、源为同号数(若目、源为同号数(OF=0) 若均为正,若均为正,SF=0 则目则目源(若源(若ZF=1,则目,则目=源)源) SF=1 则目源则目源 若均为负若均为负 ,SF
31、=0 则目则目源(若源(若ZF=1,则目,则目=源)源) SF=1 则目源则目源 微型计算机原理-重庆三峡学院物理与电子工程学院若目、源为异号数(若目、源为异号数(OF=0或或1) 若目为正,源为负若目为正,源为负 则目源则目源 若此时若此时 SF=0 则则OF=0 若此时若此时 SF=1 则则OF=1 若目为负,源为正若目为负,源为正 则目源则目源 若此时若此时 SF=1 则则OF=0 若此时若此时 SF=0 则则OF=1综合起来,若目、源为带符号数综合起来,若目、源为带符号数 OF SF=0 则目则目源源 OF SF=1 则目源则目源 微型计算机原理-重庆三峡学院物理与电子工程学院五、交换
32、相加指令五、交换相加指令格式格式 XADD DEST,SRC功能:目的操作数源操作数功能:目的操作数源操作数目的操作数目的操作数 且原目的操作数且原目的操作数源操作数源操作数影响标志位影响标志位OF、SF、ZF、AF、PF、CF六、求补指令六、求补指令格式格式 NEG DEST功能:求目的操作数的相反数的补码功能:求目的操作数的相反数的补码影响标志位影响标志位OF、SF、ZF、AF、PF、CF微型计算机原理-重庆三峡学院物理与电子工程学院七、乘法指令七、乘法指令格式格式 MUL SRC (针对无符号数)(针对无符号数) IMUL SRC (针对带符号数)(针对带符号数)隐含规定:隐含规定: S
33、RCSRC为一乘数因子,可为为一乘数因子,可为 8 8位位/ / 1616位位 / /3232位位寄存器或存储器寄存器或存储器 另一乘数因子在累加器中(另一乘数因子在累加器中(ALAL/ / AX AX / / EAXEAX) 结果为乘积,乘积隐含在(结果为乘积,乘积隐含在(AXAX/ /DXDX:AXAX/ /EDXEDX:EAXEAX) 字节乘字节乘 字乘字乘 双字乘双字乘* *若乘积高位为若乘积高位为0 0,则,则CF=0CF=0,OF=0OF=0 若乘积高位含有效数据若乘积高位含有效数据,则,则CF=1CF=1,OF=1OF=1 对其它标志位无定义对其它标志位无定义 微型计算机原理-重
34、庆三峡学院物理与电子工程学院例:计算存于下列内存中的两个无符号数的乘积例:计算存于下列内存中的两个无符号数的乘积 1234H2345H=?结果放?结果放RESULT单元单元LEA BX,BLOCKMOV AX,BXMUL WORD PTR BX+4MOV RESULT,AXMOV RESULT+2,DX结果为结果为02820404HCF=1,OF=1 34H 12H 10H 28H 45H 23H 04H 04H 82H 02H BLOCK RESULT 微型计算机原理-重庆三峡学院物理与电子工程学院八、除法指令八、除法指令格式格式 DIV SRC (针对无符号数)(针对无符号数) IDIV
35、SRC (针对带符号数)(针对带符号数)隐含规定:隐含规定: SRC为除数,为为除数,为 8 8位位/ / 1616位位 / /3232位位寄存器或存储器寄存器或存储器 被除数隐含在被除数隐含在 ( AXAX/ /DXDX:AXAX/ / EDXEDX:EAXEAX) 商隐含在商隐含在 ( ALAL/ / AX AX / / EAXEAX) 余数隐含在余数隐含在 ( AHAH/ / DX DX / / EDXEDX) 字节除字节除 字除字除 双字除双字除* *当除数为当除数为0 0或商溢出时会产生中断或商溢出时会产生中断* *被除数必须是除数的双倍长度,否则,需要进行高位扩展被除数必须是除数的
36、双倍长度,否则,需要进行高位扩展 无符号数高位扩展为全无符号数高位扩展为全0 0,带符号数按符号扩展指令扩展,带符号数按符号扩展指令扩展微型计算机原理-重庆三峡学院物理与电子工程学院九、组合型九、组合型BCD算术运算指令算术运算指令 组合组合BCD码也称压缩格式的码也称压缩格式的BCD码,码,用一个字节用一个字节存储存储2位位BCD码码。 如十进制数如十进制数12的组合的组合BCD码为码为 00010010B 35的组合的组合BCD码为码为 00110101B该类指令使用场合:该类指令使用场合: 当参与运算的十进制数以其组合当参与运算的十进制数以其组合BCD码形式存放,加减码形式存放,加减时,
37、计算机会当作二进制数来运算,其结果一定不是理想要时,计算机会当作二进制数来运算,其结果一定不是理想要得的组合型得的组合型BCD码结果,这时,必须用组合型码结果,这时,必须用组合型BCD算术运算算术运算指令加以调整,即将二进制结果调整为指令加以调整,即将二进制结果调整为BCD码表示形式。码表示形式。 加法调整指令一般紧跟在加法调整指令一般紧跟在ADD或或ADC之后,减法调整指之后,减法调整指令一般紧跟在令一般紧跟在SUB或或SBB之后。之后。微型计算机原理-重庆三峡学院物理与电子工程学院1、组合型、组合型BCD加法调整指令加法调整指令格式格式 DAA功能:功能:AL(二进制和)(二进制和)组合组
38、合BCD码码例:例:26+68=? 分析:用组合分析:用组合BCD码存放时,两个数应分别为码存放时,两个数应分别为26H和和68H,理想结果应该为,理想结果应该为94H。编程如下:。编程如下:MOV AL,26HMOV BL,68HADD AL,BL ;AL=8EHDAA ;AL=94H微型计算机原理-重庆三峡学院物理与电子工程学院2、组合型、组合型BCD减法调整指令减法调整指令格式格式 DAS功能:功能:AL(二进制差)(二进制差)组合组合BCD码码例:例:6556=? MOV AL,65H MOV BL,56H SUB AL,BL ;AL=0FH DAS ;AL=09H 微型计算机原理-重
39、庆三峡学院物理与电子工程学院十、非组合型十、非组合型BCD算术运算指令算术运算指令 非非 组合组合BCD码也称非压缩格式的码也称非压缩格式的BCD码,码,用一个用一个字节存储字节存储1位位BCD码,高码,高4位无意义位无意义。 如非组合如非组合BCD码码 00010010B表示的数为表示的数为2 非组合非组合BCD码码 00110101B表示的数为表示的数为5 3635H即即0011011000110101B表示的数是表示的数是65由于由于09的的ASCII码为码为30H39H,机器采用一个字节存放一,机器采用一个字节存放一位位ASCII码,所以,码,所以,ASCII码是一种非组合型码是一种非
40、组合型BCD码。码。 非组合型非组合型BCD调整指令有加、减、乘、除四种调整调整指令有加、减、乘、除四种调整指令。指令。微型计算机原理-重庆三峡学院物理与电子工程学院1、非组合型、非组合型BCD加法调整指令加法调整指令格式格式 AAA功能:功能:AL(二进制和)(二进制和)非组合非组合BCD码码例:例:5+9=? 分析:用非组合分析:用非组合BCD码存放时,两个数应分别为码存放时,两个数应分别为05H和和09H,理想结果应该为,理想结果应该为0104H。编程如下:。编程如下:MOV AL,05HMOV BL,09HADD AL,BL ;AL=0EHAAA ;AX=0104H微型计算机原理-重庆
41、三峡学院物理与电子工程学院2、非组合型、非组合型BCD减法调整指令减法调整指令格式格式 AAS功能:功能:AL(二进制差)(二进制差)非组合非组合BCD码码 3、非组合型、非组合型BCD乘法调整指令乘法调整指令格式格式 AAM功能:功能:AL(二进制乘积)(二进制乘积)非组合非组合BCD码码 4、非组合型、非组合型BCD除法调整指令除法调整指令格式格式 AAD功能:功能:AX(两位非组合(两位非组合BCD码)码)二进制数二进制数*AAD指令必须放在除法指令之前进行。指令必须放在除法指令之前进行。 其他调整指令都是先运算后调整。其他调整指令都是先运算后调整。微型计算机原理-重庆三峡学院物理与电子
42、工程学院思考题思考题判断下列指令是否正确,若有错误,请指出原因,并改正。判断下列指令是否正确,若有错误,请指出原因,并改正。(1 1)MOV BLMOV BL,OFFSET BLOCK OFFSET BLOCK (2 2)LEA DILEA DI,BXBXSISI(3 3)PUSH AL PUSH AL (4 4)POP CSPOP CS(5 5)MOV ESMOV ES,DS DS (6 6)MOV AXMOV AX,SISIDIDI(7 7)MOV BXMOV BXBPBP,AX AX (8 8)ADD AXADD AX,F000HF000H(9 9)MOV BXMOV BX,SI SI
43、(1010)MOV AHMOV AH,DXDX(1111)INC BX INC BX (1212)XCHG AXXCHG AX,2000H 2000H (1313)MOV AXMOV AX,BXBXDX DX (1414)ADD BXADD BX,BXBX(1515)MOV AXMOV AX,DIDISI SI (1616)MOV EAXMOV EAX,ECXECX* *4 480H80H 微型计算机原理-重庆三峡学院物理与电子工程学院3.3.3 3.3.3 逻辑运算指令逻辑运算指令包括:逻辑指令、移位指令、位操作指令包括:逻辑指令、移位指令、位操作指令该类指令特点:该类指令特点: 影响标志位
44、影响标志位 操作数不允许为段寄存器操作数不允许为段寄存器 不允许两个操作数同为存储器操作数不允许两个操作数同为存储器操作数 若无特别规定,操作数类型必须一致若无特别规定,操作数类型必须一致 目的操作数不允许为立即数目的操作数不允许为立即数 当操作数类型不明确时必须使用当操作数类型不明确时必须使用PTR伪指令伪指令微型计算机原理-重庆三峡学院物理与电子工程学院一、逻辑指令一、逻辑指令1、逻辑与指令、逻辑与指令格式格式 AND DEST,SRC功能:目的操作数功能:目的操作数源操作数源操作数目的操作数目的操作数*常用来使目的操作数的某些位被屏蔽(即清常用来使目的操作数的某些位被屏蔽(即清0)例:例
45、:MOV AL,00111001B 若要使若要使AL中高中高4位清位清0,低,低4位不变,怎么办?位不变,怎么办? AND AL,00001111B微型计算机原理-重庆三峡学院物理与电子工程学院2、逻辑或指令、逻辑或指令格式格式 OR DEST,SRC功能:目的操作数功能:目的操作数源操作数源操作数目的操作数目的操作数*常用来使目的操作数的某些位置常用来使目的操作数的某些位置1例:例:MOV AL,00001001B 若要使若要使AL中最高中最高2位置位置1,低,低6位不变,怎么办?位不变,怎么办? OR AL,11000000B微型计算机原理-重庆三峡学院物理与电子工程学院3、逻辑异或指令、
46、逻辑异或指令格式格式 XOR DEST,SRC功能:目的操作数功能:目的操作数 源操作数源操作数目的操作数目的操作数*常用来使目的操作数的某些位变反常用来使目的操作数的某些位变反 例:例:MOV AL,00001001B 若要使若要使AL中中D7、D0位变反,其它位不变位变反,其它位不变*对寄存器操作数清对寄存器操作数清0 例例 XOR DS,DS*测试一操作数与另一操作数是否相等测试一操作数与另一操作数是否相等 例例 XOR AL,BL 若若ZF=1,则,则AL=BLXOR AL,10000001B微型计算机原理-重庆三峡学院物理与电子工程学院4、逻辑非指令、逻辑非指令格式格式 NOT DE
47、ST功能:目的操作数按位取反功能:目的操作数按位取反目的操作数目的操作数5、测试指令、测试指令格式格式 TEST DEST,SRC功能:目的操作数功能:目的操作数源操作数源操作数*常用来测试目的操作数的某位的状态常用来测试目的操作数的某位的状态(是是0还是还是1) 或者用来测试目的操作数的某些位是否同时为或者用来测试目的操作数的某些位是否同时为0 例:若要测试例:若要测试AL中中D7位为位为0还是为还是为1,怎么办?,怎么办?TEST AL,10000000B 若若ZF=1,则,则D7=0 若若ZF=0,则,则D7=1微型计算机原理-重庆三峡学院物理与电子工程学院逻辑指令对标志位的影响逻辑指令
48、对标志位的影响 NOT 指令不影响标志位指令不影响标志位 AND、OR、XOR、TEST 指令影响标志位指令影响标志位SF、ZF、PF,并且使,并且使CF=0,OF=0,对,对AF未定义未定义微型计算机原理-重庆三峡学院物理与电子工程学院二、移位指令二、移位指令1、移位分类、移位分类 算术移位(算术移位(A) 左移(左移(L) 右移(右移(R) 非循环(非循环(S) 左移(左移(L) 逻辑移位(逻辑移位(H) 右移(右移(R) 小循环移位(小循环移位(O)左移()左移(L) 循环循环 (R) 右移(右移(R) 大循环移位(大循环移位(C)左移()左移(L) 右移(右移(R) 移位指令有:移位指
49、令有:SAL、SAR、SHL、SHR ROL、ROR、RCL、RCR微型计算机原理-重庆三峡学院物理与电子工程学院2、移位指令格式、移位指令格式DEST:表示目的操作数,(寄存器或存储器):表示目的操作数,(寄存器或存储器)OPRD:表示移位的次数,可以是立即数,也可:表示移位的次数,可以是立即数,也可 以由以由CL间接指定移位次数。间接指定移位次数。SAL DEST,OPRDSAR DEST,OPRDSHL DEST,OPRDSHR DEST,OPRDROL DEST,OPRDROR DEST,OPRDRCL DEST,OPRDRCR DEST,OPRD微型计算机原理-重庆三峡学院物理与电子
50、工程学院3、移位示意图、移位示意图1(非循环移位)(非循环移位)操作数MSBLSBCF操作数MSBLSBCF操作数MSBLSBCF0(a)(b)(c)0 (a)SALSHL; (b)SAR; (c)SHR 微型计算机原理-重庆三峡学院物理与电子工程学院4、移位示意图、移位示意图2(循环移位)(循环移位) (a)ROL; (b) ROR; (c)RCL; (d)RCR操作数MSBLSBCF操作数MSBLSBCF(a)(b)(c)操作数MSBLSBCF操作数MSBLSBCF(d)微型计算机原理-重庆三峡学院物理与电子工程学院5、对标志位的影响、对标志位的影响SALSHL 影响影响OF、SF、ZF、
51、PF、CFSHRSARROLROR 影响影响CF、OFRCLRCR微型计算机原理-重庆三峡学院物理与电子工程学院 设一个字节数据设一个字节数据X存放在存放在AL 寄存器中,试分寄存器中,试分析下列程序段的功能。析下列程序段的功能。 XOR AH,AH SAL AX,1 MOV BX,AX MOV CL,2 SAL AX,CL ADD AX,BX;AH=0;AX=2X;BX=2X;AX=4(2X)=8X;AX=8X+2X=10X功能:功能:10XAX微型计算机原理-重庆三峡学院物理与电子工程学院三、位操作指令三、位操作指令1、位测试和设置指令、位测试和设置指令 BT DEST,SRC (指定位送
52、(指定位送CF) BTC DEST,SRC (指定位送(指定位送CF,该位取反),该位取反) BTR DEST,SRC (指定位送(指定位送CF,该位清,该位清0) BTS DEST,SRC (指定位送(指定位送CF,该位置,该位置1)如如 MOV AX,1234H ;AX=0001001000110100B MOV CX,5 BT AX,CX ;CF=1,AX=1234H BTC AX,CX ;CF=1,AX=1214H BTS AX,CX ;CF=0,AX=1234H BTR AX,CX ;CF=1,AX=1214H微型计算机原理-重庆三峡学院物理与电子工程学院2、位扫描指令、位扫描指令
53、BSF DEST,SRC功能:从低位开始扫描功能:从低位开始扫描SRC,若所有位为,若所有位为0,则,则ZF=0,否,否 则则ZF=1,且将第一个出现,且将第一个出现1的位号存入的位号存入DEST中。中。 BSR DEST,SRC功能:从高位开始扫描功能:从高位开始扫描SRC,若所有位为,若所有位为0,则,则ZF=0,否,否 则则ZF=1,且将第一个出现,且将第一个出现1的位号存入的位号存入DEST中。中。如如 MOV AX,1234H ;AX=0001001000110100B BSF BX,AX ;ZF=1,BX=0002H BSR DX,CX ;CF=1,AX=000CH 微型计算机原理
54、-重庆三峡学院物理与电子工程学院3、位标志指令、位标志指令 CLC (CF=0) STC (CF=1) CLD (DF=0) STD (DF=1) CLI (IF=0) STI (IF=1) 4、条件设置字节指令、条件设置字节指令 格式:格式:SETCOND DEST 功能:测试条件(功能:测试条件(COND)若为真,则将)若为真,则将DEST置置01H,否则置,否则置00H。见。见P87的表的表3.3 微型计算机原理-重庆三峡学院物理与电子工程学院3.3.4 3.3.4 控制转移类指令控制转移类指令该类指令不影响标志位。该类指令不影响标志位。无条件转移指令无条件转移指令条件转移指令条件转移指
55、令循环控制指令循环控制指令微型计算机原理-重庆三峡学院物理与电子工程学院一、无条件转移指令一、无条件转移指令TARGET:目标标号:目标标号 REG:通用寄存器:通用寄存器1、段内直接转移、段内直接转移 JMP TARGET2、段内间接转移、段内间接转移 JMP REG JMP NEAR PTR REG3、段间直接转移、段间直接转移 JMP FAR PTR TARGET4、段间间接转移、段间间接转移 JMP FAR PTR REG微型计算机原理-重庆三峡学院物理与电子工程学院二、条件转移指令二、条件转移指令1、单标志位条件转移指令、单标志位条件转移指令 JO TARGET ;OF=1,即溢出转
56、,即溢出转 JNO TARGET ;OF=0,不溢出转移,不溢出转移 JS TARGET ;SF=1,结果为负转移,结果为负转移 JNS TARGET ;SF=0,结果为正转移,结果为正转移 JC TARGET ;CF=1,有进位转移,有进位转移 JNC TARGET ;CF=0,无进位则转移,无进位则转移JP TARGET ;PF=1,为偶转移,为偶转移JNP TARGET ; PF=0,为奇转移,为奇转移 JEJZ TARGET ;ZF=1,等于或为零转移,等于或为零转移JNEJNZ TARGET ;ZF=0,等于或非零转移,等于或非零转移微型计算机原理-重庆三峡学院物理与电子工程学院例:
57、在不改变例:在不改变AL值的同时,检测值的同时,检测AL 中中1的个数,且存放的个数,且存放在在BL中。中。 .MODEL TINY .CODE .STARTUP MOV BL,0 MOV DL,8 AGAIN: ROL AL,1 JNC NEXT INC BL NEXT: DEC DL JNZ AGAIN .EXIT END微型计算机原理-重庆三峡学院物理与电子工程学院2、无符号数比较条件转移指令、无符号数比较条件转移指令助记符:助记符: J转移转移 A高于高于 B低于低于 E等于等于 N不不指令:指令: JA/JNBE TARGET ;高于;高于/不低于等于转移不低于等于转移JAE/JNB
58、 TARGET ;高于等于;高于等于/不低于转移不低于转移JB/JNAE TARGET ;低于;低于/不高于等于转移不高于等于转移JBE/JNA TARGET ;低于等于;低于等于/不高于转移不高于转移微型计算机原理-重庆三峡学院物理与电子工程学院3、带符号数比较条件转移指令、带符号数比较条件转移指令 J转移转移 G大于大于 L小于小于 E等于等于 N不不 JG/JNLE TARGET ;大于;大于/不小于等于转移不小于等于转移JGE/JNL TARGET ;大于等于;大于等于/不小于转移不小于转移JL/JNGE TARGET ;小于;小于/不大于等于转移不大于等于转移JLE/JNG TARG
59、ET ;小于等于;小于等于/不大于转移不大于转移4、测试、测试CX条件转移指令条件转移指令JCXZ TARGET ;CX=0 转移转移JECXZ TARGET ;ECX=0 转移转移微型计算机原理-重庆三峡学院物理与电子工程学院使用条件转移指令应注意:使用条件转移指令应注意:*条件转移指令一般跟在条件转移指令一般跟在CMP指令或指令或TEST指令指令之后,根据其影响的标志位来决定是否产生转之后,根据其影响的标志位来决定是否产生转移。移。*当条件满足时,转移到目标标号去执行,否则,当条件满足时,转移到目标标号去执行,否则,顺着程序往下执行。顺着程序往下执行。微型计算机原理-重庆三峡学院物理与电子
60、工程学院例例3.65 假设假设AL中带符号数中带符号数X为某值,试编程将为某值,试编程将求出的符号函数值求出的符号函数值f(x)存放在存放在AH中。中。 .MODEL TINY .CODE .STARTUP CMP AL,0 JGE BIG MOV AL,0FFH JMP DONE BIG: JE DONE MOV AL,1DONE: MOV AH,AL .EXIT END微型计算机原理-重庆三峡学院物理与电子工程学院三、循环控制指令三、循环控制指令格式格式:LOOPCC TARGET功能功能:(E)CX1 (E)CX,不影响标志位不影响标志位,且测试条件且测试条件CC成立成立,则转移到则转移
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 33897-2026生物聚酯聚羟基烷酸酯(PHA)吹塑薄膜
- AI在科学史中的应用
- PHP程序设计期末考核试题(含详细答案)
- 2026年福建省综合性评标专家库评标专家考试练习题及答案
- 2026学年黑龙江省绥芬河市五年级语文期末点睛提升黑金试卷(详细参考解析)详细答案和解析
- PCI介入治疗规范化考试题及详细答案
- 农村供水消毒设备安装方案
- 2026年护理紧急预案面试题目及答案
- 2025-2026学年湖北省孝感市初中数学九年级期末上册自测模拟进阶提升题附答案
- OSSLT 英语读写能力测试模拟真题卷
- JJF 2463-2026烟气含湿量测量仪校准规范
- 高中高一年级信息技术“变量与程序设计综合应用-设计购买纪念品的最佳方案”教学设计
- 2026年《艺术概论》题库及参考答案
- 基于AI的环境影响预测模型构建
- 2026年国考地市级申论试题及答案
- ups维保合同范本
- 第二单元项目一 原位和弦的构成与变体教学设计 2025-2026学年人教版(2024)初中音乐八年级上册
- 行政执法文书讲解
- 蓄水池清洗方案(3篇)
- 乡镇卫生院消防课件
- 白班育儿嫂合同协议书版
评论
0/150
提交评论