河北省專接本(微機(jī)原理與接口技術(shù)知識點(diǎn)總結(jié))_第1頁
河北省專接本(微機(jī)原理與接口技術(shù)知識點(diǎn)總結(jié))_第2頁
河北省專接本(微機(jī)原理與接口技術(shù)知識點(diǎn)總結(jié))_第3頁
河北省專接本(微機(jī)原理與接口技術(shù)知識點(diǎn)總結(jié))_第4頁
河北省專接本(微機(jī)原理與接口技術(shù)知識點(diǎn)總結(jié))_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

河北省專接本(微機(jī)原理與接口技術(shù)知識點(diǎn)總結(jié))河北省專接本(微機(jī)原理與接口技術(shù)知識點(diǎn)總結(jié))河北省專接本(微機(jī)原理與接口技術(shù)知識點(diǎn)總結(jié))xxx公司河北省專接本(微機(jī)原理與接口技術(shù)知識點(diǎn)總結(jié))文件編號:文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計,管理制度概述一、計算機(jī)中的數(shù)制1、無符號數(shù)的表示方法:(1)十進(jìn)制計數(shù)的表示法特點(diǎn):以十為底,逢十進(jìn)一;共有0-9十個數(shù)字符號。(2)二進(jìn)制計數(shù)表示方法:特點(diǎn):以2為底,逢2進(jìn)位;只有0和1兩個符號。(3)十六進(jìn)制數(shù)的表示法:特點(diǎn):以16為底,逢16進(jìn)位;有0--9及A—F(表示10~15)共16個數(shù)字符號。2、各種數(shù)制之間的轉(zhuǎn)換(1)非十進(jìn)制數(shù)到十進(jìn)制數(shù)的轉(zhuǎn)換按相應(yīng)進(jìn)位計數(shù)制的權(quán)表達(dá)式展開,再按十進(jìn)制求和。(見書本,)(2)十進(jìn)制數(shù)制轉(zhuǎn)換為二進(jìn)制數(shù)制十進(jìn)制→二進(jìn)制的轉(zhuǎn)換: 整數(shù)部分:除2取余;小數(shù)部分:乘2取整。十進(jìn)制→十六進(jìn)制的轉(zhuǎn)換:整數(shù)部分:除16取余;小數(shù)部分:乘16取整。以小數(shù)點(diǎn)為起點(diǎn)求得整數(shù)和小數(shù)的各個位。(3)二進(jìn)制與十六進(jìn)制數(shù)之間的轉(zhuǎn)換用4位二進(jìn)制數(shù)表示1位十六進(jìn)制數(shù)3、無符號數(shù)二進(jìn)制的運(yùn)算(見教材P5)4、二進(jìn)制數(shù)的邏輯運(yùn)算特點(diǎn):按位運(yùn)算,無進(jìn)借位(1)與運(yùn)算只有A、B變量皆為1時,與運(yùn)算的結(jié)果就是1(2)或運(yùn)算A、B變量中,只要有一個為1,或運(yùn)算的結(jié)果就是1(3)非運(yùn)算(4)異或運(yùn)算A、B兩個變量只要不同,異或運(yùn)算的結(jié)果就是1二、計算機(jī)中的碼制1、對于符號數(shù),機(jī)器數(shù)常用的表示方法有原碼、反碼和補(bǔ)碼三種。數(shù)X的原碼記作[X]原,反碼記作[X]反,補(bǔ)碼記作[X]補(bǔ)。注意:對正數(shù),三種表示法均相同。它們的差別在于對負(fù)數(shù)的表示。(1)原碼定義:符號位:0表示正,1表示負(fù);數(shù)值位:真值的絕對值。注意:數(shù)0的原碼不唯一(2)反碼定義:若X>0,則[X]反=[X]原若X<0,則[X]反=對應(yīng)原碼的符號位不變,數(shù)值部分按位求反注意:數(shù)0的反碼也不唯一(3)補(bǔ)碼定義:若X>0,則[X]補(bǔ)=[X]反=[X]原若X<0,則[X]補(bǔ)=[X]反+1注意:機(jī)器字長為8時,數(shù)0的補(bǔ)碼唯一,同為000000002、8位二進(jìn)制的表示范圍:原碼:-127~+127反碼:-127~+127補(bǔ)碼:-128~+1273、特殊數(shù)該數(shù)在原碼中定義為:-0在反碼中定義為:-127在補(bǔ)碼中定義為:-128對無符號數(shù):()2=128三、信息的編碼十進(jìn)制數(shù)的二進(jìn)制數(shù)編碼用4位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù)。有兩種表示法:壓縮BCD碼和非壓縮BCD碼。(1)壓縮BCD碼的每一位用4位二進(jìn)制表示,0000~1001表示0~9,一個字節(jié)表示兩位十進(jìn)制數(shù)。(2)非壓縮BCD碼用一個字節(jié)表示一位十進(jìn)制數(shù),高4位總是0000,低4位的0000~1001表示0~9字符的編碼計算機(jī)采用7位二進(jìn)制代碼對字符進(jìn)行編碼(1)數(shù)字0~9的編碼是0110000~0111001,它們的高3位均是011,后4位正好與其對應(yīng)的二進(jìn)制代碼(BCD碼)相符。(2)英文字母A~Z的ASCII碼從1000001(41H)開始順序遞增,字母a~z的ASCII碼從1100001(61H)開始順序遞增,這樣的排列對信息檢索十分有利。微機(jī)組成原理第一節(jié)、微機(jī)的結(jié)構(gòu)1、計算機(jī)的經(jīng)典結(jié)構(gòu)——馮.諾依曼結(jié)構(gòu)(1)計算機(jī)由運(yùn)算器、控制器、輸入設(shè)備和輸出設(shè)備五大部分組成(運(yùn)算器和控制器又稱為CPU)(2)數(shù)據(jù)和程序以二進(jìn)制代碼形式不加區(qū)分地存放在存儲器總,存放位置由地址指定,數(shù)制為二進(jìn)制。(3)控制器是根據(jù)存放在存儲器中的指令序列來操作的,并由一個程序計數(shù)器控制指令的執(zhí)行。系統(tǒng)總線的分類(1)數(shù)據(jù)總線(DataBus),它決定了處理器的字長。(2)地址總線(AddressBus),它決定系統(tǒng)所能直接訪問的存儲器空間的容量。(3)控制總線(ControlBus)第二節(jié)、8086微處理器1、8086是一種單片微處理芯片,其內(nèi)部數(shù)據(jù)總線的寬度是16位,外部數(shù)據(jù)總線寬度也是16位,片內(nèi)包含有控制計算機(jī)所有功能的各種電路。8086地址總線的寬度為20位,有1MB(220)尋址空間。8086CPU由總線接口部件BIU和執(zhí)行部件EU組成。BIU和EU的操作是異步的,為8086取指令和執(zhí)行指令的并行操作體統(tǒng)硬件支持。8086處理器的啟動4、寄存器結(jié)構(gòu)8086微處理器包含有13個16位的寄存器和9位標(biāo)志位。4個通用寄存器(AX,BX,CX,DX)4個段寄存器(CS,DS,SS,ES)4個指針和變址寄存器(SP,BP,SI,DI)指令指針(IP)1)、通用寄存器(1)8086含4個16位數(shù)據(jù)寄存器,它們又可分為8個8位寄存器,即:AXAH,ALBXBH,BLCXCH,CLDXDH,DL常用來存放參與運(yùn)算的操作數(shù)或運(yùn)算結(jié)果(2)數(shù)據(jù)寄存器特有的習(xí)慣用法AX:累加器。多用于存放中間運(yùn)算結(jié)果。所有I/O指令必須都通過AX與接口傳送信息;BX:基址寄存器。在間接尋址中用于存放基地址;CX:計數(shù)寄存器。用于在循環(huán)或串操作指令中存放循環(huán)次數(shù)或重復(fù)次數(shù);DX:數(shù)據(jù)寄存器。在32位乘除法運(yùn)算時,存放高16位數(shù);在間接尋址的I/O指令中存放I/O端口地址。2)、指針和變址寄存器SP:堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂?;BP:基址指針寄存器,常用于在訪問內(nèi)存時存放內(nèi)存單元的偏移地址。SI:源變址寄存器DI:目標(biāo)變址寄存器變址寄存器常用于指令的間接尋址或變址尋址。3)、段寄存器CS:代碼段寄存器,代碼段用于存放指令代碼DS:數(shù)據(jù)段寄存器ES:附加段寄存器,數(shù)據(jù)段和附加段用來存放操作數(shù)SS:堆棧段寄存器,堆棧段用于存放返回地址,保存寄存器內(nèi)容,傳遞參數(shù)4)、指令指針(IP)16位指令指針寄存器,其內(nèi)容為下一條要執(zhí)行的指令的偏移地址。5)、標(biāo)志寄存器(1)狀態(tài)標(biāo)志:進(jìn)位標(biāo)志位(CF):運(yùn)算結(jié)果的最高位有進(jìn)位或有借位,則CF=1輔助進(jìn)位標(biāo)志位(AF):運(yùn)算結(jié)果的低四位有進(jìn)位或借位,則AF=1溢出標(biāo)志位(OF):運(yùn)算結(jié)果有溢出,則OF=1零標(biāo)志位(ZF):反映指令的執(zhí)行是否產(chǎn)生一個為零的結(jié)果符號標(biāo)志位(SF):指出該指令的執(zhí)行是否產(chǎn)生一個負(fù)的結(jié)果奇偶標(biāo)志位(PF):表示指令運(yùn)算結(jié)果的低8位“1”個數(shù)是否為偶數(shù)(2)控制標(biāo)志位中斷允許標(biāo)志位(IF):表示CPU是否能夠響應(yīng)外部可屏蔽中斷請求跟蹤標(biāo)志(TF):CPU單步執(zhí)行5、8086的引腳及其功能(重點(diǎn)掌握以下引腳)AD15~AD0:雙向三態(tài)的地址總線,輸入/輸出信號INTR:可屏蔽中斷請求輸入信號,高電平有效。可通過設(shè)置IF的值來控制。NMI:非屏蔽中斷輸入信號。不能用軟件進(jìn)行屏蔽。RESET:復(fù)位輸入信號,高電平有效。復(fù)位的初始狀態(tài)見P21MN/MX:最小最大模式輸入控制信號。第三章8086指令系統(tǒng)8086尋址方式一、數(shù)據(jù)尋址方式1、立即尋址操作數(shù)(為一常數(shù))直接由指令給出(此操作數(shù)稱為立即數(shù))立即尋址只能用于源操作數(shù)例:MOVAX,1C8FHMOVBYTEPTR[2A00H],8FH錯誤例:×MOV2A00H,AX;錯誤!指令操作例:MOVAX,3102H;AX3102H執(zhí)行后,(AH)=31H,(AL)=02H2、寄存器尋址(1)操作數(shù)放在某個寄存器中(2)源操作數(shù)與目的操作數(shù)字長要相同(3)寄存器尋址與段地址無關(guān)例:MOVAX,BXMOV[3F00H],AXMOVCL,AL錯誤例:×MOVAX,BL;字長不同×MOVES:AX,DX;寄存器與段無關(guān)3、直接尋址(1)指令中直接給出操作數(shù)的16位偏移地址偏移地址也稱為有效地址(EA,EffectiveAddress)(2)默認(rèn)的段寄存器為DS,但也可以顯式地指定其他段寄存器——稱為段超越前綴(3)偏移地址也可用符號地址來表示,如ADDR、VAR例:MOVAX,[2A00H]MOVDX,ES:[2A00H]MOVSI,TABLE_PTR4、間接尋址操作數(shù)的偏移地址(有效地址EA)放在寄存器中只有SI、DI、BX和BP可作間址寄存器例:MOVAX,[BX]MOVCL,CS:[DI]錯誤例:×MOVAX,[DX]×MOVCL,[AX]5、寄存器相對尋址EA=間址寄存器的內(nèi)容加上一個8/16位的位移量例:MOVAX,[BX+8]MOVCX,TABLE[SI]MOVAX,[BP];默認(rèn)段寄存器為SS指令操作例:MOVAX,DATA[BX]若(DS)=6000H,(BX)=1000H,DATA=2A00H,(63A00H)=66H,(63A01H)=55H則物理地址=60000H+1000H+2A00H=63A00H指令執(zhí)行后:(AX)=5566H6、基址變址尋址若操作數(shù)的偏移地址:由基址寄存器(BX或BP)給出——基址尋址方式由變址寄存器(SI或DI)給出——變址尋址方式由一個基址寄存器的內(nèi)容和一個變址寄存器的內(nèi)容相加而形成操作數(shù)的偏移地址,稱為基址-變址尋址。EA=(BX)+(SI)或(DI);EA=(BP)+(SI)或(DI)同一組內(nèi)的寄存器不能同時出現(xiàn)。注意:除了有段跨越前綴的情況外,當(dāng)基址寄存器為BX時,操作數(shù)應(yīng)該存放在數(shù)據(jù)段DS中,當(dāng)基址寄存器為BP時,操作數(shù)應(yīng)放在堆棧段SS中。例:MOVAX,[BX][SI]MOVAX,[BX+SI]MOVAX,DS:[BP][DI]錯誤例:×MOVAX,[BX][BP]×MOVAX,[DI][SI]指令操作例:MOVAX,[BX][SI]假定:(DS)=8000H,(BX)=2000H,SI=1000H則物理地址=80000H+2000H+1000H=83000H指令執(zhí)行后:(AL)=[83000H](AH)=[83001H]7、相對基址變址尋址在基址-變址尋址的基礎(chǔ)上再加上一個相對位移量EA=(BX)+(SI)或(DI)+8位或16位位移量;EA=(BP)+(SI)或(DI)+8位或16位位移量指令操作例:MOVAX,DATA[DI][BX]若(DS)=8000H,(BX)=2000H,(DI)=1000H,DATA=200H則指令執(zhí)行后(AH)=[83021H],(AL)=[83020H]寄存器間接、寄存器相對、基址變址、相對基址變址四種尋址方式的比較:尋址方式指令操作數(shù)形式寄存器間接只有一個寄存器(BX/BP/SI/DI之一)寄存器相對一個寄存器加上位移量基址—變址兩個不同類別的寄存器相對基址-變址兩個不同類別的寄存器加上位移量二、地址尋址方式(了解有4類,能判斷)簡要判斷依據(jù)(指令中間的單詞):段內(nèi)直接short,near段內(nèi)間接word段間直接far段間間接dword8086指令系統(tǒng)一、數(shù)據(jù)傳送指令1、通用傳送指令(1)MOVdest,src;dest←src傳送的是字節(jié)還是字取決于指令中涉及的寄存器是8位還是16位。具體來說可實現(xiàn):MOVmem/reg1,mem/reg2指令中兩操作數(shù)中至少有一個為寄存器②MOVreg,data;立即數(shù)送寄存器③MOVmem,data;立即數(shù)送存儲單元④MOVacc,mem;存儲單元送累加器⑤MOVmem,acc;累加器送存儲單元⑥MOVsegreg,mem/reg;存儲單元/寄存器送段寄存器⑦M(jìn)OVmem/reg,segreg;段寄存器送存儲單元/寄存器MOV指令的使用規(guī)則①IP不能作目的寄存器②不允許mem←mem③不允許segreg←segreg④立即數(shù)不允許作為目的操作數(shù)⑤不允許segreg←立即數(shù)⑥源操作數(shù)與目的操作數(shù)類型要一致⑦當(dāng)源操作數(shù)為單字節(jié)的立即數(shù),而目的操作數(shù)為間址、變址、基址+變址的內(nèi)存數(shù)時,必須用PTR說明數(shù)據(jù)類型。如:MOV[BX],12H是錯誤的。(2)、堆棧指令什么是堆棧按“后進(jìn)先出(LIFO)”方式工作的存儲區(qū)域。堆棧以字為單位進(jìn)行壓入彈出操作。規(guī)定由SS指示堆棧段的段基址,堆棧指針SP始終指向堆棧的頂部,SP的初值規(guī)定了所用堆棧區(qū)的大小。堆棧的最高地址叫棧底。壓棧指令PUSHPUSHsrc ;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)←(SP)+1(SP)←(SP)+2堆棧指令在使用時需注意的幾點(diǎn):堆棧操作總是按字進(jìn)行不能從棧頂彈出一個字給CS堆棧指針為SS:SP,SP永遠(yuǎn)指向棧頂④SP自動進(jìn)行增減量(-2,+2)(3)、交換指令XCHG格式:XCHGreg,mem/reg功能:交換兩操作數(shù)的內(nèi)容。要求:兩操作數(shù)中必須有一個在寄存器中;操作數(shù)不能為段寄存器和立即數(shù);源和目地操作數(shù)類型要一致。舉例:XCHG AX,BXXCHG [2000],CL(4)查表指令XLAT執(zhí)行的操作:AL←[(BX)+(AL)]又叫查表轉(zhuǎn)換指令,它可根據(jù)表項序號查出表中對應(yīng)代碼的內(nèi)容。執(zhí)行時先將表的首地址(偏移地址)送到BX中,表項序號存于AL中。2、輸入輸出指令只限于用累加器AL或AX來傳送信息。功能:(累加器)←→I/O端口輸入指令I(lǐng)N格式:INacc,PORT;PORT端口號0~255HINacc,DX;DX表示的端口范圍達(dá)64K例:INAL,80H;(AL)←(80H端口)INAL,DX;(AL)←((DX))(2)輸出指令OUT格式:OUTport,accOUTDX,acc例:OUT68H,AX;(69H,68H)←(AX)OUTDX,AL;((DX))←(AL)在使用間接尋址的IN/OUT指令時,要事先用傳送指令把I/O端口號設(shè)置到DX寄存器如:MOVDX,220HINAL,DX;將220H端口內(nèi)容讀入AL3、目標(biāo)地址傳送指令LEA傳送偏移地址格式:LEAreg,mem;將指定內(nèi)存單元的偏移地址送到指定寄存器要求:源操作數(shù)必須是一個存儲器操作數(shù);目的操作數(shù)必須是一個16位的通用寄存器。例:LEA BX,[SI+10H]設(shè):(SI)=1000H則執(zhí)行該指令后,(BX)=1010H注意以下二條指令差別:LEABX,BUFFERMOVBX,BUFFER前者表示將符號地址為BUFFER的存儲單元的偏移地址取到BX中;后者表示將BUFFER存儲單元中的內(nèi)容取到BX中。下面兩條指令等效:LEABX,BUFFERMOVBX,OFFSETBUFFER其中OFFSETBUFFER表示存儲器單元BUFFER的偏移地址。二者都可用于取存儲器單元的偏移地址,但LEA指令可以取動態(tài)的地址,OFFSET只能取靜態(tài)的地址。二、算術(shù)運(yùn)算指令加法指令不帶進(jìn)位的加法指令A(yù)DD格式:ADD acc,dataADD mem/reg,dataADDmem/reg1,mem/reg2實例:ADD AL,30HADD SI,[BX+20H]ADD CX,SIADD [DI],200H?ADD指令對6個狀態(tài)標(biāo)志均產(chǎn)生影響。例:已知(BX)=D75FH指令A(yù)DDBX,8046H執(zhí)行后,狀態(tài)標(biāo)志各是多少D75FH=11100111010111118046H=10000000010001101111110110011110100101結(jié)果:C=1,Z=0,P=0,A=1,O=1,S=0判斷溢出與進(jìn)位從硬件的角度:默認(rèn)參與運(yùn)算的操作數(shù)都是有符號數(shù),當(dāng)兩數(shù)的符號位相同,而和的結(jié)果相異時有溢出,則OF=1,否則OF=0帶進(jìn)位的加法ADCADC指令在形式上和功能上與ADD類似,只是相加時還要包括進(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格式:INCreg/mem功能:類似于C語言中的++操作:對指定的操作數(shù)加1例:INCALINCSIINCBYTEPTR[BX+4]注:本指令不影響CF標(biāo)志。(4)非壓縮BCD碼加法調(diào)整指令A(yù)AAAAA指令的操作:如果AL的低4位>9或AF=1,則:①AL←(AL)+6,(AH)←(AH)+1,AF←1②AL高4位清零③CF←AF否則AL高4位清零(5)壓縮BCD碼加法調(diào)整指令DAA兩個壓縮BCD碼相加結(jié)果在AL中,通過DAA調(diào)整得到一個正確的壓縮BCD碼.指令操作(調(diào)整方法):若AL的低4位>9或AF=1則(AL)←(AL)+6,AF←1若AL的高4位>9或CF=1則(AL)←(AL)+60H,CF←1除OF外,DAA指令影響所有其它標(biāo)志。DAA指令應(yīng)緊跟在ADD或ADC指令之后。減法指令(1)不考慮借位的減法指令SUB格式:SUBdest,src操作:dest←(dest)-(src)注:1.源和目的操作數(shù)不能同時為存儲器操作數(shù)2.立即數(shù)不能作為目的操作數(shù)指令例子:SUBAL,60HSUB[BX+20H],DXSUBAX,CX(2)考慮借位的減法指令SBBSBB指令主要用于多字節(jié)的減法。格式:SBBdest,src操作:dest←(dest)-(src)-(CF)指令例子:SBBAX,CXSBBWORDPTR[SI],2080HSBB[SI],DX(3)減1指令DEC作用類似于C語言中的”--”操作符。格式:DECopr操作:opr←(opr)-1指令例子:DECCLDECBYTEPTR[DI+2]DECSI(4)求補(bǔ)指令NEG格式:NEGopr操作:opr←0-(opr)對一個操作數(shù)取補(bǔ)碼相當(dāng)于用0減去此操作數(shù),故利用NEG指令可得到負(fù)數(shù)的絕對值。例:若(AL)=0FCH,則執(zhí)行NEGAL后,(AL)=04H,CF=1(5)比較指令CMP格式:CMPdest,src操作:(dest)-(src)CMP也是執(zhí)行兩個操作數(shù)相減,但結(jié)果不送目標(biāo)操作數(shù),其結(jié)果只反映在標(biāo)志位上。指令例子:CMPAL,0AHCMPCX,SICMPDI,[BX+03](6)非壓縮BCD碼減法調(diào)整指令A(yù)AS對AL中由兩個非壓縮的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位清零(7)壓縮BCD碼減法調(diào)整指令DAS對AL中由兩個壓縮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對OF無定義,但影響其余標(biāo)志位。DAS指令要求跟在減法指令之后。乘法指令進(jìn)行乘法時:8位*8位→16位乘積16位*16位→32位乘積(1)無符號數(shù)的乘法指令MUL(MEM/REG)格式:MULsrc操作:字節(jié)操作數(shù)(AX)←(AL)×(src)字操作數(shù)(DX,AX)←(AX)×(src)指令例子:MULBL;(AL)×(BL),乘積在AX中MULCX;(AX)×(CX),乘積在DX,AX中MULBYTEPTR[BX](2)有符號數(shù)乘法指令I(lǐng)MUL格式與MUL指令類似,只是要求兩操作數(shù)均為有符號數(shù)。指令例子:IMULBL;(AX)←(AL)×(BL)IMULWORDPTR[SI];(DX,AX)←(AX)×([SI+1][SI])注意:MUL/IMUL指令中●AL(AX)為隱含的乘數(shù)寄存器;●AX(DX,AX)為隱含的乘積寄存器;●SRC不能為立即數(shù);●除CF和OF外,對其它標(biāo)志位無定義。4、除法指令進(jìn)行除法時:16位/8位→8位商32位/16位→16位商對被除數(shù)、商及余數(shù)存放有如下規(guī)定:被除數(shù)商余數(shù)字節(jié)除法AXALAH字除法DX:AXAXDX(1)無符號數(shù)除法指令DIV格式:DIVsrc操作:字節(jié)操作(AL)←(AX)/(SRC)的商(AH)←(AX)/(SRC)的余數(shù)字操作(AX)←(DX,AX)/(SRC)的商(DX)←(DX,AX)/(SRC)的余數(shù)指令例子:DIVCLDIVWORDPTR[BX](2)有符號數(shù)除法指令I(lǐng)DIV格式:IDIVsrc操作與DIV類似。商及余數(shù)均為有符號數(shù),且余數(shù)符號總是與被除數(shù)符號相同。注意:對于DIV/IDIV指令A(yù)X(DX,AX)為隱含的被除數(shù)寄存器。AL(AX)為隱含的商寄存器。AH(DX)為隱含的余數(shù)寄存器。src不能為立即數(shù)。對所有條件標(biāo)志位均無定關(guān)于除法操作中的字長擴(kuò)展問題?除法運(yùn)算要求被除數(shù)字長是除數(shù)字長的兩倍,若不滿足則需對被除數(shù)進(jìn)行擴(kuò)展,否則產(chǎn)生錯誤。?對于無符號數(shù)除法擴(kuò)展,只需將AH或DX清零即可。?對有符號數(shù)而言,則是符號位的擴(kuò)展??墒褂们懊娼榻B過的符號擴(kuò)展指令CBW和CWD三、邏輯運(yùn)算和移位指令1、邏輯運(yùn)算指令(1)邏輯與AND對兩個操作數(shù)進(jìn)行按位邏輯“與”操作。格式:ANDdest,src用途:保留操作數(shù)的某幾位,清零其他位。例1:保留AL中低4位,高4位清0。ANDAL,0FH(2)邏輯或OR對兩個操作數(shù)進(jìn)行按位邏輯”或”操作。格式:ORdest,src用途:對操作數(shù)的某幾位置1;對兩操作數(shù)進(jìn)行組合。例1:把AL中的非壓縮BCD碼變成相應(yīng)十進(jìn)制數(shù)的ASCII碼。ORAL,30H(3)邏輯非NOT對操作數(shù)進(jìn)行按位邏輯”非”操作。格式:NOTmem/reg例:NOTCXNOTBYTEPTR[DI](4)邏輯異或XOR對兩個操作數(shù)按位進(jìn)行”異或”操作。格式:XORdest,src用途:對reg清零(自身異或)把reg/mem的某幾位變反(與’1’異或)例1:把AX寄存器清零。①M(fèi)OVAX,0②XORAX,AX③ANDAX,0④SUBAX,AX(5)測試指令TEST操作與AND指令類似,但不將”與”的結(jié)果送回,只影響標(biāo)志位。TEST指令常用于位測試,與條件轉(zhuǎn)移指令一起用。例:測試AL的內(nèi)容是否為負(fù)數(shù)。TESTAL,80H;檢查AL中D7=1 JNZMINUS;是1(負(fù)數(shù)),轉(zhuǎn)MINUS……;否則為正數(shù)2、移位指令(1)非循環(huán)移位指令算術(shù)左移指令SAL(ShiftArithmeticLeft)算術(shù)右移指令SAR(ShiftArithmeticRight)邏輯左移指令SHL(ShiftLeft)邏輯右移指令SHR(ShiftRight)這4條指令的格式相同,以SAL為例:CL;移位位數(shù)大于1時SALmem/reg;移位位數(shù)等于1時算術(shù)移位——把操作數(shù)看做有符號數(shù);邏輯移位——把操作數(shù)看做無符號數(shù)。移位位數(shù)放在CL寄存器中,如果只移1位,也可以直接寫在指令中。例如: MOVCL,4 SHRAL,CL;AL中的內(nèi)容右移4位影響C,P,S,Z,O標(biāo)志。結(jié)果未溢出時:左移1位≡操作數(shù)*2右移1位≡操作數(shù)/2例:把AL中的數(shù)x乘10因為10=8+2=23+21,所以可用移位實現(xiàn)乘10操作。程序如下: MOVCL,3 SALAL,1;2x MOVAH,AL SALAL,1;4xSALAL,1;8xADDAL,AH;8x+2x=10x四、控制轉(zhuǎn)移指令轉(zhuǎn)移指令(1)無條件轉(zhuǎn)移指令JMP格式:JMPlabel本指令無條件轉(zhuǎn)移到指定的目標(biāo)地址,以執(zhí)行從該地址開始的程序段。(2)條件轉(zhuǎn)移指令(補(bǔ)充內(nèi)容)①根據(jù)單個標(biāo)志位設(shè)置的條件轉(zhuǎn)移指令JB/JC;低于,或CF=1,則轉(zhuǎn)移JNB/JNC/JAE;高于或等于,或CF=0,則轉(zhuǎn)移JP/JPE;奇偶標(biāo)志PF=1(偶),則轉(zhuǎn)移JNP/JPO;奇偶標(biāo)志PF=0(奇),則轉(zhuǎn)移JZ/JE;結(jié)果為零(ZF=1),則轉(zhuǎn)移JNZ/JNE;結(jié)果不為零(ZF=0),則轉(zhuǎn)移JS;SF=1,則轉(zhuǎn)移JNS;SF=0,則轉(zhuǎn)移JO ;OF=1,則轉(zhuǎn)移JNO ;OF=0,則轉(zhuǎn)移②根據(jù)組合條件設(shè)置的條件轉(zhuǎn)移指令這類指令主要用來判斷兩個數(shù)的大小?!锱袛酂o符號數(shù)的大小JA高于則轉(zhuǎn)移條件為:CF=0∧ZF=0,即A>BJNA/JBE低于或等于則轉(zhuǎn)移條件為:CF=1∨ZF=1,即A≤BJBA<B則轉(zhuǎn)移JNBA≥B則轉(zhuǎn)移★判斷有符號數(shù)的大小JG;大于則轉(zhuǎn)移(A>B)條件為:(SF⊕OF=0)∧ZF=0JGE;大于或等于則轉(zhuǎn)移(A≥B)條件為:(SF⊕OF=0)∨ZF=1JLE;小于或等于則轉(zhuǎn)移(A≤B)條件為:(SF⊕OF=1)∨ZF=1JL;小于則轉(zhuǎn)移(A<B=條件為:(SF⊕OF=1)∧ZF=02、循環(huán)控制指令用在循環(huán)程序中以確定是否要繼續(xù)循環(huán)。循環(huán)次數(shù)通常置于CX中。轉(zhuǎn)移的目標(biāo)應(yīng)在距離本指令-128~+127的范圍之內(nèi)。循環(huán)控制指令不影響標(biāo)志位。(1)LOOP格式:LOOPlabel操作:(CX)-1→CX;若(CX)≠0,則轉(zhuǎn)至label處執(zhí)行;否則退出循環(huán),執(zhí)行LOOP后面的指令。LOOP指令與下面的指令段等價: DECCX JNZlabel3、過程調(diào)用指令(1)調(diào)用指令CALL一般格式:CALLsub;sub為子程序的入口4、中斷指令(1)INTn執(zhí)行類型n的中斷服務(wù)程序,N=0~255五、處理器控制指令1、標(biāo)志位操作(1)CF設(shè)置指令CLC0→CFSTC1→CFCMCCF變反(2)DF設(shè)置指令CLD0→DF(串操作的指針移動方向從低到高)STD1→DF(串操作的指針移動方向從高到低)(3)IF設(shè)置指令 CLI0→IF(禁止INTR中斷) STI1→IF(開放INTR中斷)HLT(halt)執(zhí)行HLT指令后,CPU進(jìn)入暫停狀態(tài)。第四章8086匯編語言程序設(shè)計偽指令CPU指令與偽指令之間的區(qū)別:(1)CPU指令是給CPU的命令,在運(yùn)行時由CPU執(zhí)行,每條指令對應(yīng)CPU的一種特定的操作。而偽指令是給匯編程序的命令,在匯編過程中由匯編程序進(jìn)行處理。(2)匯編以后,每條CPU指令產(chǎn)生一一對應(yīng)的目標(biāo)代碼;而偽指令則不產(chǎn)生與之相應(yīng)的目標(biāo)代碼。1、數(shù)據(jù)定義偽指令(1)數(shù)據(jù)定義偽指令的一般格式為:[變量名]偽指令操作數(shù)[,操作數(shù)…]DB 用來定義字節(jié)(BYTE)DW 用來定義字(WORD)DD 用來定義雙字(DWORD)(2)操作數(shù)的類型可以是:①常數(shù)或常數(shù)表達(dá)式例如:DATA_BYTEDB10,5,10HDATA_WORDDW100H,100,-4DATA

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論