微機(jī)原理與接口技術(shù)知識(shí)點(diǎn)總結(jié)_第1頁(yè)
微機(jī)原理與接口技術(shù)知識(shí)點(diǎn)總結(jié)_第2頁(yè)
微機(jī)原理與接口技術(shù)知識(shí)點(diǎn)總結(jié)_第3頁(yè)
微機(jī)原理與接口技術(shù)知識(shí)點(diǎn)總結(jié)_第4頁(yè)
微機(jī)原理與接口技術(shù)知識(shí)點(diǎn)總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(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、微機(jī)原理與接口技術(shù)第一章概述二、計(jì)算機(jī)中的碼制(重點(diǎn) )P51對(duì)于符號(hào)數(shù),機(jī)器數(shù)常用的表示方法有原碼、反碼和補(bǔ)碼三種。注意:對(duì)正數(shù),三種表示法均相同。它們的差別在于對(duì)負(fù)數(shù)的表示。(1) 原碼定義:符號(hào)位:0表示正,1表示負(fù);數(shù)值位:真值的絕對(duì)值。注意:數(shù)0的原碼不唯一(2) 反碼定義:若X<0,則X反=對(duì)應(yīng)原碼的符號(hào)位不變,數(shù)值部分按位求反(3) 補(bǔ)碼定義:若 X<0, 則兇補(bǔ)=兇反+12、8位二進(jìn)制的表示范圍:原碼:-127+127反碼:-127+127補(bǔ)碼:-128+1273、特殊數(shù) 10000000該數(shù)在原碼中定義為:-0在反碼中定義為:-127在補(bǔ)碼中定義為:-128對(duì)無(wú)符

2、號(hào)數(shù):(10000000) 2 = 128三、信息的編碼1、字符的編碼P8計(jì)算機(jī)采用7位二進(jìn)制代碼對(duì)字符進(jìn)行編碼(1) 數(shù)字09的編碼是01100000111001 ,它們的高3位均是011,后4位正好與其對(duì)應(yīng) 的二進(jìn)制代碼(BCD碼)相符。(2) 英文字母 AZ的ASCII碼從1000001 (41H )開始順序遞增,字母 az的ASCII碼 從1100001 (61H )開始順序遞增,這樣的排列對(duì)信息檢索十分有利。第二章微機(jī)組成原理第一節(jié)、微機(jī)的結(jié)構(gòu)1計(jì)算機(jī)的經(jīng)典結(jié)構(gòu)一一馮諾依曼結(jié)構(gòu)P11(1) 微機(jī)由CPU運(yùn)算器和控制器)、存儲(chǔ)器和I/O接口組成2、系統(tǒng)總線的分類(1) 數(shù)據(jù)總線(Dat

3、a Bus),它決定了處理器的字長(zhǎng)。(2) 地址總線(Address Bus),它決定系統(tǒng)所能直接訪問(wèn)的存儲(chǔ)器空間的容量。(3) 控制總線(Control Bus )第二節(jié)、8086微處理器1、 8086,其內(nèi)部數(shù)據(jù)總線的寬度是 16位,16位CPU。外部數(shù)據(jù)總線寬度也是16位8086地址線位20根,有1MB( 220)尋址空間。P272、 8086CPU從功能上分成兩部分:總線接口單元(BIU )、執(zhí)行單元(EU)BIU :負(fù)責(zé)8086CPU與存儲(chǔ)器之間的信息傳送。EU :負(fù)責(zé)指令的執(zhí)行。P284、寄存器結(jié)構(gòu)(重點(diǎn) )1) 數(shù)據(jù)寄存器特有的習(xí)慣用法P30AX : (Accumulator)累

4、加器。多用于存放中間運(yùn)算結(jié)果。所有I/O指令必須都通過(guò) AX與接口傳送信息;BX : (Base)基址寄存器。在間接尋址中用于存放基地址;CX : (Counter)計(jì)數(shù)寄存器。用于在循環(huán)或串操作指令中存放循環(huán)次數(shù)或重復(fù)次數(shù);DX : (Data)數(shù)據(jù)寄存器。在32位乘除法運(yùn)算時(shí),存放高 16位數(shù);在間接尋址的I/O指令 中存放I/O端口地址。2) 、指針和變址寄存器 P31SP : (Stack Pointer)堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂?;BP : (Base Pointer)基址指針寄存器,常用于在訪問(wèn)內(nèi)存時(shí)存放內(nèi)存單元的偏移地址。SI: (Source Index)源變址寄存

5、器Index:指針DI: (Destination Index)目標(biāo)變址寄存器變址寄存器常用于指令的間接尋址或變址尋址。3 )、段寄存器P28CS : (Code Segment)代碼段寄存器,代碼段用于存放指令代碼DS : (Data Segment)數(shù)據(jù)段寄存器ES : (Extra Segment)附加段寄存器,數(shù)據(jù)段和附加段用來(lái)存放操作數(shù)SS : (Stack Segment)堆棧段寄存器,堆棧段用于存放返回地址,保存寄存器內(nèi)容,傳遞參數(shù)4)、指令指針(IP) P2916位指令指針寄存器,其內(nèi)容為下一條要執(zhí)行的指令的偏移地址。5 )、標(biāo)志奇存器(1)狀態(tài)標(biāo)志:P30進(jìn)位標(biāo)志位(CF )

6、: (Carry Flag)運(yùn)算結(jié)果的最高位有進(jìn)位或有借位,則CF=1 。 Carry:進(jìn)位 Auxiliary :輔助輔助進(jìn)位標(biāo)志位(AF ): (Auxiliary Carry Flag)運(yùn)算結(jié)果的低四位有進(jìn)位或借位,則AF=1溢出標(biāo)志位(OF ): (Overflow Flag)運(yùn)算結(jié)果有溢出,則OF=1零標(biāo)志位(ZF) : (Zero Flag)反映指令的執(zhí)行是否產(chǎn)生一個(gè)為零的結(jié)果符號(hào)標(biāo)志位(SF): (Sign Flag)指出該指令的執(zhí)行是否產(chǎn)生一個(gè)負(fù)的結(jié)果奇偶標(biāo)志位(PF): (Parity Flag)表示指令運(yùn)算結(jié)果的低8位“個(gè)數(shù)是否為偶數(shù)(2)控制標(biāo)志位中斷允許標(biāo)志位(IF):

7、(1 nterrupt Flag)表示CPU是否能夠響應(yīng)外部可屏蔽中斷請(qǐng)求跟蹤標(biāo)志(TF): (Trap Flag)CPU 單步執(zhí)行5、8086的引腳及其功能(重點(diǎn)掌握以下引腳)P34AD15AD0 :雙向三態(tài)的地址總線,輸入/輸出信號(hào)INTR : (Interrupt Request)可屏蔽中斷請(qǐng)求輸入信號(hào),高電平有效??赏ㄟ^(guò)設(shè)置IF的值來(lái)控制。NMI : (Non_Maskable Interrupt) 非屏蔽中斷輸入信號(hào)。不能用軟件進(jìn)行屏蔽。RESET : (Reset)復(fù)位輸入信號(hào),高電平有效。復(fù)位的初始狀態(tài)見P21MN/MX : (Minimum/Maximum) 最小最大模式輸入控

8、制信號(hào)。第三章8086指令系統(tǒng)第一節(jié)8086尋址方式一、數(shù)據(jù)尋址方式(重點(diǎn) )1、立即尋址P46操作數(shù)(為一常數(shù))直接由指令給出(此操作數(shù)稱為立即數(shù))立即尋址只能用于源操作數(shù)指令操作例:MOV AX,3102H;執(zhí)行后,(AH) = 31H,(AL) = 02H2、寄存器尋址P47(1)操作數(shù)放在某個(gè)寄存器中(2)源操作數(shù)與目的操作數(shù)字長(zhǎng)要相同(3)寄存器尋址與段地址無(wú)關(guān)3、直接尋址P48(1) 指令中直接給出操作數(shù)的16位偏移地址偏移地址也稱為有效地址 (EA, EffectiveAddress)(2)默認(rèn)的段寄存器為 DS,但也可以顯式地指定其他段寄存器一一稱為段超越前綴(3) 偏移地址也

9、可用符號(hào)地址來(lái)表示,如ADDR VAR例:MOV AX ,2A00H 用表示數(shù)字存放的地址MOV DX ,ES:2A00HMOV SI,TABLE_PTR4、間接尋址 P48操作數(shù)的偏移地址(有效地址EA)放在寄存器中只有SI、DI、BX和BP可作間址寄存器SI、DI、BX默認(rèn)段地址 DSBP默認(rèn)段地址 SS例:MOV AX,BXMOV CL,CS:DI錯(cuò)誤例:X MOV AX, DX5、寄存器相對(duì)尋址P49EA=間址寄存器的內(nèi)容加上一個(gè)8/16位的位移量例:MOVAX,BX+8MOVCX,TABLESIMOVAX,BP;BX.SI.DI默認(rèn)段寄存器 DS, BP默認(rèn)段寄存器為 SS指令操作例

10、:MOVAX , DATABX若(DS)=6000H, (BX)=1000H, DA TA=2A00H,(63A00H)=66H,(63A01H)=55H則物理地址 =60000H + 1000H + 2A00H = 63A00H 指令執(zhí)行后:(AX)=5566H6、基址變址尋址 P51若操作數(shù)的偏移地址:EA=基址寄存器(BX或BP)+變址寄存器(SI或DI)同一組內(nèi)的寄存器不能同時(shí)出現(xiàn)。錯(cuò)誤例:X MOV AX, BX BP7、相對(duì)基址變址尋址 P51EA=基址寄存器(BX或BP)+變址寄存器(SI或DI)+8位或16位位移量;指令操作例:MOV AX , DATADIBX若(DS)=80

11、00H, (BX)=2000H, (DI)=1000H, DATA=200H則指令執(zhí)行后(AH)=83021H,(AL)=83020H寄存器間接、寄存器相對(duì)、基址變址、相對(duì)基址變址四種尋址方式的比較:尋址方式寄存器間接寄存器相對(duì)基址一變址 相對(duì)基址-變址指令操作數(shù)形式只有一個(gè)寄存器(BX/BP/SI/DI之一)一個(gè)寄存器加上位移量?jī)蓚€(gè)不同類別的寄存器兩個(gè)不同類別的寄存器加上位移量第二節(jié) 8086指令系統(tǒng)、數(shù)據(jù)傳送指令(重點(diǎn) )1、數(shù)據(jù)傳送類指令 (特點(diǎn):除SAHF POPF外均不影響FR) P541. 通用MOV dst, src堆棧:PUSH POP交換:XCHG查表:XLAT2. 標(biāo)志LA

12、HF SAHF PUSHF POPF3. 地址: LEA LDS LES4輸入輸出:IN OUT(1) MOV dest , src; dest src8位還是16位。傳送的是字節(jié)還是字取決于指令中涉及的寄存器是 具體來(lái)說(shuō)可實(shí)現(xiàn): MOV mem/reg1, mem/reg2指令中兩操作數(shù)中至少有一個(gè)為寄存器.-:-:作皐立即數(shù) 2 汀蕓不能直抿送哥寄存無(wú)MOV指令的使用規(guī)則 IP不能作目的寄存器 不允許 mem mem 不允許 segreg segreg 立即數(shù)不允許作為目的操作數(shù) 不允許segreg立即數(shù) 源操作數(shù)與目的操作數(shù)類型要一致 當(dāng)源操作數(shù)為單字節(jié)的立即數(shù),而目的操作數(shù)為間址、變址

13、、基址須用PTR說(shuō)明數(shù)據(jù)類型。如:MOV BX , 12H是錯(cuò)誤的。+變址的內(nèi)存數(shù)時(shí),必(2 )、堆棧指令P54堆棧以字為單位進(jìn)行壓入彈出操作。規(guī)定由SS指示堆棧段的段基址,堆棧指針SP始終指向堆棧的頂部,用堆棧區(qū)的大小。堆棧的最高地址叫棧底。SP的初值規(guī)定了所壓棧指令PUSHPUSH src;src為16位操作數(shù)例:PUSH AX ;將AX內(nèi)容壓棧 執(zhí)行操作:(SP) -1 -高字節(jié) AH(SP) -2-低字節(jié)AL(SP)-( SP) - 2注意進(jìn)棧方向是高地址向低地址發(fā)展 彈出指令POPPOP dest例:POP BX ;將棧頂內(nèi)容彈至 BX 執(zhí)行操作:(BL )-( SP)(BH )-(

14、 SP) +1(SP)-( SP) +2堆棧指令在使用時(shí)需注意的幾點(diǎn): 堆棧操作總是按字進(jìn)行 不能從棧頂彈出一個(gè)字給 CS 堆棧指針為SS:SP, SP永遠(yuǎn)指向棧頂 SP自動(dòng)進(jìn)行增減量(-2, +2)(3 )、交換指令XCHG P54格式:XCHG reg, mem/reg功能:交換兩操作數(shù)的內(nèi)容。要求:兩操作數(shù)中必須有一個(gè)在寄存器中;操作數(shù)不能為段寄存器和立即數(shù); 源和目地操作數(shù)類型要一致。(4 )查表指令XLAT P57執(zhí)行的操作:AL - (BX)+(AL)執(zhí)行時(shí)先將表的首地址又叫查表轉(zhuǎn)換指令, 它可根據(jù)表項(xiàng)序號(hào)查出表中對(duì)應(yīng)代碼的內(nèi)容。 (偏移地址)送到 BX中,表項(xiàng)序號(hào)存于 AL中。2

15、、輸入輸出指令P57只限于用累加器 AL或AX來(lái)傳送信息。 功能:(累加器)I/O端口(1) 輸入指令I(lǐng)N格式:IN acc,PORT ;PORT 端口號(hào) 0255HIN acc,DX ;DX表示的端口范圍達(dá) 64K例:IN AL , 80H;(AL) (80H 端口 )IN AL , DX ;(AL) (DX)(2) 輸出指令OUT 格式:OUT port,accOUT DX,acc例:OUT 68H , AX ;(69H , 68H) ( AX )OUT DX , AL ;(DX) (AL)在使用間接尋址的IN/OUT指令時(shí),要事先用傳送指令把I/O端口號(hào)設(shè)置到 DX寄存器如:MOV DX

16、,220HIN AL, DX;將220H端口內(nèi)容讀入 AL3、目標(biāo)地址傳送指令P58(1) LEA傳送偏移地址格式:LEA reg,mem ;將指定內(nèi)存單元的偏移地址送到指定寄存器要求:1)源操作數(shù) 必須是一個(gè) 存儲(chǔ)器操作數(shù);2)目的操作數(shù)必須是一個(gè)16位的通用寄存器。例:LEA BX,SI+10H 設(shè):(SI)=1000H則執(zhí)行該指令后,(BX)=1010H注意以下二條指令差別:LEA BX,BUFFERMOV BX,BUFFER前者表示將符號(hào)地址為 BUFFER的存儲(chǔ)單元的偏移地址取到BX中;后者表示將BUFFER存儲(chǔ)單元中的內(nèi)容取到BX中。下面兩條指令等效:LEA BX,BUFFERMO

17、V BX, OFFSET BUFFER 其中OFFSET BUFFER 表示存儲(chǔ)器單元 BUFFER的偏移地址。二者都可用于取存儲(chǔ)器單元的偏移地址,但LEA指令可以取動(dòng)態(tài)的地址,OFFSET只能取靜態(tài)的地址。算術(shù)運(yùn)算類指令(特點(diǎn):除CBW CWD外均影響FR) P601. 力卩法:ADD ADC2.減法:SUBSBB CMP3.加1減 1: INCDEC4.求補(bǔ):NEC5.乘法:MUL(無(wú)符號(hào)數(shù))IMUL6.除法:DIV(無(wú)符號(hào)數(shù))IDIV7.擴(kuò)展:CBW(BW)CWD8.十進(jìn)制調(diào)整:1)加法:DAA(組合)(帶符號(hào)數(shù))(帶符號(hào)數(shù))WDW)AAA (未組合)2)減法:DAS (組合)AAS (

18、未組合)3)乘法:AAM (未組合)4)除法:AAD乘、除法指令注意事項(xiàng):1. 無(wú)符號(hào)與帶符號(hào)數(shù)所用指令不同;2. 八位乘法時(shí),必有一個(gè)乘數(shù)在 AL中,積在AX中;十六位乘法時(shí),必有一個(gè)乘數(shù)在AX中,積在DX(高16位)與AX(低 16 位)中;3. 八位除法時(shí),被除數(shù)在 AX中(16位),商在AL ,余數(shù)在AH ;十六位除法時(shí),被除數(shù)在DX(高16位)與AX(低16位)中,商在AX, 余數(shù)在DX ;4. 十進(jìn)制調(diào)整時(shí),乘、除法均只能使用未組合BCD碼,并且除法是先 調(diào)整后運(yùn)算。1、加法指令P61(1)不帶進(jìn)位的加法指令 ADD 格式: ADDacc,dataADDmem/reg,dataAD

19、D mem/reg1,mem/reg2?ADD指令對(duì)6個(gè)狀態(tài)標(biāo)志均產(chǎn)生影響。判斷溢出與進(jìn)位(重點(diǎn) )從硬件的角度:默認(rèn)參與運(yùn)算的操作數(shù)都是有符號(hào)數(shù),當(dāng)兩數(shù)的符號(hào)位相同, 而和的結(jié)果相異時(shí)有溢出,則 OF=1,否則OF=0(2) 帶進(jìn)位的加法 ADC (Add with Carry) P62ADC指令在形式上和功能上與 ADD類似,只是相加時(shí)還要包括進(jìn)位標(biāo)志CF的內(nèi)容,例如:ADC AL,68H ; AL (AL)+68H+(CF)ADC AX,CX ;AX (AX)+(CX)+(CF)ADC BX,DI ;BX (BX)+DI+1DI+(CF)(3)加 1 指令 INC (In creme n

20、t)格式:INC reg/mem功能:類似于C語(yǔ)言中的+操作:對(duì)指定的操作數(shù)加1注:本指令不影響CF標(biāo)志。2、減法指令P63(1 )不考慮借位的減法指令SUB (Subtractio n)格式:SUB dest, src注:1源和目的操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù)2. 立即數(shù)不能作為目的操作數(shù)(2)考慮借位的減法指令 SBB (Subtraction with Carry)SBB指令主要用于多字節(jié)的減法。格式:SBB dest, src操作:dest J (dest)-(src)-(CF)(3 )減 1 指令 DEC(Decrement)格式:DEC opr操作:opr j (opr)-1(4

21、)求補(bǔ)指令 NEG (Negate)格式:NEG opr操作:oprj 0-(opr)對(duì)一個(gè)操作數(shù)取補(bǔ)碼相當(dāng)于用0減去此操作數(shù),故利用 NEG指令可得到負(fù)數(shù)的絕對(duì)值。例:若(AL)=0FCH,則執(zhí)行 NEG AL后,(AL)=04H , CF=1(5 )比較指令CMP格式:CMP dest, src操作:(dest)-(src)CMP也是執(zhí)行兩個(gè)操作數(shù)相減,但結(jié)果不送目標(biāo)操作數(shù),其結(jié)果只反映在標(biāo)志位上。(4) 非壓縮BCD碼加法調(diào)整指令 AAA P68AAA指令的操作:如果AL的低4位9或AF=1,則: AL J (AL)+6,(AH) J (AH)+1,AF J1 AL高4位清零 CF J

22、AF否則AL高4位清零(5) 壓縮BCD碼加法調(diào)整指令 DAA P68兩個(gè)壓縮BCD碼相加結(jié)果在 AL中,通過(guò)DAA調(diào)整得到一個(gè)正確的壓縮BCD碼.指令操作(調(diào)整方法):若AL的低4位9或AF=1則(AL) J (AL)+6 , AF J 1若AL的高4位9或CF=1則(AL) J (AL)+60H , CF J1除OF外,DAA指令影響所有其它標(biāo)志。DAA指令應(yīng)緊跟在ADD或ADC指令之后。(6) 非壓縮BCD碼減法調(diào)整指令A(yù)AS對(duì)AL中由兩個(gè)非壓縮的 BCD碼相減的結(jié)果進(jìn)行調(diào)整。調(diào)整操作為:若AL的低4位9或AF=1,則: AL J (AL)-6,AH J (AH)-1,AF J1 AL的

23、高4位清零 CF AF否則:AL的高4位清零(7) 壓縮BCD碼減法調(diào)整指令DAS 對(duì)AL中由兩個(gè)壓縮BCD碼相減的結(jié)果進(jìn)行調(diào)整。若AL的低4位9或AF=1,則:AL (AL)-6, 且 AF 1若AL的高4位9或CF=1,則:AL (AL)-60H,且 CF 1DAS對(duì)OF無(wú)定義,但影響其余標(biāo)志位。DAS指令要求跟在減法指令之后。3、乘法指令 P65進(jìn)行乘法時(shí):8位*8位t 16位乘積16位*16位t 32位乘積(1)無(wú)符號(hào)數(shù)的乘法指令 MUL(MEM/REG) 格式:MUL src操作:字節(jié)操作數(shù)(AX)(AL) x (src)字操作數(shù)(DX, AX) (AX) x (src)指令例子:M

24、UL BL; (AL) X ( BL),乘積在 AX中MUL CX ; (AX) X (CX),乘積在 DX,AX中(2)有符號(hào)數(shù)乘法指令I(lǐng)MUL格式與MUL指令類似,只是要求兩操作數(shù)均為 指令例子:調(diào)整操作為:有符號(hào)數(shù)。IMUL BL ; (AX) (AL) XBL)IMUL WORD PTRSI;(DX,AX) (AX) XSI+1SI)注意:MUL/IMUL指令中 AL(AX)為隱含的乘數(shù)寄存器; AX(DX,AX)為隱含的乘積寄存器; SRC不能為立即數(shù);除CF和OF外,對(duì)其它標(biāo)志位無(wú)定義。4、除法指令P66進(jìn)行除法時(shí):16位/8位t 8位商32位/16位t 16位商對(duì)被除數(shù)、商及余數(shù)

25、存放有如下規(guī)定:被除數(shù)商余數(shù)字節(jié)除法AXALAH字除法 DX:AXAXDX(1)無(wú)符號(hào)數(shù)除法指令DIV(Divisio n)格式:DIV src操作:字節(jié)操作(AL) - (AX)/(SRC) 的商(AH) - (AX) / (SRC) 的余數(shù) 字操作 (AX) - (DX, AX) / (SRC) 的商(DX) - (DX, AX) / (SRC) 的余數(shù)(2)有符號(hào)數(shù)除法指令I(lǐng)DIV(In teger divisio n)格式:IDIV src操作與DIV類似。商及余數(shù)均為有符號(hào)數(shù),且余數(shù)符號(hào)總是與被除數(shù)符號(hào)相同。注意:對(duì)于DIV/IDIV 指令A(yù)X(DX,AX)為隱含的被除數(shù)寄存器。AL

26、(AX)為隱含的商寄存器。AH(DX)為隱含的余數(shù)寄存器。src不能為立即數(shù)。對(duì)所有條件標(biāo)志位均無(wú)定 關(guān)于除法操作中的字長(zhǎng)擴(kuò)展問(wèn)題?除法運(yùn)算要求被除數(shù)字長(zhǎng)是除數(shù)字長(zhǎng)的兩倍,若不滿足則需對(duì)被除數(shù)進(jìn)行擴(kuò)展,否則產(chǎn)生錯(cuò)誤。?對(duì)于無(wú)符號(hào)數(shù)除法擴(kuò)展,只需將 AH或DX清零即可。?對(duì)有符號(hào)數(shù)而言,則是符號(hào)位的擴(kuò)展??墒褂们懊娼榻B過(guò)的符號(hào)擴(kuò)展指令CBW和CWD三、邏輯運(yùn)算類指令1. 與: AND 2. 或:5.測(cè)試:TEST(特點(diǎn):均影響FR) P70OR 3.異或: XOR 4. 非: NOT移位指令1.邏輯移位:左移SHL右移SHR2.算術(shù)移位:左移SAL右移SAR3.循環(huán)移位:1).不帶CF:左移RO

27、L右移ROR2).帶 CF:左移RCL右移RCR1、邏輯運(yùn)算指令(1)邏輯與AND對(duì)兩個(gè)操作數(shù)進(jìn)行按位邏輯“與”操作。 格式:AND dest, src用途:保留操作數(shù)的某幾位,清零其他位。(2)邏輯或OR對(duì)兩個(gè)操作數(shù)進(jìn)行按位邏輯 ”或”操作。格式:OR dest, src用途:對(duì)操作數(shù)的某幾位置1 ;對(duì)兩操作數(shù)進(jìn)行組合。例1:把AL中的非壓縮BCD碼變成相應(yīng)十進(jìn)制數(shù)的 ASCII碼。OR AL, 30H(3) 邏輯非NOT對(duì)操作數(shù)進(jìn)行按位邏輯 "非"操作。格式:NOT mem/reg(4 )邏輯異或XOR 對(duì)兩個(gè)操作數(shù)按位進(jìn)行”異或”操作。格式:XOR dest, src

28、用途:對(duì)reg清零(自身異或)把reg/mem的某幾位變反(與1'異或)例1:把AX寄存器清零。 MOV AX,0 XOR AX,AX AND AX,0 SUB AX,AX(5 )測(cè)試指令TEST操作與AND指令類似,但不將”與”的結(jié)果送回,只影響標(biāo)志位。TEST指令常用于位測(cè)試,與條件轉(zhuǎn)移指令一起用。 例:測(cè)試AL的內(nèi)容是否為負(fù)數(shù)。TEST AL,80H ;檢查 AL 中 D7=1 ?JNZ MINUS ;是 1(負(fù)數(shù)),轉(zhuǎn) MINUS;否則為正數(shù)2、移位指令(1)非循環(huán)移位指令(重點(diǎn) )P72算術(shù)左移指令 SAL(Shift Arithmetic Left) 算術(shù)右移指令 SAR(

29、Shift Arithmetic Right) 邏輯左移指令 SHL(Shift Left) 邏輯右移指令 SHR(Shift Right)這4條指令的格式相同,以SAL為例:CL ;移位位數(shù)大于1時(shí)SAL mem/reg1;移位位數(shù)等于1時(shí)?算術(shù)移位一一把操作數(shù)看做有符號(hào)數(shù);邏輯移位一一把操作數(shù)看做無(wú)符號(hào)數(shù)。?移位位數(shù)放在 CL寄存器中,如果只移 1位,也 可以直接寫在指令中。例如:MOV CL,4SHR AL,CL ; AL中的內(nèi)容右移 4位?影響C,P,S,Z,O標(biāo)志。?結(jié)果未溢出時(shí):左移1位三操作數(shù)*2右移1位三操作數(shù)/2例:把AL中的數(shù)x乘10因?yàn)?0=8+2=2 3+21,所以可用

30、移位實(shí)現(xiàn)乘 10操作。程序如下:MOV CL,3SALAL,1;2xMOVAH,ALSALAL,1;4xSALAL,1;8xADDAL,AH;8x+2x = 10x四、 控制轉(zhuǎn)移類指令:P80J、無(wú)條件轉(zhuǎn)移JMP1. 近轉(zhuǎn)移(段內(nèi))(NEAR PTR)1).直接(相對(duì)尋址):IP J IP + disp (8短轉(zhuǎn)移(SHORT)如:JMP n長(zhǎng)轉(zhuǎn)移IP J IP + disp (16位)女口: JMP nn2).間接:IP J reg (16 位)IP J mem (16 位)女口: JMP BX2.遠(yuǎn)轉(zhuǎn)移(段間)(FAR PTR)1).直接:CS =指令中給出的段地址IP =指令中給出的EA

31、女口: JMP段:偏2).間接:CS :=mem+2 (16 位)IP =mem(16 位) 女口: JMP DWORD PTR BX)、條件轉(zhuǎn)移 Jcc1.單測(cè)試條件指令10CJC/JNAE / JBJNC / JAE/JNBZJZ / JEJNZ/JNESJSJNSPJP/JPEJNP / JPOOJOJNO2.復(fù)合測(cè)試條件指令即A - B無(wú)符號(hào)數(shù)帶符號(hào)數(shù)=JZJZJNZJNZVJC / JB/JNAEJL/JNGE>JA/JNBEJG /JNLEJBE / JNAJLE / JNG>JNC / JAE/JNBJGE/JNL三).循環(huán)控制指令1.循環(huán)轉(zhuǎn)移指令 LOOP(相當(dāng)于:

32、DEC CX JNZn )2.相等(為零)循環(huán)轉(zhuǎn)移指令LOOPE/LOOPZ3.不相等(不為零)循環(huán)轉(zhuǎn)移指令LOOPNE/LOOPNZ四).過(guò)程調(diào)用與返回指令1. 調(diào)用指令 CALL(與JMP 樣分:段內(nèi)直接、段內(nèi)間接、段間直接、段間間接調(diào)用四種,但需保護(hù)斷 點(diǎn))2. 返回指令 1). RET(依段內(nèi)、段間不同分別恢復(fù)相應(yīng)斷點(diǎn))2). RET n (除象RET恢復(fù)斷點(diǎn)外還應(yīng)根據(jù)n值修設(shè)SP)五).中斷指令1. INT n(響應(yīng)中斷時(shí),除象CALL保護(hù)斷點(diǎn)外,還應(yīng)保護(hù)FR)2. INTOIRET(返回時(shí),除象RET恢復(fù)斷點(diǎn)外,還應(yīng)恢復(fù)F(1)LOOP格式:LOOP label操作:(CX)-1

33、T ex ;若(CX)豐0,則轉(zhuǎn)至label處執(zhí)行;否則退出循環(huán),執(zhí)行LOOP后面的指令。LOOP指令與下面的指令段等價(jià):DEC CXJNZ label3、過(guò)程調(diào)用指令(1 )調(diào)用指令CALL一般格式:CALL sub ;sub為子程序的入口4、中斷指令 P85(1)INT n 執(zhí)行類型n的中斷服務(wù)程序,N=0255五、串操作指令一).串操作指令1.串傳送MOVS(字節(jié)串MOVSB字串MOVSW)2.串比較CMPS(字節(jié)串CMPSB字串CMPSW)3.串搜索SCAS(字節(jié)串SCASB字串SCASW)4.取串LODS(字節(jié)串LODSB字串LODSW)5.存串STOS(字節(jié)串STOSB字串STOS

34、W)二).重復(fù)前綴指令1. 無(wú)條件重復(fù)REP2. 相等/為零重復(fù)REPE / REPZ3. 不相等/不為零重復(fù)REPNE / REPNZ串操作指令特點(diǎn):1. 可用前綴使其重復(fù)操作;2. 每操作一次自動(dòng)修改SI和DI內(nèi)容,當(dāng)DF=O時(shí)為增量,DF=1為 減量;3. 所有源操作數(shù)地址放在SI中,在DS段,串長(zhǎng) 64K; 所有目標(biāo)操作數(shù)地址放在 DI中,在ES段,串長(zhǎng) 64K ;4. 用重復(fù)前綴時(shí),如果條件滿足且 CX工0時(shí)重復(fù),每重復(fù)一次 CXCX- 1,否則結(jié)束重復(fù);5. 重復(fù)操作時(shí)IP不變,中斷返回后繼續(xù)操作。重復(fù)前綴重復(fù)與結(jié)束重復(fù)的條件:重復(fù)前綴重復(fù)條件結(jié)束條件REP(無(wú)條件重復(fù))CX工0C

35、X = 0REPE / REPZ(相等/為零重復(fù))CX 工 0 且 ZF=1CX = 0 或 ZF=0REPNE/REPNZ(不相等/不為零重復(fù))CX 工 0 且 ZF=0CX = 0 或 ZF=1使用串操作指令時(shí)注意:1. SI J源串首(末)址DI -目標(biāo)串首(末)址;2. CX -串長(zhǎng)度;3. 設(shè)DF值;4. 選重復(fù)前綴;5. 使用條件重復(fù)前綴時(shí),判斷結(jié)束條件(即 是CX=O還是ZF=0/1結(jié)束)六、處理器控制指令P881.標(biāo)志位操作1).清 CFCLC(CF=0)2).置 CFSTC(CF=1)3). CF 取反 CMC4).清DFCLD(DF=0)5).置DFSTD(DF=1)6).

36、清IFCLI(CF=0關(guān)中斷)7).置IFSTI(CF=1開中斷)2.同步控制指令1). ESC2). WAIT3). LOCK3.空操作指令NOP4.暫停指令HLT1標(biāo)志位操作(1) CF設(shè)置指令CF變反CLCCFSTC 1 t CFCMC(2) DF設(shè)置指令CLD0t DF伸操作的指針移動(dòng)方向從低到高)STD1 t DF伸操作的指針移動(dòng)方向從高到低)(3) IF設(shè)置指令CLI 0t IF (禁止 INTR 中斷) STI 1t IF (開放 INTR 中斷)1、HLT (halt)執(zhí)行HLT指令后,CPU進(jìn)入暫停狀態(tài)。第四章8086匯編語(yǔ)言程序設(shè)計(jì)第一節(jié)偽指令(重點(diǎn))分析運(yùn)算符:SEG、O

37、FFSET、TYPE、LENGTH、SIZE P97CPU指令與偽指令之間的區(qū)別:P98(1) CPU指令是給CPU的命令,在運(yùn)行時(shí)由 CPU執(zhí)行,每條指令對(duì)應(yīng) CPU的一種特定的 操作。而偽指令是給匯編程序的命令,在匯編過(guò)程中由匯編程序進(jìn)行處理。(2) 匯編以后,每條CPU指令產(chǎn)生一一對(duì)應(yīng)的目標(biāo)代碼;而偽指令則不產(chǎn)生與之相應(yīng)的目標(biāo) 代碼。1、數(shù)據(jù)定義偽指令(1)數(shù)據(jù)定義偽指令的一般格式為:變量名偽指令 操作數(shù),操作數(shù)P99DB 用來(lái)定義字節(jié)(BYTE )DW用來(lái)定義字(WORD )DD 用來(lái)定義雙字(DWORD )例:下面的數(shù)據(jù)項(xiàng)設(shè)置了多少個(gè)字節(jié)?(1) ASC_DATA DB 1234'(2) HEX_DATA DB 1234H答案:(1)設(shè)置了 4個(gè)字節(jié) (2)設(shè)置了 2個(gè)字節(jié)(2 )操作數(shù)的類型可以是:常數(shù)或常數(shù)表達(dá)式例如: DATA_BYTE DB 10,5,10HDATA_WORD DW 100H,100,-4DATA_DW DD 2*30,0FFFBH可以為字符串(定義字符串最好使用DB )例如:charl DB' AB'可以為變量可以為?號(hào)操作符例如:X DB 5,?,6?號(hào)只

溫馨提示

  • 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)論