微機(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è),還剩30頁(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)介

微機(jī)原理與接口技術(shù)知識(shí)點(diǎn)總結(jié)

(總18頁(yè))-本頁(yè)僅作為文檔封面,使用時(shí)請(qǐng)直接刪除即可--內(nèi)頁(yè)可以根據(jù)需求調(diào)整合適字體及大小-#微機(jī)原理與接口技術(shù)第一章概述二、計(jì)算機(jī)中的碼制(重點(diǎn))P51s對(duì)于符號(hào)數(shù),機(jī)器數(shù)常用的表示方法有原碼、反碼和補(bǔ)碼三種。注意:對(duì)正數(shù),三種表示法均相同。它們的差別在于對(duì)負(fù)數(shù)的表示。(1)原碼定義:符號(hào)位:。表示正,1表示負(fù);數(shù)值位:真值的絕對(duì)值。注意:數(shù)。的原碼不唯一(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ù)該數(shù)在原碼中定義為:-0在反碼中定義為:-127在補(bǔ)碼中定義為:-128對(duì)無(wú)符號(hào)數(shù):()2二128三、信息的編碼字符的編碼P8計(jì)算機(jī)采用7位二進(jìn)制代碼對(duì)字符進(jìn)行編碼⑴數(shù)字0?9的編碼是0110000?0111001,它們的高3位均是011,后4位正好與其對(duì)應(yīng)的二進(jìn)制代碼(BCD碼)相符。⑵英文字母A~Z的ASCII碼從1000001(41H)開始順序遞增,字母a~z的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接口組成系統(tǒng)總線的分類(1)數(shù)據(jù)總線(DataBus),它決定了處理器的字長(zhǎng)。(2)地址總線(AddressBus),它決定系統(tǒng)所能直接訪問(wèn)的存儲(chǔ)器空間的容量。⑶控制總線(ControlBus)第二節(jié)、8086微處理器Is8086,其內(nèi)部數(shù)據(jù)總線的寬度是16位,16位CPU。外部數(shù)據(jù)總線寬度也是16位8086地址線位20根,有1MB吃2。)尋址空間。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)累加器。多用于存放中間運(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:(StackPointer)堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂?;BP:(BasePointer)基址指針寄存器,常用于在訪問(wèn)內(nèi)存時(shí)存放內(nèi)存單元的偏移地址。SI:(SourceIndex)源變址寄存器 Index:指針DI[(DestinationIndex用標(biāo)變址寄存器變址寄存器常用于指令的間接尋址或變址尋址。3)、段寄存器P28CS:(CodeSegment)代碼段寄存器,代碼段用于存放指令代碼DS:(DataSegment)數(shù)據(jù)段寄存器ES:(ExtraSegment)附加段寄存器,數(shù)據(jù)段和附加段用來(lái)存放操作數(shù)SS:(StackSegment)堆棧段寄存器,堆棧段用于存放返回地址保存寄存器內(nèi)容,傳遞參數(shù)4)、指令指針(IP)P2916位指令指針寄存器,其內(nèi)容為下一條要執(zhí)行的指令的偏移地址。5)、標(biāo)志寄存器⑴狀態(tài)標(biāo)志:P30進(jìn)位標(biāo)志位(CF):(CarryFlag)運(yùn)算結(jié)果的最高位有進(jìn)位或有借位,則CF=1oCarry:進(jìn)位Auxiliary:輔助輔助進(jìn)位標(biāo)志位(AF):(AuxiliaryCarryFlag)運(yùn)算結(jié)果的低四位有進(jìn)位或借位,則AF=1溢出標(biāo)志位(OF):(OverflowFlag)運(yùn)算結(jié)果有溢出,則OF=1零標(biāo)志位(ZF):(ZeroFlag)反映指令的執(zhí)行是否產(chǎn)生一個(gè)為零的結(jié)果符號(hào)標(biāo)志位(SF):(SignFlag)指出該指令的執(zhí)行是否產(chǎn)生一個(gè)負(fù)的結(jié)果奇偶標(biāo)志位(PF):(ParityFlag)表示指令運(yùn)算結(jié)果的低8位T個(gè)數(shù)是否為偶數(shù)(2)控制標(biāo)志位中斷允許標(biāo)志位(IF):(InterruptFlag)表示CPU是否能夠響應(yīng)外部可屏蔽中斷請(qǐng)求跟蹤標(biāo)志(TF):(TrapFlag)CPU單步執(zhí)行5、8086的引腳及其功能(重點(diǎn)掌握以下引腳)P34AD15-AD0:雙向三態(tài)的地址總線,輸入/輸出信號(hào)INTR:(InterruptRequest)可屏蔽中斷請(qǐng)求輸入信號(hào),高電平有效??赏ㄟ^(guò)設(shè)置IF的值來(lái)控制。NMI:(Non_MaskableInterrupt)非屏蔽中斷輸入信號(hào)。不能用軟件進(jìn)行屏蔽。RESET:(Reset)復(fù)位輸入信號(hào),高電平有效。復(fù)位的初始狀態(tài)見P21MN/MX:(Minimum/Maximum)最小最大模式輸入控制信號(hào)。第三章8086指令系統(tǒng)第一節(jié)8086尋址方式一、數(shù)據(jù)尋址方式(重點(diǎn))1、立即尋址P46操作數(shù)(為一常數(shù))直接由指令給出(此操作數(shù)稱為立即數(shù))立即尋址只能用于源操作數(shù)指令操作例:MOVAX,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)偏移地址也可用符號(hào)地址來(lái)表示,如ADDR、VAR例:MOVAX,[2A00H]用口表示數(shù)字存放的地址MOVDX,ES:[2A00H]MOVSI,TABLE_PTR4、間接尋址P48操作數(shù)的偏移地址(有效地址EA)放在寄存器中只有SI、DkBX和BP可作間址寄存器SI、DkBX默認(rèn)段地址DSBP默認(rèn)段地址SS例:MOVAX,[BX]MOVCL,CS:[DI]錯(cuò)誤例:*MOVAX,[DX]5、寄存器相對(duì)尋址P49EA二間址寄存器的內(nèi)容加上一個(gè)8/16位的位移量例:MOVAX,[BX+8]MOVCX,TABLE[SI]MOVAX,[BP];默認(rèn)段寄存器DS,BP默認(rèn)段寄存器為SS指令操作例:MOVAX,DATA[BX]若(DS)二6000H,(BX)=1000H,DATA=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ò)誤例:xMOVAX,[BX][BP]7、相對(duì)基址變址尋址P51EA二基址寄存器(BX或BP)+變址寄存器(SI或DI)+8位或16位位移且.里/指令操作例:MOVAX,DATA[DI][BX]若(DS)二8000H,(BX)=2000H,(DI)=1000H,DATA=200H則指令執(zhí)行后(AH)=[83021H],(AL)=[83020H]寄存器間接、寄存器相對(duì)、基址變址、相對(duì)基址變址四種尋址方式的比較:尋址方式 指令操作數(shù)形式寄存器間接 只有一個(gè)寄存器(BX/BP/SI/DI之一)寄存器相對(duì) 一個(gè)寄存器加上位移量基址一變址 兩個(gè)不同類別的寄存器相對(duì)基址-變址兩個(gè)不同類別的寄存器加上位移量第二節(jié)8086指令系統(tǒng)一、數(shù)據(jù)傳送指令(重點(diǎn))1、數(shù)據(jù)傳送類指令(特點(diǎn):除SAHFPOPF外均不影響FR)P54.通用MOVdst,src堆棧:PUSHPOP交換:XCHG查表:XLAT.標(biāo)志LAHFSAHFPUSHFPOPF.地址:LEALDSLES.輸入輸出:INOUTMOVdest,src;dest—src傳送的是字節(jié)還是字取決于指令中涉及的寄存器是8位還是16位。具體來(lái)說(shuō)可實(shí)現(xiàn):①M(fèi)OVmem/reg1,mem/reg2指令中兩操作數(shù)中至少有一個(gè)為寄存器通用寄存器AXBXCXDXBPSPSIDIL.通用寄存器AXBXCXDXBPSPSIDIL.立即既不能作目標(biāo)操作粢字佬器不能思送后存儲(chǔ)方2.二即貪不能直接送段衡手后段三喜"匚■建蕾佶當(dāng)苛斗作立即數(shù)MOV指令的使用規(guī)則①IP不能作目的寄存器②不允許mem—mem③不允許segreg—segreg④立即數(shù)不允許作為目的操作數(shù)⑤不允許segreg-立即數(shù)⑥源操作數(shù)與目的操作數(shù)類型要一致⑦當(dāng)源操作數(shù)為單字節(jié)的立即數(shù),而目的操作數(shù)為間址、變址、基址+變址的內(nèi)存數(shù)時(shí),必須用PTR說(shuō)明數(shù)據(jù)類型。如:MOV[BX],12H是錯(cuò)誤的。(2)、堆棧指令P54堆棧以字為單位進(jìn)行壓入彈出操作。規(guī)定由SS指示堆棧段的段基址,堆棧指針SP始終指向堆棧的頂部,SP的初值規(guī)定了所用堆棧區(qū)的大小。堆棧的最高地址叫棧底。①壓棧指令PUSHPUSHsrc;src為16位操作數(shù)

例:PUSHAX例:PUSHAX;將AX內(nèi)容壓棧執(zhí)行操作:(SP)-1—高字節(jié)AH(SP)-2一低字節(jié)AL(SP)—(SP)-2注意進(jìn)棧方向是高地址向低地址發(fā)展。②彈出指令POPPOPdest例:POPBX;將棧頂內(nèi)容彈至BX執(zhí)行操作:(BL)—(SP)(BH)—(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)、交換指令XCHGP54格式:XCHGreg,mem/reg功能:交換兩操作數(shù)的內(nèi)容。要求:兩操作數(shù)中必須有一個(gè)在寄存器中;操作數(shù)不能為段寄存器和立即數(shù);源和目地操作數(shù)類型要一致。⑷查表指令XLATP57執(zhí)行的操作:AL-[(BX)+(AL)]又叫查表轉(zhuǎn)換指令,它可根據(jù)表項(xiàng)序號(hào)查出表中對(duì)應(yīng)代碼的內(nèi)容。執(zhí)行時(shí)先將表的首地址(偏移地址)送到BX中,表項(xiàng)序號(hào)存于AL中。2、輸入輸出指令P57只限于用累加器AL或AX來(lái)傳送信息。功能:(累加器)^~N/O端口(1)輸入指令I(lǐng)N格式:INacc,PORT;PORT端口號(hào)0~255HINacc,DX;DX表示的端口范圍達(dá)64K例:山AL,80H;(AL)一(80H端口)INAL,DX;(AL)—((DX))⑵輸出指令OUT格式:OUTport,accOUTDX,acc例:OUT68H,AX;(69H,68H)—(AX)OUTDX,AL;((DX))—(AL)在使用間接尋址的IN/OUT指令時(shí),要事先用傳送指令把I/O端口號(hào)設(shè)置到DX寄存器如:MOVDX,220HINAL,DX;將220H端口內(nèi)容讀入AL3、目標(biāo)地址傳送指令P58(1)LEA傳送偏移地址格式:LEAreg,mem;將指定內(nèi)存單元的偏移地址送到指定寄存器要求:1)源操作數(shù)必須是一個(gè)存儲(chǔ)器操作數(shù);2)目的操作數(shù)必須是一個(gè)16位的通用寄存器。例:LEABX,[SI+10H]設(shè):(SI)=1000H則執(zhí)行該指令后,(BX)=1010H注意以下二條指令差別:LEABX,BUFFERMOVBX,BUFFER前者表示將符號(hào)地址為BUFFER的存儲(chǔ)單元的偏移地址取到BX中;后者表示將BUFFER存儲(chǔ)單元中的內(nèi)容取到BX中。下面兩條指令等效:LEABX,BUFFERMOVBX,OFFSETBUFFER其中OFFSETBUFFER表示存儲(chǔ)器單元BUFFER的偏移地址。二者都可用于取存儲(chǔ)器單元的偏移地址,但LEA指令可以取動(dòng)態(tài)的地址,OFFSET只能取靜態(tài)的地址。二、 算術(shù)運(yùn)算類指令 (特點(diǎn):除CBWCWD外均影響FR)P60加法:ADDADC減法:SUBSBBCMP加1減1:INCDEC求補(bǔ):NEC乘法:MUL(無(wú)符號(hào)數(shù))IMUL(帶符號(hào)數(shù))除法:DIV(無(wú)符號(hào)數(shù))IDIV(帶符號(hào)數(shù))擴(kuò)展:CBW(B-W)CWD(W-DW)十進(jìn)制調(diào)整:1)加法:DAA(組合)AAA(未組合)2)減法:DAS(組合)AAS(未組合)3)乘法:AAM(未組合)4)除法:AAD乘、除法指令注意事項(xiàng):.無(wú)符號(hào)與帶符號(hào)數(shù)所用指令不同;.八位乘法時(shí),必有一個(gè)乘數(shù)在AL中,積在AX中;十六位乘法時(shí),必有一個(gè)乘數(shù)在AX中,積在DX(高16位)與AX(低16位)中;.八位除法時(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)算。1s加法指令P61(1)不帶進(jìn)位的加法指令A(yù)DD格式:ADDacc.dataADDmem/reg,dataADDmem/regl,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(AddwithCarry)P62ADC指令在形式上和功能上與ADD類似,只是相加時(shí)還要包括進(jìn)位標(biāo)志CF的內(nèi)容,例如:ADCAL,68H;AL—(AL)+68H+(CF)ADCAX,CX;AX—(AX)+(CX)+(CF)ADCBX,[DI];BX—(BX)+[DI+1][DI]+(CF)(3)加1指令I(lǐng)NC(Increment)格式:INCreg/mem功能:類似于C語(yǔ)言中的++操作:對(duì)指定的操作數(shù)加1注:本指令不影響CF標(biāo)志。2、減法指令P63(1)不考慮借位的減法指令SUB(Subtraction)格式:SUBdest,src注:1.源和目的操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù)2.立即數(shù)不能作為目的操作數(shù)(2)考慮借位的減法指令SBB(SubtractionwithCarry)SBB指令主要用于多字節(jié)的減法。格式:SBBdest,src操作:dest—(dest)-(src)-(CF)⑶減1指令DEC(Decrement)格式:DECopr操作:opr—(opr)-1(4)求補(bǔ)指令NEG(Negate)格式:NEGopr操作:opr―0-(opr)對(duì)一個(gè)操作數(shù)取補(bǔ)碼相當(dāng)于用0減去此操作數(shù),故利用NEG指令可得到負(fù)數(shù)的絕對(duì)值。例:若(AL)=OFCH,貝底丸行NEGAL后,(AL)=04H,CF=1(5)比較指令CMP格式:CMPdest,src操作:(dest)-(src)CMP也是執(zhí)行兩個(gè)操作數(shù)相減,但結(jié)果不送目標(biāo)操作數(shù)其結(jié)果只反映在標(biāo)志位上。(4)非壓縮BCD碼加法調(diào)整指令A(yù)AAP68AAA指令的操作:如果AL的低4位>9或AF=1,則:①AL―(AL)+6,(AH)—(AH)+1,AF—1②AL高4位清零③CF-AF否則AL高4位清零(5)壓縮BCD碼加法調(diào)整指令DAAP68兩個(gè)壓縮BCD碼相加結(jié)果在AL中,通過(guò)DAA調(diào)整得到一個(gè)正確的壓縮BCD碼.指令操作(調(diào)整方法):若AL的低4位>9或AF=1貝IJ(AL)—(AL)+6,AF—1若AL的高4位>9或CF=1貝IJ(AL)—(AL)+60H,CF—1除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-(AL)-6,AH—(AH)-1,AF-1②AL的高4位清零③CF-AF否則:AL的高4位清零⑺壓縮BCD碼減法調(diào)整指令DAS對(duì)AL中由兩個(gè)壓縮BCD碼相減的結(jié)果進(jìn)行調(diào)整。調(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位一16位乘積16位*16位一32位乘積⑴無(wú)符號(hào)數(shù)的乘法指令MUL(MEM/REG)格式:MULsrc操作:字節(jié)操作數(shù)(AX)一(AL)x(src)字操作數(shù) (DX,AX)-(AX)x(src)指令例子:MULBL;(AL)x(BL),乘積在AX中MULCX;(AX)x(CX),乘積在DX,AX中(2)有符號(hào)數(shù)乘法指令I(lǐng)MUL格式與MUL指令類似,只是要求兩操作數(shù)均為有符號(hào)數(shù)。指令例子:IMULBL;(AX)—(AL)x(BL)IMULWORDPTR[SI];(DX,AX)—(AX)x([SI+1][SI])注意:MUL/IMUL指令中AL(AX)為隱含的乘數(shù)寄存器;AX(DX,AX)為隱含的乘積寄存器;src不能為立即數(shù);?除CF和OF外,對(duì)其它標(biāo)志位無(wú)定義。4、除法指令P66進(jìn)行除法時(shí):16位/8位-8位商32位/16位-16位商對(duì)被除數(shù)、商及余數(shù)存放有如下規(guī)定:被除數(shù)商余數(shù)字節(jié)除法AX AL AH字除法DX:AX AX DX⑴無(wú)符號(hào)數(shù)除法指令DIV(Division)格式:DIVsrc操作:字節(jié)操作(AL)—(AX)/(SRC)的商(AH)—(AX)/(SRC)的余數(shù)字操作(AX)一(DX,AX)/(SRC)的商(DX)一(DX,AX)/(SRC)的余數(shù)⑵有符號(hào)數(shù)除法指令I(lǐng)DIV(Integerdivision)格式:IDIVsrc操作與DIV類似。商及余數(shù)均為有符號(hào)數(shù),且余數(shù)符號(hào)總是與被除數(shù)符號(hào)相同。注意:對(duì)于DIV/IDIV指令A(yù)X(DX,AX)為隱含的被除數(shù)寄存器。AL(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)算類指令 (特點(diǎn):均影響FR)P701.與:AND2.或:OR3.異或:XOR4.非:NOT5.測(cè)試:TEST移位指令邏輯移位:左移SHL右移SHR算術(shù)移位:左移SAL右移SAR循環(huán)移位:.不帶CF:左移ROL右移ROR.帶CF:左移RCL右移RCR1、邏輯運(yùn)算指令⑴邏輯與AND對(duì)兩個(gè)操作數(shù)進(jìn)行按位邏輯“與”操作。格式:ANDdest,src用途:保留操作數(shù)的某幾位,清零其他位。(2)邏輯或OR對(duì)兩個(gè)操作數(shù)進(jìn)行按位邏輯”或”操作。格式:ORdest,src用途:對(duì)操作數(shù)的某幾位置1;對(duì)兩操作數(shù)進(jìn)行組合。例1:把AL中的非壓縮BCD碼變成相應(yīng)十進(jìn)制數(shù)的ASCII碼。ORAL,30H⑶邏輯非NOT對(duì)操作數(shù)進(jìn)行按位邏輯“非”操作。格式:NOTmem/reg(4)邏輯異或XOR對(duì)兩個(gè)操作數(shù)按位進(jìn)行”異或”操作。格式:XORdest,src用途:對(duì)reg清零(自身異或)把reg/mem的某幾位變反(與‘1’異或)例1:把AX寄存器清零。①M(fèi)OVAX,0②XORAX,AX③ANDAX,0④SUBAX,AX⑸測(cè)試指令TEST操作與AND指令類似,但不將“與”的結(jié)果送回,只影響標(biāo)志位。TEST指令常用于位測(cè)試,與條件轉(zhuǎn)移指令一起用o例:測(cè)試AL的內(nèi)容是否為負(fù)數(shù)。TESTAL,80H;檢查AL中口7二1JNZMINUS;是1(負(fù)數(shù)),轉(zhuǎn)MINUS…… ’?否則為正數(shù)2、移位指令⑴非循環(huán)移位指令(重點(diǎn))P72算術(shù)左移指令SAL(ShiftArithmeticLeft)算術(shù)右移指令SAR(ShiftArithmeticRight)邏輯左移指令SHL(ShiftLeft)邏輯右移指令SHR(ShiftRight)這4條指令的格式相同,以SAL為例:{CL;移位位數(shù)大于1時(shí)SALmem/reg1 ;移位位數(shù)等于1時(shí)算術(shù)移位——把操作數(shù)看做有符號(hào)數(shù);邏輯移位——把操作數(shù)看做無(wú)符號(hào)數(shù)。移位位數(shù)放在CL寄存器中,如果只移1位,也可以直接寫在指令中。例如:MOVCL,4SHRAL,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=23+21,所以可用移位實(shí)現(xiàn)乘10操作。程序如下:MOVCL,3SALAL,1;2xMOVAH,ALSALAL,1;4xSALAL,1 ;8xADDAL,AH;8x+2x=10x四、控制轉(zhuǎn)移類指令: P80一)、無(wú)條件轉(zhuǎn)移JMP.近轉(zhuǎn)移(段內(nèi))(NEARPTR).直接(相對(duì)尋址):短轉(zhuǎn)移(SHORT)IP-IP+disp(8位)如:JMPn長(zhǎng)轉(zhuǎn)移IP-IP+disp(16位)如:JMPnn.間接:IP-reg(16位) IP-mem(16位)如:JMP[BX].遠(yuǎn)轉(zhuǎn)移(段間)(FARPTR).直接:CS=指令中給出的段地址IP=指令中給出的EA如:JMP段:偏.間接:CS=mem+2(16位)IP=mem(16位)如:JMPDWORDPTR[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ù)=JZJZ手JNZJNZ<JC/JB/JNAEJL/JNGE>JA/JNBEJG/JNLE<JBE/JNAJLE/JNG>JNC/JAE/JNBJGE/JNL.循環(huán)控制指令循環(huán)轉(zhuǎn)移指令LOOP(相當(dāng)于:DECCXJNZn)相等(為零)循環(huán)轉(zhuǎn)移指令LOOPE/LOOPZ不相等(不為零)循環(huán)轉(zhuǎn)移指令LOOPNE/LOOPNZ.過(guò)程調(diào)用與返回指令.調(diào)用指令CALL(與JMP一樣分:段內(nèi)直接、段內(nèi)間接、段間直接、段間間接調(diào)用四種,但需保護(hù)斷點(diǎn)).返回指令1).RET(依段內(nèi)、段間不同分別恢復(fù)相應(yīng)斷點(diǎn)).RETn(除象RET恢復(fù)斷點(diǎn)外還應(yīng)根據(jù)n值修設(shè)SP).中斷指令I(lǐng)NTn(響應(yīng)中斷時(shí),除象CALL保護(hù)斷點(diǎn)外,還應(yīng)保護(hù)FR)INTOIRET (返回時(shí),除象RET恢復(fù)斷點(diǎn)外,還應(yīng)恢復(fù)F(1)LOOP格式:LOOPlabel操作:(CX)-1-CX;若(CX)X0則轉(zhuǎn)至label處執(zhí)行;否則退出循環(huán),執(zhí)行LOOP后面的指令。LOOP指令與下面的指令段等價(jià):DECCXJNZlabel3、過(guò)程調(diào)用指令(1)調(diào)用指令CALL一般格式:CALLsub;sub為子程序的入口4、中斷指令P85⑴INTn執(zhí)行類型n的中斷服務(wù)程序,N=0~255五、串操作指令.串操作指令.串傳送MOVS (字節(jié)串MOVSB字串MOVSW).串比較CMPS(字節(jié)串CMPSB字串CMPSW).串搜索SCAS(字節(jié)串SCASB字串SCASW).取串LODS(字節(jié)串LODSB字串LODSW).存串STOS (字節(jié)串STOSB字串STOSW).重復(fù)前綴指令無(wú)條件重復(fù)REP相等/為零重復(fù)REPE/REPZ不相等/不為零重復(fù)REPNE/REPNZ串操作指令特點(diǎn):.可用前綴使其重復(fù)操作;.每操作一次自動(dòng)修改SI和DI內(nèi)容,當(dāng)DF=0時(shí)為增量,DF=1為減量;.所有源操作數(shù)地址放在SI中,在DS段,串長(zhǎng)<64K;所有目標(biāo)操作數(shù)地址放在DI中,在ES段,串長(zhǎng)<64K;.用重復(fù)前綴時(shí),如果條件滿足且CX豐0時(shí)重復(fù),每重復(fù)一次CX-CX-1,否則結(jié)束重復(fù);.重復(fù)操作時(shí)IP不變,中斷返回后繼續(xù)操作。重復(fù)前綴重復(fù)與結(jié)束重復(fù)的條件:重復(fù)前綴重復(fù)條件結(jié)束條件REP(無(wú)條件重復(fù))CX*0CX=0REPE/REPZ(相等/為零重復(fù))CX*0且ZF=1CX=0或ZF=0REPNE/REPNZ(不相等/不為零重復(fù))CX*0且ZF=0CX=0或ZF=1使用串操作指令時(shí)注意:SI一源串首(末)址DI一目標(biāo)串首(末)址;CX一串長(zhǎng)度;設(shè)DF值;選重復(fù)前綴;使用條件重復(fù)前綴時(shí),判斷結(jié)束條件(即是CX=0還是ZF=0/1結(jié)束)六、處理器控制指令P88.標(biāo)志位操作.清CFCLC(CF=0).置CFSTC(CF=1).CF取反CMC.清DFCLD(DF=0).置DFSTD(DF=1).清IFCLI(CF=0關(guān)中斷).置IFSTI(CF=1開中斷).同步控制指令.ESC2).WAIT3).LOCK.空操作指令NOP.暫停指令 HLT1s標(biāo)志位操作CF設(shè)置指令CLC0-CFSTCWCFCMCCF變反DF設(shè)置指令CLD0—DF(串操作的指針移動(dòng)方向從低到高)STD1—DF(串操作的指針移動(dòng)方向從高到低)IF設(shè)置指令CLIorF(禁止INTR中斷)STIITF(開放INTR中斷)1、HLT(halt)執(zhí)行HLT指令后,CPU進(jìn)入暫停狀態(tài)。第四章8086匯編語(yǔ)言程序設(shè)計(jì)第一節(jié)偽指令(重點(diǎn))分析運(yùn)算符:SEG、OFFSET、TYPE、LENGTH、SIZEP97CPU指令與偽指令之間的區(qū)別:P98(l)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)代碼。1s數(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é)⑴ASC_DATADB1234' ⑵HEX_DATADB1234H答案:⑴設(shè)置了4個(gè)字節(jié)⑵設(shè)置了2個(gè)字節(jié)(2)操作數(shù)的類型可以是:①常數(shù)或常數(shù)表達(dá)式例如:DATA_BYTEDB10,5,10HDATA_WORDDW100H,100,-4DATA_DWDD2*30,0FFFBH②可以為字符串(定義字符串最好使用DB)例如:charlDB'AB'③可以為變量④可以為號(hào)操作符例如:XDB5,

溫馨提示

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