




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、【精品文檔】如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流微機(jī)原理與接口技術(shù)知識(shí)點(diǎn)總結(jié).精品文檔.微機(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, 則X補(bǔ)= X反+12、8位二進(jìn)制的表示范圍:原碼:-127+127反碼:-127+127補(bǔ)碼:-128+1273、特
2、殊數(shù)10000000l該數(shù)在原碼中定義為: -0l在反碼中定義為: -127l在補(bǔ)碼中定義為: -128l對(duì)無(wú)符號(hào)數(shù):(10000000) = 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)開(kāi)始順序遞增,字母az的ASCII碼從1100001(61H)開(kāi)始順序遞增,這樣的排列對(duì)信息檢索十分有利。第二章 微機(jī)組成原理第一節(jié)、微機(jī)的結(jié)構(gòu)1、計(jì)算機(jī)的經(jīng)典結(jié)構(gòu)馮.諾依曼結(jié)構(gòu)P11(1)微機(jī)
3、由CPU(運(yùn)算器和控制器)、存儲(chǔ)器和I/O接口組成2、 系統(tǒng)總線的分類(1)數(shù)據(jù)總線(Data 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)%
4、)1)數(shù)據(jù)寄存器特有的習(xí)慣用法P30lAX:(Accumulator)累加器。多用于存放中間運(yùn)算結(jié)果。所有I/O指令必須都通過(guò)AX與接口傳送信息;lBX:(Base)基址寄存器。在間接尋址中用于存放基地址;lCX:(Counter)計(jì)數(shù)寄存器。用于在循環(huán)或串操作指令中存放循環(huán)次數(shù)或重復(fù)次數(shù);lDX:(Data)數(shù)據(jù)寄存器。在32位乘除法運(yùn)算時(shí),存放高16位數(shù);在間接尋址的I/O指令中存放I/O端口地址。2)、指針和變址寄存器P31lSP:(Stack Pointer)堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂?;lBP:(Base Pointer)基址指針寄存器,常用于在訪問(wèn)內(nèi)存時(shí)存放內(nèi)存單元的偏移
5、地址。lSI:(Source Index)源變址寄存器 Index:指針lDI:(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)狀
6、態(tài)標(biāo)志:P30l進(jìn)位標(biāo)志位(CF):(Carry Flag)運(yùn)算結(jié)果的最高位有進(jìn)位或有借位,則CF=1 。Carry:進(jìn)位 Auxiliary :輔助 l輔助進(jìn)位標(biāo)志位(AF):(Auxiliary Carry Flag)運(yùn)算結(jié)果的低四位有進(jìn)位或借位,則AF=1l溢出標(biāo)志位(OF):(Overflow Flag)運(yùn)算結(jié)果有溢出,則OF=1l零標(biāo)志位(ZF):(Zero Flag)反映指令的執(zhí)行是否產(chǎn)生一個(gè)為零的結(jié)果l符號(hào)標(biāo)志位(SF):(Sign Flag)指出該指令的執(zhí)行是否產(chǎn)生一個(gè)負(fù)的結(jié)果l奇偶標(biāo)志位(PF):(Parity Flag)表示指令運(yùn)算結(jié)果的低8位“1”個(gè)數(shù)是否為偶數(shù)(2)控制
7、標(biāo)志位l中斷允許標(biāo)志位(IF):(Interrupt Flag)表示CPU是否能夠響應(yīng)外部可屏蔽中斷請(qǐng)求l跟蹤標(biāo)志(TF):(Trap Flag)CPU單步執(zhí)行5、8086的引腳及其功能(重點(diǎn)掌握以下引腳)P34lAD15AD0:雙向三態(tài)的地址總線,輸入/輸出信號(hào)lINTR:(Interrupt Request)可屏蔽中斷請(qǐng)求輸入信號(hào),高電平有效。可通過(guò)設(shè)置IF的值來(lái)控制。lNMI:(Non_Maskable Interrupt)非屏蔽中斷輸入信號(hào)。不能用軟件進(jìn)行屏蔽。lRESET:(Reset)復(fù)位輸入信號(hào),高電平有效。復(fù)位的初始狀態(tài)見(jiàn)P21lMN/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, Effective Address)(2)默認(rèn)的段寄存器為DS,但也可以顯式地指定其他段寄存器稱為段超越前
9、綴(3)偏移地址也可用符號(hào)地址來(lái)表示,如ADDR、VAR例: MOV AX ,2A00H 用表示數(shù)字存放的地址 MOV DX ,ES:2A00HMOV SI,TABLE_PTR4、間接尋址 P48l 操作數(shù)的偏移地址(有效地址EA)放在寄存器中l(wèi) 只有SI、DI、BX和BP可作間址寄存器 SI、DI、BX 默認(rèn)段地址DS BP默認(rèn)段地址SSl 例: MOV AX,BX MOV CL,CS:DI 錯(cuò)誤例 :× MOV AX, DX5、寄存器相對(duì)尋址 P49lEA=間址寄存器的內(nèi)容加上一個(gè)8/16位的位移量l 例: MOV AX, BX+8 MOV CX, TABLESI MOV AX,
10、 BP; BX.SI.DI默認(rèn)段寄存器DS,BP默認(rèn)段寄存器為SSl 指令操作例:MOV AX,DATABX 若(DS)=6000H, (BX)=1000H, DATA=2A00H, (63A00H)=66H, (63A01H)=55H 則物理地址 = 60000H + 1000H + 2A00H = 63A00H指令執(zhí)行后:(AX)=5566H6、基址變址尋址 P51l 若操作數(shù)的偏移地址:EA=基址寄存器(BX或BP)+變址寄存器(SI或DI)同一組內(nèi)的寄存器不能同時(shí)出現(xiàn)。錯(cuò)誤例: × MOV AX, BX BP7、相對(duì)基址變址尋址P51EA=基址寄存器(BX或BP)+變址寄存器
11、(SI或DI)+8位或16位位移量;指令操作例:MOV AX,DATADIBX若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H則指令執(zhí)行后(AH)=83021H, (AL)=83020H寄存器間接、寄存器相對(duì)、基址變址、相對(duì)基址變址四種尋址方式的比較: 尋址方式 指令操作數(shù)形式n 寄存器間接 只有一個(gè)寄存器(BX/BP/SI/DI之一)n 寄存器相對(duì) 一個(gè)寄存器加上位移量n 基址變址 兩個(gè)不同類別的寄存器n 相對(duì)基址-變址 兩個(gè)不同類別的寄存器加上位移量第二節(jié) 8086指令系統(tǒng)一、數(shù)據(jù)傳送指令(重點(diǎn)%)1、數(shù)據(jù)傳送類指令 (特點(diǎn):除SAHF POPF
12、外均不影響FR) P541. 通用MOV dst,src堆棧:PUSH POP交換:XCHG查表:XLAT2. 標(biāo)志 LAHF SAHF PUSHF POPF3. 地址: LEA LDS LES4.輸入 輸出: IN OUT(1) MOV dest,src; destsrc傳送的是字節(jié)還是字取決于指令中涉及的寄存器是8位還是16位。具體來(lái)說(shuō)可實(shí)現(xiàn): MOV mem/reg1,mem/reg2指令中兩操作數(shù)中至少有一個(gè)為寄存器MOV指令的使用規(guī)則IP不能作目的寄存器不允許memmem不允許segregsegreg立即數(shù)不允許作為目的操作數(shù)不允許segreg立即數(shù)源操作數(shù)與目的操作數(shù)類型要一致當(dāng)源
13、操作數(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ū)的大小。堆棧的最高地址叫棧底。 壓棧指令PUSHPUSH src ; src為16位操作數(shù)例:PUSHAX;將AX內(nèi)容壓棧執(zhí)行操作:(SP)-1高字節(jié)AH(SP)-2低字節(jié)AL(SP)(SP)- 2注意進(jìn)棧方向是高地址向低地址發(fā)展。 彈出指令POPPOPdest 例:POP BX;將棧頂內(nèi)容彈至BX執(zhí)行操作:(BL)(SP
14、)(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)、交換指令XCHG P54格式:XCHG reg,mem/reg功能:交換兩操作數(shù)的內(nèi)容。要求:兩操作數(shù)中必須有一個(gè)在寄存器中;操作數(shù)不能為段寄存器和立即數(shù);源和目地操作數(shù)類型要一致。(4)查表指令XLAT P57執(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只限于
15、用累加器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,220HIN AL,DX;將220H端口內(nèi)容讀入AL3、目標(biāo)地址傳送指
16、令 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)=1010Hl注意以下二條指令差別:LEA BX,BUFFER MOV BX,BUFFER前者表示將符號(hào)地址為BUFFER的存儲(chǔ)單元的偏移地址取到 BX中;后者表示將BUFFER存儲(chǔ)單元中的內(nèi)容取到 BX中。下面兩條指令等效:LEA BX,BUFFERMOV BX, OFFSET BUFFER其中OFFSET BUFFER
17、表示存儲(chǔ)器單元BUFFER的偏移地址。二者都可用于取存儲(chǔ)器單元的偏移地址,但LEA指令可以取動(dòng)態(tài)的地址,OFFSET只能取靜態(tài)的地址。二、 算術(shù)運(yùn)算類指令 (特點(diǎn):除CBW CWD外均影響FR) P601. 加法: ADD ADC2. 減法: SUB SBB CMP3. 加1 減1:INC DEC4. 求補(bǔ): NEC5. 乘法: MUL (無(wú)符號(hào)數(shù)) IMUL (帶符號(hào)數(shù))6. 除法: DIV (無(wú)符號(hào)數(shù)) IDIV (帶符號(hào)數(shù))7. 擴(kuò)展: CBW (BW) CWD (WDW)8. 十進(jìn)制調(diào)整: 1)加法:DAA(組合) AAA(未組合) 2)減法:DAS (組合) AAS(未組合) 3)乘
18、法: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)位的加法指令A(yù)DD格式: ADD acc,dataADD mem/reg,dataADD mem/reg1,m
19、em/reg2ADD指令對(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指令I(lǐng)NC (Increment)格式:INC reg/mem功能:類似于C語(yǔ)言中
20、的+操作:對(duì)指定的操作數(shù)加1 注:本指令不影響CF標(biāo)志。2、 減法指令 P63(1)不考慮借位的減法指令SUB (Subtraction)格式: SUB dest, src注:1.源和目的操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù)2. 立即數(shù)不能作為目的操作數(shù)(2)考慮借位的減法指令SBB (Subtraction with Carry)SBB指令主要用于多字節(jié)的減法。格式: SBB dest, src操作: dest(dest)-(src)-(CF)(3)減1指令DEC (Decrement)格式:DEC opr操作:opr(opr)-1(4)求補(bǔ)指令NEG (Negate)格式: NEG opr操作:
21、opr 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)整指令A(yù)AA P68AAA指令的操作:如果AL的低4位9或AF=1,則: AL(AL)+6,(AH)(AH)+1,AF1 AL高4位清零 CFAF否則AL高4位清零(5)壓縮BCD碼加法調(diào)整指令DAA P68l兩個(gè)壓縮BCD碼相加結(jié)果在
22、AL中,通過(guò)DAA調(diào)整得到一個(gè)正確的壓縮BCD碼.l指令操作(調(diào)整方法):若AL的低4位9或AF=1則(AL)(AL)+6,AF1若AL的高4位9或CF=1則(AL)(AL)+60H,CF1l除OF外,DAA指令影響所有其它標(biāo)志。lDAA指令應(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,AF1 AL的高4位清零 CFAF否則:AL的高4位清零(7)壓縮BCD碼減法調(diào)整指令DAS對(duì)AL中由兩個(gè)壓縮BCD碼相減的結(jié)果進(jìn)行調(diào)整。調(diào)整操作為:若AL
23、的低4位9或AF=1,則:AL(AL)-6, 且AF1若AL的高4位9或CF=1,則:AL(AL)-60H,且CF1DAS對(duì)OF無(wú)定義,但影響其余標(biāo)志位。DAS指令要求跟在減法指令之后。3、 乘法指令 P65進(jìn)行乘法時(shí):8位*8位16位乘積16位*16位32位乘積(1) 無(wú)符號(hào)數(shù)的乘法指令MUL(MEM/REG)格式: MUL src操作:字節(jié)操作數(shù) (AX)(AL) × (src)字操作數(shù) (DX, AX)(AX) × (src)指令例子:MUL BL ;(AL)×(BL),乘積在AX中MUL CX ;(AX)×(CX),乘積在DX,AX中(2)有符號(hào)
24、數(shù)乘法指令I(lǐng)MUL格式與MUL指令類似,只是要求兩操作數(shù)均為有符號(hào)數(shù)。指令例子:IMUL BL ;(AX)(AL)×(BL)IMUL WORD PTRSI;(DX,AX)(AX)×(SI+1SI)注意: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(1)無(wú)符號(hào)數(shù)除法指令DIV (Divisi
25、on)格式: 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 (Integer division)格式: IDIV src操作與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)題除法
26、運(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) P70 1. 與: AND 2. 或: OR 3. 異或: XOR 4. 非: NOT 5. 測(cè)試: TEST 移位指令1. 邏輯移位: 左移 SHL 右移 SHR2. 算術(shù)移位: 左移 SAL 右移 SAR3. 循環(huán)移位: 1). 不帶CF: 左移 ROL 右移 ROR 2). 帶CF: 左移 RCL 右移 RCR1、邏輯運(yùn)算指令(1)邏輯與AN
27、D對(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用途:對(duì)reg清零(自身異或)把reg/mem的某幾位變反(與1異或)例1:把AX寄存器清零。MOV AX,0 XO
28、R 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(Shift Arithmetic Right) 邏輯左移指令 SHL(Shift Left) 邏輯右移指令 SHR(Shift Rig
29、ht)這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,4 SHR 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=23+21,所以可用移位實(shí)現(xiàn)乘10操作。程序如下:MOV CL,3SAL AL,1 ; 2xMOV AH,AL SAL AL,
30、1 ; 4xSAL AL,1 ; 8xADD AL,AH ; 8x+2x = 10x四、 控制轉(zhuǎn)移類指令: P80一)、無(wú)條件轉(zhuǎn)移 JMP1. 近轉(zhuǎn)移 (段內(nèi)) (NEAR PTR)1). 直接 (相對(duì)尋址): 短轉(zhuǎn)移(SHORT) IP IP + disp (8位) 如:JMP n 長(zhǎng)轉(zhuǎn)移 IP IP + disp (16位) 如:JMP nn2). 間接: IP reg (16位) IP mem (16位) 如:JMP BX2. 遠(yuǎn)轉(zhuǎn)移 (段間) (FAR PTR) 1). 直接: CS = 指令中給出的段地址 IP = 指令中給出的EA 如:JMP 段:偏 2). 間接: CS = me
31、m+2 (16位) IP = mem (16位) 如:JMP DWORD PTR BX 二)、 條件轉(zhuǎn)移 Jcc1. 單測(cè)試條件指令 1 0 C JC / JNAE / JB JNC / JAE / JNB Z JZ / JE JNZ / JNE S JS JNS P JP / JPE JNP / JPO O JO JNO2. 復(fù)合測(cè)試條件指令 即 A B 無(wú) 符 號(hào) 數(shù) 帶 符 號(hào) 數(shù) = JZ JZ JNZ JNZ JC / JB / JNAE JL / JNGE JA / JNBE JG / JNLE JBE / JNA JLE / JNG JNC / JAE / JNB JGE / J
32、NL三). 循環(huán)控制指令1. 循環(huán)轉(zhuǎn)移指令 LOOP (相當(dāng)于: DEC CXJNZ n )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í),除
33、象RET恢復(fù)斷點(diǎn)外,還應(yīng)恢復(fù)F(1)LOOP格式:LOOP label操作:(CX)-1CX; 若(CX)0,則轉(zhuǎn)至label處執(zhí)行; 否則退出循環(huán),執(zhí)行LOOP后面的指令。 LOOP指令與下面的指令段等價(jià): DEC CX JNZ 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é)
34、串 SCASB 字串SCASW) 4. 取串 LODS (字節(jié)串 LODSB 字串LODSW) 5. 存串 STOS (字節(jié)串 STOSB 字串STOSW)二). 重復(fù)前綴指令 1. 無(wú)條件重復(fù) REP 2. 相等 / 為零重復(fù) REPE / REPZ 3. 不相等 / 不為零重復(fù) REPNE / REPNZ串操作指令特點(diǎn):1. 可用前綴使其重復(fù)操作;2. 每操作一次自動(dòng)修改SI和DI內(nèi)容,當(dāng)DF=0時(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ù),每重
35、復(fù)一次CX CX1,否則結(jié)束重復(fù);5. 重復(fù)操作時(shí)IP不變,中斷返回后繼續(xù)操作。重復(fù)前綴重復(fù)與結(jié)束重復(fù)的條件:重 復(fù) 前 綴 重 復(fù) 條 件 結(jié) 束 條 件 REP (無(wú)條件重復(fù)) CX 0 CX = 0REPE / REPZ(相等/為零重復(fù))CX 0 且 ZF=1CX = 0 或 ZF=0REPNE / REPNZ(不相等/不為零重復(fù))CX 0 且 ZF=0CX = 0 或 ZF=1使用串操作指令時(shí)注意:1. SI 源串首(末)址DI 目標(biāo)串首(末)址;2. CX 串長(zhǎng)度;3. 設(shè)DF 值;4. 選重復(fù)前綴;5. 使用條件重復(fù)前綴時(shí),判斷結(jié)束條件(即 是CX=0 還是ZF=0/1結(jié)束)六、
36、處理器控制指令 P881. 標(biāo)志位操作1). 清CF CLC (CF=0)2). 置CF STC (CF=1)3). CF取反 CMC 4). 清DF CLD (DF=0)5). 置DF STD (DF=1)6). 清IF CLI (CF=0 關(guān)中斷)7). 置IF STI (CF=1 開(kāi)中斷)2. 同步控制指令1). ESC 2). WAIT 3). LOCK3. 空操作指令 NOP4. 暫停指令 HLT1、標(biāo)志位操作(1)CF設(shè)置指令 CLC 0CF STC 1CF CMC CF變反(2)DF設(shè)置指令 CLD 0DF (串操作的指針移動(dòng)方向從低到高)STD 1DF (串操作的指針移動(dòng)方向從
37、高到低)(3)IF設(shè)置指令 CLI 0IF (禁止INTR中斷) STI 1IF (開(kāi)放INTR中斷) 1、 HLT(halt)執(zhí)行HLT指令后,CPU進(jìn)入暫停狀態(tài)。第四章 8086匯編語(yǔ)言程序設(shè)計(jì)第一節(jié) 偽指令(重點(diǎn)%)分析運(yùn)算符:SEG、OFFSET、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ù)
38、據(jù)定義偽指令的一般格式為:l變量名 偽指令 操作數(shù),操作數(shù) P99 DB 用來(lái)定義字節(jié)(BYTE)DW 用來(lái)定義字(WORD)DD 用來(lái)定義雙字(DWORD)例:下面的數(shù)據(jù)項(xiàng)設(shè)置了多少個(gè)字節(jié)?(1) ASC_DATADB1234(2) HEX_DATA DB1234H答案: (1) 設(shè)置了4個(gè)字節(jié) (2) 設(shè)置了2個(gè)字節(jié)(2)操作數(shù)的類型可以是:常數(shù)或常數(shù)表達(dá)式l例如: DATA_BYTE DB 10,5,10H DATA_WORD DW 100H,100,-4 DATA_DW DD 2*30,0FFFBH可以為字符串(定義字符串最好使用DB)l例如:char1 DB AB可以為變量可以為?號(hào)操作符例如:X
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025中鋁環(huán)保節(jié)能科技(湖南)有限公司內(nèi)部招聘8人筆試參考題庫(kù)附帶答案詳解
- 2025企業(yè)級(jí)安全培訓(xùn)考試試題附完整答案(名校卷)
- 2024-2025新員工入職安全培訓(xùn)考試試題附完整答案(易錯(cuò)題)
- 2025年生產(chǎn)經(jīng)營(yíng)單位安全培訓(xùn)考試試題答案典型題
- 2025婚禮攝影服務(wù)合同范本
- 2025機(jī)動(dòng)車交易合同范本
- 2025標(biāo)準(zhǔn)農(nóng)村住宅交易合同樣本
- 2025年基礎(chǔ)設(shè)施建設(shè)項(xiàng)目設(shè)備貸款合同樣本
- 2025租房合同書范本如何制定
- 2025中文采購(gòu)合同模板參考
- 抗血栓藥物臨床應(yīng)用與案例分析課件
- 吉林省地方教材家鄉(xiāng)小學(xué)二年級(jí)下冊(cè)家鄉(xiāng)教案
- 決策樹(shù)在飼料技術(shù)推廣中的應(yīng)用研究
- 兒童長(zhǎng)期臥床的護(hù)理
- 投標(biāo)書細(xì)節(jié)美化教程
- 《小兒支氣管肺炎》課件
- (完整版)年產(chǎn)30萬(wàn)噸甲醇工藝設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 對(duì)輥式破碎機(jī)設(shè)計(jì)
- 財(cái)產(chǎn)險(xiǎn)水災(zāi)現(xiàn)場(chǎng)勘查及理賠定損標(biāo)準(zhǔn)
- 中國(guó)思想史(全)
- IPMP課程培訓(xùn)講義
評(píng)論
0/150
提交評(píng)論