微機(jī)原理與接口技術(shù)3指令系統(tǒng)和尋址方式_第1頁(yè)
微機(jī)原理與接口技術(shù)3指令系統(tǒng)和尋址方式_第2頁(yè)
微機(jī)原理與接口技術(shù)3指令系統(tǒng)和尋址方式_第3頁(yè)
微機(jī)原理與接口技術(shù)3指令系統(tǒng)和尋址方式_第4頁(yè)
微機(jī)原理與接口技術(shù)3指令系統(tǒng)和尋址方式_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、14指令格式目的操作數(shù)源操作數(shù) 操作碼:指令。操作數(shù):描述該指令的操作對(duì)象,存放在指令的地址碼字段中;存放在寄 存器中;存放在存儲(chǔ)器的數(shù)據(jù)段、堆棧段或附加數(shù)據(jù)段中。與對(duì) 應(yīng)的三種操作數(shù)是:立即操作數(shù)、寄存器操作數(shù)和存儲(chǔ)器操作數(shù)。尋址方式:確定操作數(shù)存放地址的方法。 1)立即尋址方式:操作數(shù)直接給出,即數(shù)字表達(dá)式。(不需要訪問(wèn)存儲(chǔ)器)。 說(shuō)明:立即數(shù)可為8位,可位16位;只能為整數(shù);只能做源操作數(shù)。 2)寄存器尋址方式:操作數(shù)在CPU內(nèi)部的寄存器中,指令中給出寄存器名。 說(shuō)明:寄存器為16位(AX,BX,CX,DX,SI,DI,SP,BP) 8位(AH,AL,BH,BL,CH,CL,DH,DL)

2、; 源操作數(shù)和目的操作數(shù)都(同時(shí))可以使用寄存器尋址。 3)存儲(chǔ)器尋址:操作數(shù)在存儲(chǔ)器中。 3)(1直接尋址方式:存儲(chǔ)單元的有效地址由指令直接給出。 說(shuō)明:默認(rèn)的段寄存器DS,如果不是,則需要用前綴指出 如MOV BX,EX:3100H 3)(2寄存器間接尋址方式:存儲(chǔ)單元的有效地址在寄存器中。 說(shuō)明:寄存器可為基址寄存器(BX,BP),變址寄存器(SI,DI); 默認(rèn)的段寄存器位DS,當(dāng)寄存器為BP時(shí),段寄存器為SS。 3)(3寄存器相對(duì)尋址方式:操作數(shù)的偏移地址是指定寄存器與一個(gè)整數(shù)之和。 3)(4基址變址尋址:操作數(shù)的偏移地址是兩個(gè)指定寄存器的值之和。 3)(相對(duì)基址變址尋址方式:操作數(shù)

3、的偏移地址是指定寄存器的值與相對(duì)偏移量 之和 對(duì)操作數(shù)的說(shuō)明: 立即操作數(shù):(1)只能做源操作數(shù) (2)指令中的立即操作數(shù)不應(yīng)超過(guò)其8位或16位的取值范圍 MOV AL, 100H,錯(cuò)誤,應(yīng)該為MOV AX ,100H 寄存器操作數(shù):(1)存放在通用寄存器(AX-DX),地址指針(IP)或變址寄存器 (SI,DI),以及段寄存器(SS,DS) 存儲(chǔ)器操作數(shù):(1)存儲(chǔ)器操作數(shù)可以作為源操作數(shù),也可以作為目的操作數(shù), (2)多數(shù)指令不允許源操作數(shù)、目的操作數(shù)同時(shí)為存儲(chǔ)器操作數(shù)。8088/8086CPU的指令系統(tǒng):【*:表示匯編格式】 1)數(shù)據(jù)傳送指令: (1)通用傳送指令操作碼MOVPUSHPO

4、PPUSHFPOPFXCHG操作功能數(shù)據(jù)傳送入棧出棧標(biāo)志壓棧標(biāo)志出棧交換 1、最基本的傳送指令:MOV 目的操作數(shù) 源操作數(shù) 目的操作數(shù)源操作數(shù) 說(shuō)明:1:不能將立即數(shù)直接傳送給段寄存器 2:兩個(gè)段寄存器之間不允許直接傳送數(shù)據(jù) 3:兩內(nèi)存單元之間不能直接傳送數(shù)據(jù) 4:CS,IP,PSW不能做目的操作數(shù),即值用 戶無(wú)權(quán)改變 5:目的操作數(shù)不能是立即尋址方式 6:源操作數(shù)與目的操作數(shù)必須字長(zhǎng)相等實(shí)現(xiàn):寄存器(d) (d)寄存器(2) (段)寄存器 內(nèi)存 寄存器/內(nèi)存 立即數(shù) 7:MOV指令不影響標(biāo)志位 2、堆棧操作指令:PUSH和POP(按先進(jìn)后出,后進(jìn)先出的原則) PUSH 源操作數(shù) (壓棧:

5、操作:(SP)(SP)2 (SP)+1,(SP)操作數(shù) POP 目的操作數(shù) (彈棧: 操作:操作數(shù)((SP)+1,(SP)) (SP)(SP)+2 說(shuō)明:1:PUSH、POP指令的操作數(shù)不能使用立即尋 址方式。POP指令的操作數(shù)不能使用CS寄 存器。 2:PUSH、POP指令只能做字操作。 3:不影響標(biāo)志位。 3、交換指令:XCHG(兩者互換) XCHG 目的操作數(shù),源操作數(shù) 說(shuō)明:1:目的和源都不能為立即數(shù)或段寄存器,IP。 2:不能同時(shí)為內(nèi)存單元。 3:目的操作數(shù)和源的取值范圍要相同,同為8位 或者16位。 4:不影響標(biāo)志位。 (2)累加器專用傳送 1、換碼指令:XLAT(用于編碼制的轉(zhuǎn)換

6、) XLAT或XLAT 地址標(biāo)號(hào) 說(shuō)明:1:內(nèi)存中必須有碼表。 2:不影響標(biāo)志位。 2、輸入/輸出指令I(lǐng)N,OUT(16位時(shí),端口只能放在DX中) 1、輸入指令:IN(CPU從外設(shè)端口接收數(shù)據(jù)) 2、輸出指令:OUT(CPU向外設(shè)端口發(fā)送數(shù)據(jù)) 說(shuō)明:8位:IN AL,I/O口地址表達(dá)式 OUT 地址表達(dá)式,AL 16位:MOV DX,地址表達(dá)式 MOV DX,地址表達(dá)式 IN AX,DX OUT DX,AX (3)地址傳送指令 1、偏移地址送寄存器指令:LEA(load effective address取有效地址指 令)(將內(nèi)存單元的地址送到某一個(gè)寄存器中) LEA 16位寄存器名,存儲(chǔ)器

7、尋址方式 說(shuō)明:1:16位寄存器不包括段寄存器。 2:不影響標(biāo)志位。 2、指針?biāo)椭付拇嫫骱虳S寄存器指令:LDS(load pointer into register DS取地址指針裝入DS和另一個(gè)寄存器的指令) (將4個(gè)字節(jié)的內(nèi)存單元地址(一個(gè)段地址和偏移 量送到兩個(gè)目的寄存器中,后2個(gè)字節(jié)送入DS) LDS 16位寄存器名,存儲(chǔ)器尋址方式 說(shuō)明:1:16位寄存器不允許是段寄存器。 2:不影響標(biāo)志位。 3、指針?biāo)椭付拇嫫骱虴S寄存器指令:LES(load pointer into register DS取地址指針裝入ES和另一個(gè)寄存器的指令) LES 16位寄存器名,存儲(chǔ)器尋址方式 說(shuō)明

8、:1:16位寄存器不允許段寄存器。 2:不影響標(biāo)志位。 (4)標(biāo)志傳送指令 1、讀取標(biāo)志指令:LAHF(load AH with Flags)讀取標(biāo)志位置AH中 LAHF 2、設(shè)置標(biāo)志指令:SAHF(store AH onto Flags)將AH設(shè)置到A標(biāo)志位 SAHF 3、標(biāo)志入棧指令:PUSHF PUSHF 標(biāo)志出棧指令:POPF POPF 2)算術(shù)運(yùn)算指令: (1)加法指令 1、不帶進(jìn)位位的加法指令:ADD(addition) 匯編格式:ADD目的操作數(shù),源操作數(shù) 執(zhí)行的操作:(目的操作數(shù))源操作數(shù)+目的操作數(shù) 2、帶進(jìn)位位的加法指令:ADC(addition with carry)(實(shí)

9、現(xiàn)多字節(jié)相加) 匯編格式:ADC目的操作數(shù),源操作數(shù) 執(zhí)行的操作:(目的操作數(shù))源操作數(shù)+目的操作數(shù)+CF 3、增量指令:INC(increment destination by 1) 匯編格式:INC操作數(shù) 執(zhí)行的操作:(操作數(shù))操作數(shù)+1 說(shuō)明:1:除增量指令不影響CF標(biāo)志位,其他標(biāo)志位均受指令影響 2:CF標(biāo)志位表示無(wú)符號(hào)數(shù)有無(wú)溢出,OF標(biāo)志位表示有符號(hào) 數(shù)有無(wú)溢出 (2)減法指令 1、不考慮借位的減法指令:SUB(subtract) 匯編格式:SUB目的操作數(shù),源操作數(shù) 執(zhí)行的操作:(目的操作數(shù))目的操作數(shù)源操作數(shù) 2、考慮借位的減法指令:SBB(subtract with borro

10、w) 匯編格式:SBB目的操作數(shù),源操作數(shù) 執(zhí)行的操作:(目的操作數(shù))目的操作數(shù)源操作數(shù)CF 3、減量指令:DEC(decrement destination by 1) 匯編格式:DEC操作數(shù) 執(zhí)行的操作:(操作數(shù))操作數(shù)1 4、求補(bǔ)指令:NEG(negate) 匯編格式:NEG操作數(shù) 執(zhí)行的操作:(操作數(shù))0操作數(shù) 5、比較指令CMP(compare two operands) 匯編格式:CMP目的操作數(shù),源操作數(shù) 執(zhí)行的操作:目的操作數(shù)源操作數(shù)。 說(shuō)明:結(jié)果不回送,兩個(gè)操作數(shù)保持原值,影響標(biāo)志位。 說(shuō)明:1、除DEC不影響CF標(biāo)志位,其余標(biāo)志位均受指令影響。 2、ZF標(biāo)志位表示零標(biāo)志位,

11、SF表示符號(hào)標(biāo)志位。 (3)乘法指令 1、無(wú)符號(hào)數(shù)的乘法指令:MUL(multiply accumulator by register-or-memory;unsigned) 匯編格式:MUL源操作數(shù) 執(zhí)行的操作:若為字節(jié)操作 (AX)(AL)×源操作數(shù) 若為字操作 (DX), (AX)(AX)×源操作數(shù) 2、有符號(hào)數(shù)的乘法指令:IMUL(integer multiply accumulator by register- or-memory;signed) 匯編格式:IMUL源操作數(shù) 執(zhí)行的操作:與MUL相同,只是處理的數(shù)據(jù)是有符號(hào)數(shù), 而MUL處理的數(shù)據(jù)是無(wú)符號(hào)數(shù)。 說(shuō)明

12、:1:乘法指令的源操作數(shù)不能為立即尋址方式。 2:乘法指令對(duì)除CF和OF以外的標(biāo)志位無(wú)定義。 (4)除法指令 1、無(wú)符號(hào)數(shù)的乘法指令:DIV(division;unsigned) 匯編格式:DIV源操作數(shù) 執(zhí)行的操作:若為字節(jié)操作:(AL)(AX)/源操作數(shù)的商 (AH)(AX)/源操作數(shù)的余數(shù) 若為字操作: (AX)(DX、AX)/源操作數(shù)的商 (DX)(DX、AX)/源操作數(shù)的余數(shù) 商和余數(shù)均為無(wú)符號(hào)數(shù)。 2、有符號(hào)數(shù)的乘法指令:IDIV(integer Division;signed) 匯編格式:IDIV源操作數(shù) 執(zhí)行的操作:與DIV相同,只是操作數(shù)是有符號(hào)數(shù),商和余數(shù)均 為有符號(hào)數(shù),余

13、數(shù)符號(hào)同被除數(shù)符號(hào)。 說(shuō)明:1、乘法對(duì)所有的標(biāo)志位未定義。 2、源操作數(shù)的尋址方式不能為立即尋址方式。 3、除法指令可能導(dǎo)致的錯(cuò)誤:除數(shù)位0,除法溢出。 產(chǎn)生除法錯(cuò)中斷警告,優(yōu)先級(jí)為0最高。 (5)符號(hào)擴(kuò)展指令(正數(shù)將AH或DX清0,負(fù)數(shù)將AH或DX置1) 1、字節(jié)轉(zhuǎn)換為字指令:CBW 匯編格式:CBW 執(zhí)行的操作:將(AL)的符號(hào)擴(kuò)展到(AH)中去。如果(AL)的最高有 效位為0,則(AH)=00H;如(AL)的最高有效位為1, 則(AH)=0FFH。 2、字轉(zhuǎn)換為雙字指令:CWD 匯編格式:CWD 執(zhí)行的操作:將(AX)的符號(hào)擴(kuò)展到(DX)中去。如果(AX)的最高 有效位為0,則(DX)=

14、00H;如(AX)的最高有效位 為1,則(DX)=0FFH。 說(shuō)明:這兩條指令都不影響標(biāo)志位。 (6)十進(jìn)制調(diào)整指令: 1、組合BCD碼的運(yùn)算調(diào)整指令 加法調(diào)整指令DAA(decimal adjust for addition) 減法調(diào)整指令DAS(decimal adjust for subtraction) 匯編格式:DAA 執(zhí)行的操作:調(diào)整(AL)中的二進(jìn)制BCD碼的和。調(diào)整方法如下: 若AF=1或者(AL)的低4位是在AHFH之間,則 (AL) 加06H,且自動(dòng)置AF=1; 若CF=1或者(AL)的高4位是在AHFH之間,則 (AL)加60H,且自動(dòng)置CF=1。 匯編格式:DAS 執(zhí)行

15、的操作:調(diào)整(AL)中的差。調(diào)整方法如下: 若AF=1,則(AL)減06H; 若CF=1,則(AL)減60H。 2、非組合BCD碼調(diào)整指令 加法調(diào)整指令A(yù)AA 減法調(diào)整指令A(yù)AS 乘法調(diào)整指令A(yù)AM 除法調(diào)整指令A(yù)AD 3)邏輯運(yùn)算指令和移位指令 (1)邏輯運(yùn)算指令 說(shuō)明:AND、OR、XOR和TEST四條指令的使用形式很相似,都是雙 操作數(shù)指令,操作數(shù)的尋址方式的規(guī)定與算術(shù)運(yùn)算指令相同,對(duì) 標(biāo)志位的影響也相同,使CF=0,OF=0,AF位無(wú)定義,SF、ZF、 PF根據(jù)運(yùn)算結(jié)果設(shè)置。 1、AND邏輯與指令 匯編格式:AND目的操作數(shù),源操作數(shù) 2、OR 邏輯或指令 匯編格式:OR 目的操作數(shù),

16、源操作數(shù) 3、XOR邏輯異或指令 匯編格式:XOR目的操作數(shù),源操作數(shù) 說(shuō)明:置為0的位必須和“0”相“與”。 置為1的位必須和“1”相“或”。 取反的那些位與“1”相“異或”。 4、TEST 測(cè)試指令 匯編格式:TEST目的操作數(shù),源操作數(shù) 說(shuō)明:TEST指令后面可能跟一條JNZ或JZ指令,從而根據(jù)ZF的 結(jié)果判斷是否轉(zhuǎn)移。相當(dāng)于and但只改變標(biāo)志位。 5、NOT 邏輯非指令 匯編格式:NOT目的操作數(shù) 說(shuō)明:1)尋址方式不能為立即尋址方式。 2)本指令不影響標(biāo)志位。 (2)移位指令 1、非循環(huán)移位指令 邏輯左移指令SHL(shift logic left) 匯編格式:SHL 除立即數(shù)及段寄

17、存器之外的操作數(shù),移位次數(shù) 邏輯右移指令SHR(shift logic right) 匯編格式:SHR除立即數(shù)及寄存器之外的操作數(shù),移位次數(shù) 算術(shù)左移指令SAL(shift arithmetic left) 匯編格式:SAL除立即數(shù)及段寄存器之外的操作數(shù),移位次數(shù) 算術(shù)右移指令SAR(shift arithmetic right) 匯編格式:SAR除立即數(shù)及段寄存器之外的操作數(shù),移位次數(shù) 說(shuō)明:1.操作數(shù)可以是寄存器或者內(nèi)存單元中的8位或者16位操作數(shù) 2、邏輯移位指令把操作數(shù)看成無(wú)符號(hào)數(shù)SHL,SHR. 3、算術(shù)移位指令把操作數(shù)看成有符號(hào)數(shù)SAR,SAL. 4、SAL和SHL操作相同,以0填

18、充最低位。 5、SAR和SHR的操作不同,SAR最高位保持不變(符號(hào)位) SHR以0填充最高位 6、對(duì)于移位指令,只有移位次數(shù)是1時(shí),OF才有意義,移位 后如果CF和最高位不同,OF=1;否則OF=0. 7、如果移位次數(shù)為1時(shí)可以直接由指令給出,如果移位若干次 則必須用CL寄存器預(yù)先指定所移的位數(shù)。 8、左移N位相當(dāng)于乘2N,右移N位相當(dāng)于除2N。 2、 循環(huán)移位指令: 循環(huán)左移指令ROL(rotate left) 匯編格式:ROL除立即數(shù)和段寄存器之外的操作數(shù),移位次數(shù) 循環(huán)右移指令ROR(rotate right) 匯編指令:ROR除立即數(shù)和段寄存器之外的操作數(shù),移位次數(shù) 帶進(jìn)位的循環(huán)左移

19、指令RCL(rotate through CF left) 匯編格式:RCL除立即數(shù)和段寄存器之外的操作數(shù),移位次數(shù) 帶進(jìn)位的循環(huán)右移指令RCR(rotate through CF right) 匯編格式:RCR除立即數(shù)和段寄存器之外的操作數(shù),移位次數(shù) 說(shuō)明:1:ROL,ROL不含CF循環(huán)移位指令,即8位操作數(shù)移動(dòng)8 次后還原。而RCL,RCR含CF,需9次 2:如果循環(huán)移位次數(shù)為1時(shí)可以直接由指令指出,如果循 環(huán)移若干次,則必須用CL寄存器預(yù)先指定所移的位數(shù)。 3:對(duì)于循環(huán)移位指令,只有循環(huán)移位的次數(shù)為1時(shí),OF才有 意義,循環(huán)移位后如果CF的最高位不同,OF=1,否則OF=0 4)串操作指

20、令: 說(shuō)明:1:以SI作為源操作數(shù)的指針寄存器,默認(rèn)段為DS段。以DI作為目的操作數(shù)的指針寄存器,默認(rèn)段為ES段。 2:串操作的地址的修改和FLAG的DF為相關(guān),DF=0時(shí)SI和DI增量變化,DF=1時(shí)減量變化,對(duì)字符串操作SI,DI每次變量為±1,對(duì)字串操作每次變量為±2. 3:特例性:源操作數(shù)和目的操作數(shù)可以同時(shí)是內(nèi)存單元。 (1)字符串傳送指令(MOVSB/MOVSW)(move string byte/word) (CLD指令使DF=0,STD指令使DF=1) 匯編格式1:MOVSB 匯編格式2:MOVSW 匯編格式3:MOVS目的操作數(shù),源操作數(shù) (2)取字符串指

21、令 LODS(load string) (3)存字符串指令STOS (store string) 說(shuō)明:重復(fù)傳送:REP MOVS/LODS/STOS (4)串比較指令 :CMPS(compare string) (5)串檢索指令: SCAS(scan string ) 說(shuō)明:重復(fù)傳送:REPE/REPZ CMPS/SCAS 找第一個(gè)不相等的元素 REPNE/REPNZ CMPS/SCAS 找第一個(gè)相等的元素 5)控制轉(zhuǎn)移指令: (1)無(wú)條件轉(zhuǎn)移指令JMP 指令尋址方式:計(jì)算下一條指令地址的尋址方式。 代碼段之內(nèi) 段內(nèi)直接轉(zhuǎn)移:IP=立即數(shù)+IP 段內(nèi)間接轉(zhuǎn)移:IP=寄存器內(nèi)容或者內(nèi)存單元 代

22、碼段之間 段間直接轉(zhuǎn)移:IP=偏移量,CS=段地址 段間間接轉(zhuǎn)移:IP=內(nèi)存單元,CS=內(nèi)存單元+2。 (2)子程序調(diào)用和返回指令CALL和RET CALL命令執(zhí)行的過(guò)程,CPU暫時(shí)不執(zhí)行后續(xù)的指令,而是將CALL 指令的下一條指令地址壓入堆棧,轉(zhuǎn)去執(zhí)行子程序,執(zhí)行完子程序,再 倒敘(CS,IP入棧,IP,CS出棧)彈棧,接著執(zhí)行。最后一條指令必須 是RET (3)條件轉(zhuǎn)移指令 (4)循環(huán)控制指令(控制循環(huán)是否繼續(xù),以CX為計(jì)數(shù)器,只能使用段內(nèi)直 接轉(zhuǎn)移,位移量只能是8位。) (5)中斷指令和中斷返回指令 程序調(diào)試中。每執(zhí)行一條一句就中斷一次IF=0時(shí)執(zhí)行可屏蔽中斷,而非可屏蔽中斷無(wú)條件遇之必中斷用于程序調(diào)試中斷出來(lái)程序的最后一個(gè)指令 6)處理器控制指令 (1)停止指令HLT:匯編格式:HLT 執(zhí)行的操作:使CPU處于"什么也不干"的暫停狀態(tài)。 (2)無(wú)操作指令NOP:匯編格式:NOP 執(zhí)行的操作:不執(zhí)行任何操作。 (3)標(biāo)準(zhǔn)設(shè)置指令: (4)交權(quán)指令ESC:匯編格式:ESC存儲(chǔ)器尋址

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論