版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第三章 80 x86尋址方式和指令系統(tǒng)第三章第三章 80X8680X86尋址方式和指令系統(tǒng)尋址方式和指令系統(tǒng)3.13.1 80X8680X86尋址方式尋址方式3.23.2 80X86 80X86指令格式指令格式3.33.3 80X86 80X86指令系統(tǒng)指令系統(tǒng) 第三章 80 x86尋址方式和指令系統(tǒng)3.1 80X863.1 80X86尋址方式尋址方式3.1.1 3.1.1 數(shù)據(jù)尋址方式數(shù)據(jù)尋址方式 操作數(shù)有可能在:操作數(shù)有可能在: (1 1) 代碼段中,作為指令中的立即數(shù)代碼段中,作為指令中的立即數(shù) (2 2) CPUCPU寄存器中寄存器中 (3 3)存儲器的數(shù)據(jù)區(qū)中)存儲器的數(shù)據(jù)區(qū)中所以,
2、總的來說,數(shù)據(jù)尋址方式分為三種:所以,總的來說,數(shù)據(jù)尋址方式分為三種: 立即尋址立即尋址 寄存器尋址寄存器尋址 存儲器尋址存儲器尋址第三章 80 x86尋址方式和指令系統(tǒng)一、立即尋址一、立即尋址操作數(shù)操作數(shù)直接包含在直接包含在代碼段的指令代碼段的指令中。中。 如:如: MOV EAXMOV EAX,80000000H80000000H MOV BX MOV BX,6688H6688H MOV AL MOV AL,12H12H 立即數(shù)只能作為源操作數(shù)立即數(shù)只能作為源操作數(shù) 立即尋址主要用來給通用寄存器或存儲器賦值立即尋址主要用來給通用寄存器或存儲器賦值 不允許給段寄存器直接賦值不允許給段寄存器直
3、接賦值第三章 80 x86尋址方式和指令系統(tǒng)例例3.1 立即尋址立即尋址第三章 80 x86尋址方式和指令系統(tǒng)立即尋址過程示意立即尋址過程示意第三章 80 x86尋址方式和指令系統(tǒng)立即尋址動態(tài)示意立即尋址動態(tài)示意第三章 80 x86尋址方式和指令系統(tǒng)二、寄存器尋址二、寄存器尋址操作數(shù)操作數(shù)在在寄存器寄存器中。中。3232位寄存器:位寄存器:EAXEAX、EBXEBX、ECXECX、EDXEDX、ESPESP、EBPEBP、 ESIESI、EDIEDI1616位寄存器:位寄存器:AXAX、BXBX、CXCX、DXDX、SPSP、BPBP、SISI、 DIDI、CSCS、DSDS、SSSS、ESE
4、S、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第三章 80 x86尋址方式和指令系統(tǒng)例例3.2 寄存器尋址寄存器尋址第三章 80 x86尋址方式和指令系統(tǒng)三、存儲器尋址三、存儲器尋址 操作數(shù)操作數(shù)在在存儲器存儲器中,其地址由指令以某種方式中,其地址由指令以某種方式指出。指出。(一)(一)1616位指令模式下:位指令模式下: 物理地址物理地址= =段基址段基址 10H 10H 有效地址有效
5、地址EAEA(二)(二)3232位指令模式下:位指令模式下: 物理地址物理地址= =段基址段基址 有效地址有效地址EAEAEAEA的計(jì)算方法根據(jù)采用的尋址方式不同而不同。的計(jì)算方法根據(jù)采用的尋址方式不同而不同。第三章 80 x86尋址方式和指令系統(tǒng)(一)一)1616位指令模式下的存儲器尋址位指令模式下的存儲器尋址 1616位指令模式尋址結(jié)構(gòu)位指令模式尋址結(jié)構(gòu): :段基址段基址10H10H基址變址偏移量基址變址偏移量 基址:基址:BXBX、BPBP 變址:變址:SISI、DIDI 偏移量:偏移量:8 8位或位或1616位位 如果有效地址在如果有效地址在BXBX,SISI或或DIDI中,則以中,則
6、以DSDS寄存器內(nèi)容為段基寄存器內(nèi)容為段基址;如果有效地址在址;如果有效地址在BPBP中,則以中,則以SSSS段寄存器之內(nèi)容為段基址。段寄存器之內(nèi)容為段基址。如果使用段超越前綴(如果使用段超越前綴(CSCS:ESES:DSDS:SSSS:),操作數(shù)可以放在:),操作數(shù)可以放在冒號前指定的段。冒號前指定的段。 1616位指令模式尋址方式位指令模式尋址方式: : 直接尋址直接尋址 寄存器間接尋址寄存器間接尋址 寄存器相對尋址寄存器相對尋址 基址變址尋址基址變址尋址 相對基址變址尋址相對基址變址尋址 第三章 80 x86尋址方式和指令系統(tǒng)1 1、直接尋址、直接尋址操作數(shù)在存儲器單元中。操作數(shù)在存儲器
7、單元中。操作數(shù)所在的操作數(shù)所在的有效地址有效地址EAEA直接由指令指出直接由指令指出。 例例1 MOV AX1 MOV AX,3000H3000H 例例2 .data 2 .data 地址地址 數(shù)據(jù)數(shù)據(jù)1D26:000C 12 data1 db 12h1D26:000C 12 data1 db 12h1D26:000D 3355 data2 dw 5533H1D26:000D 3355 data2 dw 5533H .code .code .startup .startup1D24:0010 8A1E0C00 mov bl,data1;1D24:0010 8A1E0C00 mov bl,dat
8、a1;1D24:0014 A10D00 mov ax,data2;1D24:0014 A10D00 mov ax,data2; .exit .end .exit .end第三章 80 x86尋址方式和指令系統(tǒng)直接尋址過程示意直接尋址過程示意第三章 80 x86尋址方式和指令系統(tǒng)2 2、寄存器間接尋址、寄存器間接尋址 操作數(shù)的操作數(shù)的有效地址在有效地址在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
9、I ) ) ( ( D D I I ) ) E E A A = = 第三章 80 x86尋址方式和指令系統(tǒng)例例3.4 寄存器間接尋址寄存器間接尋址第三章 80 x86尋址方式和指令系統(tǒng)寄存器間接尋址過程示意寄存器間接尋址過程示意第三章 80 x86尋址方式和指令系統(tǒng)3 3、寄存器相對尋址、寄存器相對尋址操作數(shù)在存儲單元中,其操作數(shù)在存儲單元中,其有效地址有效地址EAEA可表示為可表示為 例例1 MOV AL1 MOV AL,BXBX4000H4000H亦可寫成:亦可寫成: MOV ALMOV AL,4000HBX4000HBX 例例2 MOV AX2 MOV AX,BP+2000HBP+200
10、0H( (B BX X) ) ( (B BP P) ) 8 8 位偏移量 ( (S SI I) ) 1 16 6 位偏移量 ( (D DI I) ) E EA A= = 第三章 80 x86尋址方式和指令系統(tǒng)例例3.6 寄存器相對尋址寄存器相對尋址第三章 80 x86尋址方式和指令系統(tǒng)寄存器相對尋址過程示意寄存器相對尋址過程示意第三章 80 x86尋址方式和指令系統(tǒng)4 4、基址變址尋址、基址變址尋址操作數(shù)在存儲單元中,其有效地址操作數(shù)在存儲單元中,其有效地址EAEA可表示為可表示為 以基址寄存器決定默認(rèn)段寄存器;以基址寄存器決定默認(rèn)段寄存器;BX-DSBX-DS;BP-SSBP-SS可以使用附
11、加段;可以使用附加段;MOV AXMOV AX,ES:2000HES:2000H將將ESES段中的段中的2000H2000H和和2001H2001H的內(nèi)容賦給的內(nèi)容賦給ALAL和和AHAH 例例1 MOV AX1 MOV AX,BXBXSI SI 或?qū)懗桑夯驅(qū)懗桑篗OV AXMOV AX,BXSIBXSI兩種方式等價(jià)兩種方式等價(jià) 例例2 MOV AX2 MOV AX,BX+DIBX+DI 例例3 MOV AX3 MOV AX,BP+SIBP+SI 例例4 MOV AX4 MOV AX,BP+DIBP+DI (BX) (SI) (BP) (DI) EA= 第三章 80 x86尋址方式和指令系統(tǒng)第
12、三章 80 x86尋址方式和指令系統(tǒng)例例3.7 基址變址尋址基址變址尋址第三章 80 x86尋址方式和指令系統(tǒng)基址變址尋址過程示意基址變址尋址過程示意第三章 80 x86尋址方式和指令系統(tǒng)5 5、相對基址變址尋址、相對基址變址尋址操作數(shù)在存儲單元中,其操作數(shù)在存儲單元中,其有效地址有效地址EAEA可表示為可表示為 一般以基址寄存器決定默認(rèn)段寄存器;一般以基址寄存器決定默認(rèn)段寄存器;以下幾種方法的表示是等價(jià)的:以下幾種方法的表示是等價(jià)的: 例例1 MOV AX1 MOV AX,BXBXSISI1500H1500H MOV AX MOV AX,1500BX+SI1500BX+SI MOV AX M
13、OV AX,1500BXSI1500BXSI MOV AX MOV AX,1500SIBX 1500SIBX 例例2 MOV AX2 MOV AX,BP+DI+1000HBP+DI+1000H (BX) (SI) 8 位偏移量 (BP) (DI) 16 位偏移量 EA= 第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)例例3.8 相對基址變址尋址相對基址變址尋址第三章 80 x86尋址方式和指令系統(tǒng)相對基址變址尋址過程示意相對基址變址尋址過程示意第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)(二)二)3232位指令模式下的存儲器尋址位指
14、令模式下的存儲器尋址 32 32位指令模式尋址結(jié)構(gòu)由位指令模式尋址結(jié)構(gòu)由5 5部分組成部分組成:段址段址基址變址比例因子偏移量基址變址比例因子偏移量 其中基址寄存器或變址寄存器可以是除其中基址寄存器或變址寄存器可以是除ESPESP以以外的任何外的任何3232位通用寄存器。當(dāng)基址寄存器為位通用寄存器。當(dāng)基址寄存器為EBPEBP時(shí),時(shí),默認(rèn)段寄存器默認(rèn)段寄存器SSSS存放段選擇符,否則,默認(rèn)存放段選擇符,否則,默認(rèn)DSDS存存放段選擇符。也可使用段超越前綴來指定。比例放段選擇符。也可使用段超越前綴來指定。比例因子為因子為1 1,2 2,4 4,8 8。偏移量為。偏移量為8 8位或位或3232位。位
15、。 第三章 80 x86尋址方式和指令系統(tǒng)3232位指令模式下的存儲器尋址方式位指令模式下的存儲器尋址方式1 1、直接尋址、直接尋址 如:如:MOV EAXMOV EAX,10000000H10000000H2 2、 間接尋址間接尋址 如:如:MOV EDXMOV EDX,ECXECX3 3、 相對基址尋址相對基址尋址 如:如:MOV ECXMOV ECX,EAX+80HEAX+80H4 4、 相對比例變址尋址相對比例變址尋址 如:如:MOV EBXMOV EBX,ESIESI* *4+80H4+80H5 5、 相對比例基址變址尋址相對比例基址變址尋址 如:如:MOV EAXMOV EAX,E
16、BP+EDIEBP+EDI* *4+80H4+80H第三章 80 x86尋址方式和指令系統(tǒng)3.1.2 3.1.2 程序地址尋址方式程序地址尋址方式一、相對尋址一、相對尋址 相對尋址為段內(nèi)尋址,指令中給出帶符號的相對偏相對尋址為段內(nèi)尋址,指令中給出帶符號的相對偏移量,程序目標(biāo)地址為當(dāng)前移量,程序目標(biāo)地址為當(dāng)前IPIP值加上相對偏移量作為偏移值加上相對偏移量作為偏移地址。地址。 二、二、 直接尋址直接尋址 直接尋址是指指令中直接給出轉(zhuǎn)移指令的目標(biāo)地址。在直接尋址是指指令中直接給出轉(zhuǎn)移指令的目標(biāo)地址。在段間轉(zhuǎn)移中,指令中給出目標(biāo)段地址或代碼段的段描述符。段間轉(zhuǎn)移中,指令中給出目標(biāo)段地址或代碼段的段描
17、述符。三、間接尋址三、間接尋址 間接尋址間接尋址 分段內(nèi)和段間間接尋址,指令中以間接方分段內(nèi)和段間間接尋址,指令中以間接方式給出轉(zhuǎn)移指令的目標(biāo)地址,通常存放在數(shù)據(jù)段。式給出轉(zhuǎn)移指令的目標(biāo)地址,通常存放在數(shù)據(jù)段。 第三章 80 x86尋址方式和指令系統(tǒng)3.1.3 3.1.3 堆棧地址尋址方式堆棧地址尋址方式字?jǐn)?shù)據(jù)字?jǐn)?shù)據(jù)進(jìn)棧進(jìn)棧步驟步驟: :1 1、(、(E E)SPSP11(E E)SPSP2 2、 高高8 8位位堆棧堆棧3 3、(、(E E)SPSP11(E E)SPSP4 4、低、低8 8位位堆棧堆棧字?jǐn)?shù)據(jù)字?jǐn)?shù)據(jù)出棧出棧步驟步驟: :1 1、棧頂內(nèi)容、棧頂內(nèi)容目標(biāo)寄存器或目標(biāo)單元的低目標(biāo)寄存
18、器或目標(biāo)單元的低8 8位位2 2、(、(E E)SPSP11(E E)SPSP3 3、棧頂內(nèi)容、棧頂內(nèi)容目標(biāo)寄存器或目標(biāo)單元的高目標(biāo)寄存器或目標(biāo)單元的高8 8位位4 4、(、(E E)SPSP11(E E)SPSP第三章 80 x86尋址方式和指令系統(tǒng)堆棧操作示意堆棧操作示意第三章 80 x86尋址方式和指令系統(tǒng)思考題思考題 1、 設(shè)DS=2000H,SS=3000H,BP=0200H,SI=4000H,BUF=1000H,EAX=00001000H,EBX=00002000H,假設(shè)按16位實(shí)模式操作,確定下列每條指令訪問內(nèi)存的物理地址,并且指出源操作數(shù)及目的操作數(shù)的尋址方式。(1)MOV A
19、L,1234H (2)MOV EDX,BX(3)MOV CL,BX100H (4)MOV SI,EBX(5)MOV AH,BUFBXSI (6)MOV EAX,BP1234H 第三章 80 x86尋址方式和指令系統(tǒng)3.2 80X863.2 80X86指令格式指令格式第三章 80 x86尋址方式和指令系統(tǒng)3.3 80X863.3 80X86指令系統(tǒng)指令系統(tǒng)按功能分類:按功能分類: 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令 邏輯運(yùn)算指令邏輯運(yùn)算指令 控制轉(zhuǎn)移類指令控制轉(zhuǎn)移類指令 串操作指令串操作指令 輸入輸入/輸出指令輸出指令 處理器控制指令處理器控制指令 中斷指令與中斷指令與DOS功能
20、調(diào)用功能調(diào)用第三章 80 x86尋址方式和指令系統(tǒng)3.3.1 3.3.1 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令 通用數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令 堆棧操作指令堆棧操作指令 地址傳送指令地址傳送指令 標(biāo)志寄存器傳送指令標(biāo)志寄存器傳送指令 查表指令查表指令 符號擴(kuò)展指令符號擴(kuò)展指令數(shù)據(jù)傳送指令包括:數(shù)據(jù)傳送指令包括:第三章 80 x86尋址方式和指令系統(tǒng)3.3.1 3.3.1 數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令包括:數(shù)據(jù)傳送指令包括: 通用數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送指令堆棧操作指令堆棧操作指令地址傳送指令地址傳送指令標(biāo)志寄存器傳送指令標(biāo)志寄存器傳送指令查表指令查表指令符號擴(kuò)展指令符號擴(kuò)展指令第三章 80 x8
21、6尋址方式和指令系統(tǒng)傳送指令數(shù)據(jù)流傳送指令數(shù)據(jù)流* * CS CS不能為目的操作數(shù),不能對(不能為目的操作數(shù),不能對(E E)IPIP直接傳直接傳送數(shù)據(jù)送數(shù)據(jù) 堆堆 棧棧 段段寄寄存存器器 存存儲儲器器單單元元 立立即即數(shù)數(shù) 寄寄存存器器 第三章 80 x86尋址方式和指令系統(tǒng)一、通用數(shù)據(jù)傳送指令一、通用數(shù)據(jù)傳送指令DEST:目的操作數(shù):目的操作數(shù)SRC:源操作數(shù):源操作數(shù)1、一般傳送指令、一般傳送指令 MOV DEST,SRC如:如:MOV AL,CL MOV BX,SI MOV EAX,EBX 第三章 80 x86尋址方式和指令系統(tǒng)使用使用MOV指令應(yīng)注意:指令應(yīng)注意: 立即數(shù)不允許直接送
22、段寄存器,且立即數(shù)不能立即數(shù)不允許直接送段寄存器,且立即數(shù)不能做目的操作數(shù)做目的操作數(shù) 源操作數(shù)和目的操作數(shù)不允許同時(shí)為存儲器操源操作數(shù)和目的操作數(shù)不允許同時(shí)為存儲器操作數(shù)作數(shù) 源操作數(shù)和目的操作數(shù)不允許同時(shí)為段寄存器源操作數(shù)和目的操作數(shù)不允許同時(shí)為段寄存器 兩操作數(shù)的數(shù)據(jù)類型要一致兩操作數(shù)的數(shù)據(jù)類型要一致 傳送操作不影響標(biāo)志位傳送操作不影響標(biāo)志位 不允許對不允許對CS、(、(E)IP傳送數(shù)據(jù)傳送數(shù)據(jù)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)2、擴(kuò)展傳送指令(由、擴(kuò)展傳送指令(由8位擴(kuò)展為位擴(kuò)展為16位送目的操作數(shù))位送目
23、的操作數(shù)) MOVSX DEST,SRC MOVZX DEST,SRC如如 MOV BL,80H MOVSX AX,BL;AX=FF80H MOVZX AX,BL;AX=0080H*目的操作數(shù)為通用寄存器(目的操作數(shù)為通用寄存器(16位或位或32位位)*源操作數(shù)長度必須小于目的操作數(shù)長度,為通用寄存器或存儲源操作數(shù)長度必須小于目的操作數(shù)長度,為通用寄存器或存儲器操作數(shù)(器操作數(shù)(8位或位或16位位)第三章 80 x86尋址方式和指令系統(tǒng)3、交換指令、交換指令 XCHG DEST,SRC如:如:XCHG AX,BX XCHG AX,SI*兩操作數(shù)中不允許出現(xiàn)立即數(shù)兩操作數(shù)中不允許出現(xiàn)立即數(shù)*兩操
24、作數(shù)不允許同時(shí)為存儲器操作數(shù)兩操作數(shù)不允許同時(shí)為存儲器操作數(shù)*兩操作數(shù)數(shù)據(jù)類型必須一致兩操作數(shù)數(shù)據(jù)類型必須一致 第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)二、堆棧操作指令二、堆棧操作指令第三章 80 x86尋址方式和指令系統(tǒng) 壓棧指令壓棧指令 PUSH SRC如:如:PUSH AX PUSH DS PUSH SI PUSH 1234H 如果操作數(shù)據(jù)類型為字類型(如果操作數(shù)據(jù)類型為字類型(16位):位): 如果操作數(shù)為雙字類型(如果操作數(shù)為雙字類型(32位):位):SP-4 SP第三章 80 x86尋址方式和指令系統(tǒng) 出棧指令出棧指令 POP DEST如:如:P
25、OP AX POP DS POP BX 操作數(shù)類型為字類型(操作數(shù)類型為字類型(16位):位):操作數(shù)類型為雙字類型(操作數(shù)類型為雙字類型(32位):位):SPSP+4第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)三、地址傳送指令三、地址傳送指令功能:將源操作數(shù)的有效地址傳給通用寄存器功能:將源操作數(shù)的有效地址傳給通用寄存器格式:格式: LEA DEST,SRC *DEST為為16位或位或32位通用寄存器位通用寄存器 *SRC為為16位或位或32位存儲器操作數(shù)位存儲器操作數(shù)例例1:LEA BX,SI+1005H 若若SI=10
26、00H 則則BX=?(?(2005H)寄存器相對尋址:寄存器相對尋址:16位偏移量位偏移量+變址寄存器內(nèi)容變址寄存器內(nèi)容例例2:LEA DI,BLOCK MOV DI,BLOCK有何區(qū)別?有何區(qū)別?第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng) 功能:根據(jù)源操作數(shù)指定的偏移地址,在數(shù)據(jù)段中取功能:根據(jù)源操作數(shù)指定的偏移地址,在數(shù)據(jù)段中取出段基址和偏移地址分別送到指定的段寄存器和通用出段基址和偏移地址分別送到指定的段寄存器和通用寄存器寄存器第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)四、標(biāo)志寄存器傳送指令四、標(biāo)志寄存器傳送指令格式格式
27、1:LAHF:將標(biāo)志寄存器底將標(biāo)志寄存器底8位送至位送至AH SAHF:將將AH內(nèi)容送至標(biāo)志寄存器底內(nèi)容送至標(biāo)志寄存器底8位位格式格式2:PUSHF:將標(biāo)志寄存器底將標(biāo)志寄存器底16位壓入堆棧位壓入堆棧 POPF:將當(dāng)前棧頂?shù)囊粋€(gè)字送到標(biāo)志寄將當(dāng)前棧頂?shù)囊粋€(gè)字送到標(biāo)志寄 存器底存器底16位位格式格式3: PUSHFD:將標(biāo)志寄存器將標(biāo)志寄存器32位壓入堆棧位壓入堆棧 POPFD:將當(dāng)前棧頂?shù)囊粋€(gè)雙字送到標(biāo)將當(dāng)前棧頂?shù)囊粋€(gè)雙字送到標(biāo) 志寄存器志寄存器*SAHF、POPF、POPFD影響標(biāo)志位影響標(biāo)志位第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86
28、尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)五、查表指令五、查表指令格式:格式: XLAT指令規(guī)定:表格存于數(shù)據(jù)段中指令規(guī)定:表格存于數(shù)據(jù)段中;表首偏移地址表首偏移地址BX 表內(nèi)偏移量表內(nèi)偏移量AL;查找結(jié)果查找結(jié)果AL所找單元的物理地址所找單元的物理地址: (DS)10H+(BX)+(AL)第三章 80 x86尋址方式和指令系統(tǒng)查表指令應(yīng)用舉例查表指令應(yīng)用舉例 3FH 06H 5BH 4FH 66H 6DH BLOCK LEA BX,BLOCK(有效地支放入有效地支放入BX) MOV AL, 3 XLAT結(jié)果:結(jié)果:AL內(nèi)容為內(nèi)容為4FH例:試編程將內(nèi)存中以例:試編程將內(nèi)存中以B
29、LOCK為起始地址的編碼表中為起始地址的編碼表中順序號為順序號為3的編碼送的編碼送AL寄存器。寄存器。 第三章 80 x86尋址方式和指令系統(tǒng)六、符號擴(kuò)展指令六、符號擴(kuò)展指令針對帶符號數(shù),按帶符號數(shù)擴(kuò)展。針對帶符號數(shù),按帶符號數(shù)擴(kuò)展。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位)位)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和
30、指令系統(tǒng)3.3.2 3.3.2 算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令 加法指令加法指令 減法指令減法指令 加加1減減1指令指令 比較指令比較指令 乘法指令乘法指令 除法指令除法指令 BCD算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令第三章 80 x86尋址方式和指令系統(tǒng)算術(shù)運(yùn)算類指令特點(diǎn)算術(shù)運(yùn)算類指令特點(diǎn) 影響標(biāo)志位影響標(biāo)志位 操作數(shù)不允許為段寄存器操作數(shù)不允許為段寄存器 不允許兩個(gè)操作數(shù)同為存儲器操作數(shù)不允許兩個(gè)操作數(shù)同為存儲器操作數(shù) 若無特別規(guī)定,操作數(shù)類型必須一致若無特別規(guī)定,操作數(shù)類型必須一致 目的操作數(shù)不允許為立即數(shù)目的操作數(shù)不允許為立即數(shù) 當(dāng)操作數(shù)類型不明確時(shí)必須使用當(dāng)操作數(shù)類型不明確時(shí)必須使用PTR偽指令偽指令
31、第三章 80 x86尋址方式和指令系統(tǒng)一、加法指令一、加法指令格式(格式(1) ADD DEST,SRC功能:源操作數(shù)功能:源操作數(shù)+目的操作數(shù)目的操作數(shù)目的操作數(shù)目的操作數(shù)格式(格式(2) ADC DEST,SRC功能:源操作數(shù)功能:源操作數(shù)+目的操作數(shù)目的操作數(shù)+CF目的操作數(shù)目的操作數(shù)例:例:32F2H+A020H=?MOV AX,32F2H 或或 MOV AX,32F2HMOV BX,0A020H MOV BX,0A020HADD AX,BX ADD AL,BL ADC AH,BH第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和
32、指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)二、減法指令二、減法指令格式(格式(1) SUB DEST,SRC功能:目的操作數(shù)源操作數(shù)功能:目的操作數(shù)源操作數(shù)目的操作數(shù)目的操作數(shù)格式(格式(2) SBB DEST,SRC功能:目的操作數(shù)源操作數(shù)功能:目的操作數(shù)源操作數(shù)CF目的操作數(shù)目的操作數(shù)*SUB、SBB指令與指令與ADD、ADC一樣,影響標(biāo)志位一樣,影響標(biāo)志位OF、SF、ZF、AF,PF,CF第三章 80 x86尋址方式和指令系統(tǒng)三、加三
33、、加1減減1指令指令加加1指令指令 INC DEST功能:目的操作數(shù)功能:目的操作數(shù)1目的操作數(shù)目的操作數(shù)減減1指令指令 DEC DEST功能:目的操作數(shù)功能:目的操作數(shù)1目的操作數(shù)目的操作數(shù)目的操作數(shù)為通用寄存器或存儲器操作數(shù)目的操作數(shù)為通用寄存器或存儲器操作數(shù)*不影響不影響CF,影響,影響OF、SF、ZF、AF、PF例:例:INC BX INC BYTE PTR BX(存儲器操作數(shù)(存儲器操作數(shù)+1) DEC EAX DEC WORD PTRSI (存儲器操作數(shù)(存儲器操作數(shù)-1)第三章 80 x86尋址方式和指令系統(tǒng)四、比較指令四、比較指令格式格式 CMP DEST,SRC功能:目的操作
34、數(shù)源操作數(shù),結(jié)果不送回;不影響操功能:目的操作數(shù)源操作數(shù),結(jié)果不送回;不影響操作數(shù)本身;原操作數(shù)可為通用寄存器、存儲器、立即作數(shù)本身;原操作數(shù)可為通用寄存器、存儲器、立即數(shù),目的操作數(shù)可為通用寄存器、存儲器操作數(shù)。數(shù),目的操作數(shù)可為通用寄存器、存儲器操作數(shù)。(1)若目、源為無符號數(shù))若目、源為無符號數(shù) CF=0 則目則目源源 (若(若ZF=1,則目,則目=源)源) CF=1 則目源則目源第三章 80 x86尋址方式和指令系統(tǒng)(2)若目、源為帶符號數(shù))若目、源為帶符號數(shù) 若目、源為同號數(shù)(若目、源為同號數(shù)(OF=0) 若均為正,若均為正,SF=0 則目則目源(若源(若ZF=1,則目,則目=源)源
35、) SF=1 則目源則目源 若均為負(fù)若均為負(fù) ,SF=0 則目則目源(若源(若ZF=1,則目,則目=源)源) SF=1 則目源則目源第三章 80 x86尋址方式和指令系統(tǒng)若目、源為異號數(shù)(若目、源為異號數(shù)(OF=0或或1) 若目為正,源為負(fù)若目為正,源為負(fù) 則目源則目源 若此時(shí)若此時(shí) SF=0 則則OF=0 若此時(shí)若此時(shí) SF=1 則則OF=1 若目為負(fù),源為正若目為負(fù),源為正 則目源則目源 若此時(shí)若此時(shí) SF=1 則則OF=0 若此時(shí)若此時(shí) SF=0 則則OF=1綜合起來,若目、源為帶符號數(shù)綜合起來,若目、源為帶符號數(shù) OF SF=0 則目則目源源 OF SF=1 則目源則目源 第三章 80
36、 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)五、交換相加指令五、交換相加指令格式格式 XADD DEST,SRC功能:目的操作數(shù)源操作數(shù)功能:目的操作數(shù)源操作數(shù)目的操作數(shù)目的操作數(shù) 且原目的操作數(shù)且原目的操作數(shù)源操作數(shù)源操作數(shù)影響標(biāo)志位影響標(biāo)志位OF、SF、ZF、AF、PF、CF源操作數(shù)可為通用寄存器,目的操作數(shù)可為通用寄源操作數(shù)可為通用寄存器,目的操作數(shù)可為通用寄存器和存儲器操作數(shù)。存器和存儲器操作數(shù)。六、求補(bǔ)指令六、求補(bǔ)指令格式格式 NEG DEST功能:求目的操作數(shù)的相反數(shù)的補(bǔ)碼功能:求目的操作數(shù)的相反數(shù)的補(bǔ)碼影響標(biāo)志位影響標(biāo)志位OF、SF、ZF、AF、PF、CF第三
37、章 80 x86尋址方式和指令系統(tǒng)七、乘法指令七、乘法指令格式格式 MUL SRC (針對無符號數(shù))(針對無符號數(shù)) IMUL SRC (針對帶符號數(shù))(針對帶符號數(shù))隱含規(guī)定:隱含規(guī)定: SRCSRC為一乘數(shù)因子,可為為一乘數(shù)因子,可為 8 8位位/ / 1616位位 / /3232位位寄存器或存儲器寄存器或存儲器 另一乘數(shù)因子在累加器中(另一乘數(shù)因子在累加器中(ALAL/ / AX AX / / EAXEAX) 結(jié)果為乘積,乘積隱含在(結(jié)果為乘積,乘積隱含在(AXAX/ /DXDX:AXAX/ /EDXEDX:EAXEAX) 字節(jié)乘字節(jié)乘 字乘字乘 雙字乘雙字乘* *若乘積高位為若乘積高位
38、為0 0,則,則CF=0CF=0,OF=0OF=0 若乘積高位含有效數(shù)據(jù),則若乘積高位含有效數(shù)據(jù),則CF=1CF=1,OF=1OF=1 對其它標(biāo)志位無定義對其它標(biāo)志位無定義 第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)例:計(jì)算存于下列內(nèi)存中的兩個(gè)無符號數(shù)的乘積例:計(jì)算存于下列內(nèi)存中的兩個(gè)無符號數(shù)的乘積 1234H2345H=?結(jié)果放?結(jié)果放RESULT單元單元LEA BX,BLOCKMOV AX,BXMUL WORD PTR BX+4MOV RESULT,AXMOV RESULT+2,DX(另一乘數(shù)隱含在(另一乘數(shù)隱含在AX中)中)(字乘結(jié)果:(字乘結(jié)果:DX:
39、AX)結(jié)果為結(jié)果為02820404HCF=1,OF=1 34H 12H 10H 28H 45H 23H 04H 04H 82H 02H BLOCK RESULT 第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)八、除法指令八、除法指令格式格式 DIV SRC (針對無符號數(shù))(針對無符號數(shù)) IDIV SRC (針對帶符號數(shù))(針對帶符號數(shù))隱含規(guī)定:隱含規(guī)定: SRC為除數(shù),為為除數(shù),為 8 8位位/ / 1616位位 / /3232位位寄存器或存儲器寄存器或存儲器 被除數(shù)隱含在被除數(shù)隱含在 ( AXAX/ /DXDX:AXA
40、X/ / EDXEDX:EAXEAX) 商隱含在商隱含在 ( ALAL/ / AX AX / / EAXEAX) 余數(shù)隱含在余數(shù)隱含在 ( AHAH/ / DX DX / / EDXEDX) 字節(jié)除字節(jié)除 字除字除 雙字除雙字除* *當(dāng)除數(shù)為當(dāng)除數(shù)為0 0或商溢出時(shí)會產(chǎn)生中斷或商溢出時(shí)會產(chǎn)生中斷* *被除數(shù)必須是除數(shù)的雙倍長度,否則,需要進(jìn)行高位擴(kuò)展被除數(shù)必須是除數(shù)的雙倍長度,否則,需要進(jìn)行高位擴(kuò)展 無符號數(shù)高位擴(kuò)展為全無符號數(shù)高位擴(kuò)展為全0 0,帶符號數(shù)按符號擴(kuò)展指令擴(kuò)展,帶符號數(shù)按符號擴(kuò)展指令擴(kuò)展第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x8
41、6尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)九、組合型九、組合型BCD算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令第三章 80 x86尋址方式和指令系統(tǒng) 組合組合BCD碼也稱壓縮格式的碼也稱壓縮格式的BCD碼,碼,用一用一個(gè)字節(jié)存儲個(gè)字節(jié)存儲2位位BCD碼碼。 如十進(jìn)制數(shù)如十進(jìn)制數(shù)12的組合的組合BCD碼為碼為 00010010B 35的組合的組合BCD碼為碼為 00110101B該類指令使用場合:該類指令使用場合: 當(dāng)參與運(yùn)算的十進(jìn)制數(shù)以其組合當(dāng)參與運(yùn)算的十進(jìn)制數(shù)以其組合BCD碼形式存碼形式存放,加減時(shí),計(jì)算機(jī)會當(dāng)作二進(jìn)制
42、數(shù)來運(yùn)算,其結(jié)果放,加減時(shí),計(jì)算機(jī)會當(dāng)作二進(jìn)制數(shù)來運(yùn)算,其結(jié)果一定不是理想要得的組合型一定不是理想要得的組合型BCD碼結(jié)果,這時(shí),必碼結(jié)果,這時(shí),必須用組合型須用組合型BCD算術(shù)運(yùn)算指令加以調(diào)整,即將二進(jìn)算術(shù)運(yùn)算指令加以調(diào)整,即將二進(jìn)制結(jié)果調(diào)整為制結(jié)果調(diào)整為BCD碼表示形式。碼表示形式。 加法調(diào)整指令一般緊跟在加法調(diào)整指令一般緊跟在ADD或或ADC之后,減之后,減法調(diào)整指令一般緊跟在法調(diào)整指令一般緊跟在SUB或或SBB之后。之后。第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80
43、x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)1、組合型、組合型BCD加法調(diào)整指令加法調(diào)整指令格式格式 DAA功能:功能:AL(二進(jìn)制和)(二進(jìn)制和)組合組合BCD碼碼例:例:26+68=? 分析:用組合分析:用組合BCD碼存放時(shí),兩個(gè)數(shù)應(yīng)分別為碼存放時(shí),兩個(gè)數(shù)應(yīng)分別為26H和和68H,理想結(jié)果應(yīng)該為,理想結(jié)果應(yīng)該為94H。編程如下:。編程如下:MOV AL,26HMOV BL,68HADD AL,BL ;AL=8EHDAA ;AL=94H第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)2、組合型、組合型BCD減
44、法調(diào)整指令減法調(diào)整指令格式格式 DAS功能:功能:AL(二進(jìn)制差)(二進(jìn)制差)組合組合BCD碼碼例:例:6556=? MOV AL,65H MOV BL,56H SUB AL,BL ;AL=0FH DAS ;AL=09H 第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)十、非組合型十、非組合型BCD算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令 非非 組合組合BCD碼也稱非壓縮格式的碼也稱非壓縮格式的BCD碼,碼,用一個(gè)字節(jié)存儲用一個(gè)字節(jié)存儲1位位BCD碼,高碼,高4位無意義位無意義。 如非組合如非組合BCD碼碼
45、 00010010B表示的數(shù)為表示的數(shù)為2 非組合非組合BCD碼碼 00110101B表示的數(shù)為表示的數(shù)為5 3635H即即0011011000110101B表示的數(shù)是表示的數(shù)是65由于由于09的的ASCII碼為碼為30H39H,機(jī)器采用一個(gè)字節(jié)存放一,機(jī)器采用一個(gè)字節(jié)存放一位位ASCII碼,所以,碼,所以,ASCII碼是一種非組合型碼是一種非組合型BCD碼。碼。 非組合型非組合型BCD調(diào)整指令有加、減、乘、除四種調(diào)整指令。調(diào)整指令有加、減、乘、除四種調(diào)整指令。第三章 80 x86尋址方式和指令系統(tǒng)1、非組合型、非組合型BCD加法調(diào)整指令加法調(diào)整指令格式格式 AAA功能:功能:AL(二進(jìn)制和)
46、(二進(jìn)制和)非組合非組合BCD碼碼例:例:5+9=? 分析:用非組合分析:用非組合BCD碼存放時(shí),兩個(gè)數(shù)應(yīng)分別為碼存放時(shí),兩個(gè)數(shù)應(yīng)分別為05H和和09H,理想結(jié)果應(yīng)該為,理想結(jié)果應(yīng)該為0104H。編程如下:。編程如下:MOV AL,05HMOV BL,09HADD AL,BL ;AL=0EHAAA ;AX=0104H第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)2、非組合型、非組合型BCD減法調(diào)整指令減法調(diào)整指令格式格式 AAS功能:功能:AL(二進(jìn)制差)(二進(jìn)制差)非組合非組合BCD碼碼 第三章 80 x86尋址方式和指令系
47、統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)3、非組合型、非組合型BCD乘法調(diào)整指令乘法調(diào)整指令格式格式 AAM功能:功能:AL(二進(jìn)制乘積)(二進(jìn)制乘積)非組合非組合BCD碼碼 第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng) 4、非組合型、非組合型BCD除法調(diào)整指令除法調(diào)整指令 格式格式 AAD 功能:功能:AX(兩位非組合(兩位非組合BCD碼)碼)二進(jìn)制二進(jìn)制數(shù)數(shù) *AAD指令必須放在除法指令之前進(jìn)行。指令必須放在除法指令之前進(jìn)行。 其他調(diào)整指令都是先運(yùn)算后調(diào)整。其他調(diào)整指令都是先運(yùn)算后調(diào)整。第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令
48、系統(tǒng)思考題思考題判斷下列指令是否正確,若有錯(cuò)誤,請指出原因,并改正。判斷下列指令是否正確,若有錯(cuò)誤,請指出原因,并改正。(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,F(xiàn)000HF000H(9 9)MOV BXMOV BX,SI SI (1
49、010)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 第三章 80 x86尋址方式和指令系統(tǒng)3.3.3 3.3.3 邏輯運(yùn)算指令邏輯運(yùn)算指令包括:邏輯指令、移位指令、位操作指令包括:邏輯指令、移位指令、位操作指令該類指令特點(diǎn):該類指令特點(diǎn): 影響標(biāo)志位影響標(biāo)志位
50、操作數(shù)不允許為段寄存器操作數(shù)不允許為段寄存器 不允許兩個(gè)操作數(shù)同為存儲器操作數(shù)不允許兩個(gè)操作數(shù)同為存儲器操作數(shù) 若無特別規(guī)定,操作數(shù)類型必須一致若無特別規(guī)定,操作數(shù)類型必須一致 目的操作數(shù)不允許為立即數(shù)目的操作數(shù)不允許為立即數(shù) 當(dāng)操作數(shù)類型不明確時(shí)必須使用當(dāng)操作數(shù)類型不明確時(shí)必須使用PTR偽指令偽指令第三章 80 x86尋址方式和指令系統(tǒng)一、邏輯指令一、邏輯指令1、邏輯與指令、邏輯與指令格式格式 AND DEST,SRC功能:目的操作數(shù)功能:目的操作數(shù)源操作數(shù)源操作數(shù)目的操作數(shù)目的操作數(shù)*常用來使目的操作數(shù)的某些位被屏蔽(即清常用來使目的操作數(shù)的某些位被屏蔽(即清0)例:例:MOV AL,00
51、111001B 若要使若要使AL中高中高4位清位清0,低,低4位不變,怎么辦?位不變,怎么辦? AND AL,00001111B第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)2、邏輯或指令、邏輯或指令格式格式 OR DEST,SRC功能:目的操作數(shù)功能:目的操作數(shù)源操作數(shù)源操作數(shù)目的操作數(shù)目的操作數(shù)*常用來使目的操作數(shù)的某些位置常用來使目的操作數(shù)的某些位置1例:例:MOV AL,00001001B 若要使若要使AL中最高中最高2位置位置1,低,低6位不變,怎么辦?位不變,怎么辦? OR AL,11000000B第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x
52、86尋址方式和指令系統(tǒng)3、邏輯異或指令、邏輯異或指令格式格式 XOR DEST,SRC功能:目的操作數(shù)功能:目的操作數(shù) 源操作數(shù)源操作數(shù)目的操作數(shù)目的操作數(shù)*常用來使目的操作數(shù)的某些位變反常用來使目的操作數(shù)的某些位變反 例:例:MOV AL,00001001B 若要使若要使AL中中D7、D0位變反,其它位不變位變反,其它位不變*對寄存器操作數(shù)清對寄存器操作數(shù)清0 例例 XOR DS,DS*測試一操作數(shù)與另一操作數(shù)是否相等測試一操作數(shù)與另一操作數(shù)是否相等 例例 XOR AL,BL 若若ZF=1,則,則AL=BLXOR AL,10000001B第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x
53、86尋址方式和指令系統(tǒng)4、邏輯非指令、邏輯非指令格式格式 NOT DEST功能:目的操作數(shù)按位取反功能:目的操作數(shù)按位取反目的操作數(shù)目的操作數(shù)5、測試指令、測試指令格式格式 TEST DEST,SRC功能:目的操作數(shù)功能:目的操作數(shù)源操作數(shù)源操作數(shù);但操作結(jié)果不送回,既執(zhí)行指令但操作結(jié)果不送回,既執(zhí)行指令后兩操作數(shù)不變。后兩操作數(shù)不變。*常用來測試目的操作數(shù)的某位的狀態(tài)常用來測試目的操作數(shù)的某位的狀態(tài)(是是0還是還是1) 或者用來測試目的操作數(shù)的某些位是否同時(shí)為或者用來測試目的操作數(shù)的某些位是否同時(shí)為0 例:若要測試?yán)喝粢獪y試AL中中D7位為位為0還是為還是為1,怎么辦?,怎么辦?TEST
54、AL,10000000B 若若ZF=1,則,則D7=0 若若ZF=0,則,則D7=1第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)邏輯指令對標(biāo)志位的影響邏輯指令對標(biāo)志位的影響 NOT 指令不影響標(biāo)志位指令不影響標(biāo)志位 AND、OR、XOR、TEST 指令影響標(biāo)志位指令影響標(biāo)志位SF、ZF、PF,并且使,并且使CF=0,OF=0,對,對AF未定義未定義第三章 80 x86尋址方式和指令系統(tǒng)二、移位指令二、移位指令1、移位分類、移位分類 算術(shù)移位(算術(shù)移位(A) 左移(左移(L) 右移(右移(R) 非循環(huán)(非循環(huán)(S) 左移(左移(L) 邏輯移位(邏輯移位(H) 右移
55、(右移(R) 小循環(huán)移位(小循環(huán)移位(O)左移()左移(L) 循環(huán)循環(huán) (R) 右移(右移(R) 大循環(huán)移位(大循環(huán)移位(C)左移()左移(L) 右移(右移(R) 移位指令有:移位指令有:SAL、SAR、SHL、SHR ROL、ROR、RCL、RCR第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)2、移位指令格式、移位指令格式DEST:表示目的操作數(shù),(寄存器或存儲器):表示目的操作數(shù),(寄存器或存儲器)OPRD:表示移位的次數(shù),可以是立即數(shù),也可:表示移位的次數(shù),可以是立即數(shù),也可 以由以由CL間接指定移位次數(shù)。間接指定移位次數(shù)。SAL DEST,OPRDSAR
56、DEST,OPRDSHL DEST,OPRDSHR DEST,OPRDROL DEST,OPRDROR DEST,OPRDRCL DEST,OPRDRCR DEST,OPRD第三章 80 x86尋址方式和指令系統(tǒng)3、移位示意圖、移位示意圖1(非循環(huán)移位)(非循環(huán)移位)操作數(shù)MSBLSBCF操作數(shù)MSBLSBCF操作數(shù)MSBLSBCF0(a)(b)(c)0 (a)SALSHL; (b)SAR; (c)SHR 第三章 80 x86尋址方式和指令系統(tǒng)4、移位示意圖、移位示意圖2(循環(huán)移位)(循環(huán)移位) (a)ROL; (b) ROR; (c)RCL; (d)RCR操作數(shù)MSBLSBCF操作數(shù)MSBL
57、SBCF(a)(b)(c)操作數(shù)MSBLSBCF操作數(shù)MSBLSBCF(d)第三章 80 x86尋址方式和指令系統(tǒng)5、對標(biāo)志位的影響、對標(biāo)志位的影響SALSHL 影響影響OF、SF、ZF、PF、CFSHRSARROLROR 影響影響CF、OFRCLRCR第三章 80 x86尋址方式和指令系統(tǒng) 設(shè)一個(gè)字節(jié)數(shù)據(jù)設(shè)一個(gè)字節(jié)數(shù)據(jù)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;
58、AX=4(2X)=8X;AX=8X+2X=10X功能:功能:10XAX第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng)第三章 80 x86尋址方式和指令系統(tǒng) SAL:最高位移入CF中,最低位補(bǔ)0;此處CF=1 RCL:最高位進(jìn)入CF,CF的值進(jìn)入最低位第三章 80 x86尋址方式和指令系統(tǒng)三、位操作指令三、位操作指令1、位測試和設(shè)置指令、位測試和設(shè)置指令 BT DEST,SRC (指定位送(指定位送CF) BTC DEST,SRC (指定位送(指定位送CF,該位取反),該位取反) BTR DEST,SRC (指定位送(指定位送CF,該位清,該位清0) BTS DES
59、T,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第三章 80 x86尋址方式和指令系統(tǒng) 目的操作數(shù):16或32位通用寄存器或存儲器 源操作數(shù):16或32位通用寄存器或存儲器或8位立即數(shù) 若源操作數(shù)為通用寄存器,則必須同目的操作數(shù)類型一致。第三章 80 x86尋址方式和指令系統(tǒng)2、位掃描指令、位掃描指令
60、 BSF DEST,SRC功能:從低位開始掃描功能:從低位開始掃描SRC,若所有位為,若所有位為0,則,則ZF=0,否,否 則則ZF=1,且將第一個(gè)出現(xiàn),且將第一個(gè)出現(xiàn)1的位號存入的位號存入DEST中。中。 BSR DEST,SRC功能:從高位開始掃描功能:從高位開始掃描SRC,若所有位為,若所有位為0,則,則ZF=0,否,否 則則ZF=1,且將第一個(gè)出現(xiàn),且將第一個(gè)出現(xiàn)1的位號存入的位號存入DEST中。中。如如 MOV AX,1234H ;AX=0001001000110100B BSF BX,AX ;ZF=1,BX=0002H BSR DX,AX ;CF=1,DX=000CH 第三章 80
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 冀教版四年級下冊數(shù)學(xué)教案
- 農(nóng)村環(huán)境整治與生態(tài)建設(shè)
- 焊接作業(yè)工藝流程標(biāo)準(zhǔn)化與優(yōu)化方案
- 生產(chǎn)的火災(zāi)危險(xiǎn)性分類標(biāo)準(zhǔn)
- 高一化學(xué)教案:專題第二單元第二課時(shí)乙酸酯
- 2024屆遼寧省大連海灣某中學(xué)高考仿真卷化學(xué)試卷含解析
- 2024高中物理章末質(zhì)量評估四含解析新人教版選修1-1
- 2024高中語文略讀課文第8課楊振寧:合璧中西科學(xué)文化的驕子課堂練習(xí)含解析新人教版選修中外傳記蚜
- 2024高中語文第五單元散而不亂氣脈中貫自主賞析祭十二郎文學(xué)案新人教版選修中國古代詩歌散文欣賞
- 2024高中語文精讀課文二第5課1達(dá)爾文:興趣與恒心是科學(xué)發(fā)現(xiàn)的動力一作業(yè)含解析新人教版選修中外傳記蚜
- 中金公司在線測評真題
- 項(xiàng)目資金管理統(tǒng)籌實(shí)施方案
- 2024供應(yīng)商大會策劃方案
- 政治-經(jīng)濟(jì)與社會 教材探究與分享參考答案高中政治統(tǒng)編版必修二
- 湖南省常德市桃源縣市級名校2024年中考數(shù)學(xué)模試卷含解析
- 2024小學(xué)語文六年級上冊第四單元:大單元整體教學(xué)課件
- 2025屆高考政治一輪復(fù)習(xí):統(tǒng)編版選擇性必修2《法律與生活》知識點(diǎn)考點(diǎn)提綱詳細(xì)版
- 基于PLC的食品包裝機(jī)控制系統(tǒng)設(shè)計(jì)
- 2023北師大版新教材高中數(shù)學(xué)必修第一冊考前必背
- 盤扣式卸料平臺施工方案
- 12S108-1 倒流防止器選用及安裝
評論
0/150
提交評論