微機原理與接口技術知識點總結_第1頁
微機原理與接口技術知識點總結_第2頁
微機原理與接口技術知識點總結_第3頁
微機原理與接口技術知識點總結_第4頁
微機原理與接口技術知識點總結_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一章 概 述一、計算機中的數(shù)制1、無符號數(shù)的表示方法:(1)十進制計數(shù)的表示法特點:以十為底,逢十進一;共有0-9十個數(shù)字符號。(2)二進制計數(shù)表示方法:特點:以2為底,逢2進位;只有0和1兩個符號。(3)十六進制數(shù)的表示法:特點:以16為底,逢16進位;有0-9及AF(表示1015)共16個數(shù)字符號。 2、各種數(shù)制之間的轉換(1)非十進制數(shù)到十進制數(shù)的轉換按相應進位計數(shù)制的權表達式展開,再按十進制求和。(見書本1.2.3,1.2.4)(2)十進制數(shù)制轉換為二進制數(shù)制l十進制二進制的轉換:整數(shù)部分:除2取余;小數(shù)部分:乘2取整。l十進制十六進制的轉換:整數(shù)部分:除16取余;小數(shù)部分:乘16取

2、整。以小數(shù)點為起點求得整數(shù)和小數(shù)的各個位。(3)二進制及十六進制數(shù)之間的轉換用4位二進制數(shù)表示1位十六進制數(shù)3、無符號數(shù)二進制的運算(見教材P5)4、二進制數(shù)的邏輯運算特點:按位運算,無進借位(1)及運算只有A、B變量皆為1時,及運算的結果就是1(2)或運算A、B變量中,只要有一個為1,或運算的結果就是1(3)非運算(4)異或運算A、B兩個變量只要不同,異或運算的結果就是1二、計算機中的碼制1、對于符號數(shù),機器數(shù)常用的表示方法有原碼、反碼和補碼三種。數(shù)X的原碼記作X原,反碼記作X反,補碼記作X補。注意:對正數(shù),三種表示法均相同。它們的差別在于對負數(shù)的表示。(1)原碼定義:符號位:0表示正,1表

3、示負;數(shù)值位:真值的絕對值。注意:數(shù)0的原碼不唯一 (2)反碼定義:若X>0 ,則 X反=X原若X<0,則 X反= 對應原碼的符號位不變,數(shù)值部分按位求反注意:數(shù)0的反碼也不唯一(3)補碼定義:若X>0,則X補= X反= X原若X<0,則X補= X反+1注意:機器字長為8時,數(shù)0的補碼唯一,同為000000002、8位二進制的表示范圍:原碼:-127+127反碼:-127+127補碼:-128+1273、特殊數(shù)10000000l該數(shù)在原碼中定義為: -0l在反碼中定義為: -127l在補碼中定義為: -128l對無符號數(shù):(10000000)= 128三、信息的編碼1、

4、 十進制數(shù)的二進制數(shù)編碼用4位二進制數(shù)表示一位十進制數(shù)。有兩種表示法:壓縮BCD碼和非壓縮BCD碼。(1)壓縮BCD碼的每一位用4位二進制表示,00001001表示09,一個字節(jié)表示兩位十進制數(shù)。(2)非壓縮BCD碼用一個字節(jié)表示一位十進制數(shù),高4位總是0000,低4位的00001001表示092、 字符的編碼計算機采用7位二進制代碼對字符進行編碼(1)數(shù)字09的編碼是01100000111001,它們的高3位均是011,后4位正好及其對 應的二進制代碼(BCD碼)相符。(2)英文字母AZ的ASCII碼從(41H)開始順序遞增,字母az的ASCII碼從(61H)開始順序遞增,這樣的排列對信息檢

5、索十分有利。第二章 微機組成原理第一節(jié)、微機的結構1、計算機的經(jīng)典結構馮.諾依曼結構(1)計算機由運算器、控制器、輸入設備和輸出設備五大部分組成(運算器和控制器又稱為CPU)(2)數(shù)據(jù)和程序以二進制代碼形式不加區(qū)分地存放在存儲器總,存放位置由地址指定,數(shù)制為二進制。(3)控制器是根據(jù)存放在存儲器中的指令序列來操作的,并由一個程序計數(shù)器控制指令的執(zhí)行。3、 系統(tǒng)總線的分類(1)數(shù)據(jù)總線(Data Bus),它決定了處理器的字長。(2)地址總線(Address Bus),它決定系統(tǒng)所能直接訪問的存儲器空間的容量。(3)控制總線(Control Bus)第二節(jié)、8086微處理器1、8086是一種單片

6、微處理芯片,其內部數(shù)據(jù)總線的寬度是16位,外部數(shù)據(jù)總線寬度也是16位,片內包含有控制計算機所有功能的各種電路。8086地址總線的寬度為20位,有1MB(220)尋址空間。1、 8086CPU由總線接口部件BIU和執(zhí)行部件EU組成。BIU和EU的操作是異步的,為8086取指令和執(zhí)行指令的并行操作體統(tǒng)硬件支持。2、 8086處理器的啟動4、寄存器結構8086微處理器包含有13個16位的寄存器和9位標志位。4個通用寄存器(AX,BX,CX,DX)4個段寄存器(CS,DS,SS,ES)4個指針和變址寄存器(SP,BP,SI,DI)指令指針(IP)1)、通用寄存器(1)8086含4個16位數(shù)據(jù)寄存器,它

7、們又可分為8個8位寄存器,即:lAX èAH,ALlBXèBH,BLlCXèCH,CLlDXèDH,DL常用來存放參及運算的操作數(shù)或運算結果(2)數(shù)據(jù)寄存器特有的習慣用法lAX:累加器。多用于存放中間運算結果。所有I/O指令必須都通過AX及接口傳送信息;lBX:基址寄存器。在間接尋址中用于存放基地址;lCX:計數(shù)寄存器。用于在循環(huán)或串操作指令中存放循環(huán)次數(shù)或重復次數(shù);lDX:數(shù)據(jù)寄存器。在32位乘除法運算時,存放高16位數(shù);在間接尋址的I/O指令中存放I/O端口地址。2)、指針和變址寄存器lSP:堆棧指針寄存器,其內容為棧頂?shù)钠频刂罚籰BP:基址指針寄

8、存器,常用于在訪問內存時存放內存單元的偏移地址。lSI:源變址寄存器lDI:目標變址寄存器變址寄存器常用于指令的間接尋址或變址尋址。3)、段寄存器CS:代碼段寄存器,代碼段用于存放指令代碼DS:數(shù)據(jù)段寄存器ES:附加段寄存器,數(shù)據(jù)段和附加段用來存放操作數(shù)SS:堆棧段寄存器,堆棧段用于存放返回地址,保存寄存器內容,傳遞參數(shù)4)、指令指針(IP)16位指令指針寄存器,其內容為下一條要執(zhí)行的指令的偏移地址。5)、標志寄存器(1)狀態(tài)標志:l進位標志位(CF):運算結果的最高位有進位或有借位,則CF=1l輔助進位標志位(AF):運算結果的低四位有進位或借位,則AF=1l溢出標志位(OF):運算結果有溢

9、出,則OF=1l零標志位(ZF):反映指令的執(zhí)行是否產(chǎn)生一個為零的結果l符號標志位(SF):指出該指令的執(zhí)行是否產(chǎn)生一個負的結果l奇偶標志位(PF):表示指令運算結果的低8位“1”個數(shù)是否為偶數(shù)(2)控制標志位l中斷允許標志位(IF):表示CPU是否能夠響應外部可屏蔽中斷請求l跟蹤標志(TF):CPU單步執(zhí)行5、8086的引腳及其功能(重點掌握以下引腳)lAD15AD0:雙向三態(tài)的地址總線,輸入/輸出信號lINTR:可屏蔽中斷請求輸入信號,高電平有效。可通過設置IF的值來控制。lNMI:非屏蔽中斷輸入信號。不能用軟件進行屏蔽。lRESET:復位輸入信號,高電平有效。復位的初始狀態(tài)見P21lMN

10、/MX:最小最大模式輸入控制信號。第三章 8086指令系統(tǒng)第一節(jié) 8086尋址方式一、數(shù)據(jù)尋址方式1、立即尋址操作數(shù)(為一常數(shù))直接由指令給出 (此操作數(shù)稱為立即數(shù))立即尋址只能用于源操作數(shù)例:MOV AX, 1C8FHMOV BYTE PTR2A00H, 8FH錯誤例:× MOV 2A00H,AX ; 錯誤!指令操作例:MOV AX,3102H; AXè3102H執(zhí)行后,(AH) = 31H,(AL) = 02H2、寄存器尋址(1)操作數(shù)放在某個寄存器中(2)源操作數(shù)及目的操作數(shù)字長要相同(3)寄存器尋址及段地址無關例: MOV AX, BX MOV 3F00H, AX

11、MOV CL, AL錯誤例:× MOV AX,BL ; 字長不同× MOV ES:AX,DX ; 寄存器及段無關3、直接尋址(1)指令中直接給出操作數(shù)的16位偏移地址偏移地址也稱為有效地址(EA, Effective Address)(2)默認的段寄存器為DS,但也可以顯式地指定其他段寄存器稱為段超越前綴(3)偏移地址也可用符號地址來表示,如ADDR、VAR例:MOV AX ,2A00H MOV DX ,ES:2A00HMOV SI,TABLE_PTR4、間接尋址l操作數(shù)的偏移地址(有效地址EA)放在寄存器中l(wèi)只有SI、DI、BX和BP可作間址寄存器l例: MOV AX,B

12、X MOV CL,CS:DI錯誤例:× MOV AX, DX× MOV CL, AX5、寄存器相對尋址lEA=間址寄存器的內容加上一個8/16位的位移量l例: MOV AX, BX+8 MOV CX, TABLESI MOV AX, BP; 默認段寄存器為SSl指令操作例:MOV AX,DATABX若(DS)=6000H, (BX)=1000H, DATA=2A00H, (63A00H)=66H, (63A01H)=55H則物理地址 = 60000H + 1000H + 2A00H = 63A00H指令執(zhí)行后:(AX)=5566H6、基址變址尋址l若操作數(shù)的偏移地址:由基址

13、寄存器(BX或BP)給出基址尋址方式由變址寄存器(SI或DI)給出變址尋址方式由一個基址寄存器的內容和一個變址寄存器的內容相加而形成操作數(shù)的偏移地址,稱為基址-變址尋址。EA=(BX)+(SI)或(DI);EA=(BP)+(SI)或(DI)同一組內的寄存器不能同時出現(xiàn)。注意:除了有段跨越前綴的情況外,當基址寄存器為BX時,操作數(shù)應該存放在數(shù)據(jù)段DS中,當基址寄存器為BP時,操作數(shù)應放在堆棧段SS中。例: MOV AX, BX SI MOV AX, BX+SI MOV AX, DS: BP DI錯誤例:× MOV AX, BX BP× MOV AX, DI SI指令操作例:M

14、OV AX,BXSI假定:(DS)=8000H, (BX)=2000H, SI=1000H則物理地址 = 80000H + 2000H + 1000H = 83000H指令執(zhí)行后: (AL)=83000H(AH)=83001H7、相對基址變址尋址l在基址-變址尋址的基礎上再加上一個相對位移量EA=(BX)+(SI)或(DI)+8位或16位位移量;EA=(BP)+(SI)或(DI)+8位或16位位移量指令操作例:MOV AX,DATADIBX若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H則指令執(zhí)行后(AH)=83021H, (AL)=83020H寄存

15、器間接、寄存器相對、基址變址、相對基址變址四種尋址方式的比較:尋址方式指令操作數(shù)形式n寄存器間接 只有一個寄存器(BX/BP/SI/DI之一)n寄存器相對一個寄存器加上位移量n基址變址 兩個不同類別的寄存器n相對基址-變址 兩個不同類別的寄存器加上位移量二、地址尋址方式(了解有4類,能判斷)簡要判斷依據(jù)(指令中間的單詞):段內直接 short,near段內間接 word段間直接 far段間間接 dword第二節(jié) 8086指令系統(tǒng)一、數(shù)據(jù)傳送指令1、通用傳送指令(1) MOV dest,src; destsrc傳送的是字節(jié)還是字取決于指令中涉及的寄存器是8位還是16位。具體來說可實現(xiàn): MOV

16、mem/reg1,mem/reg2指令中兩操作數(shù)中至少有一個為寄存器 MOV reg,data ;立即數(shù)送寄存器 MOV mem,data ;立即數(shù)送存儲單元 MOV acc,mem ;存儲單元送累加器 MOV mem,acc ;累加器送存儲單元 MOV segreg,mem/reg ;存儲單元/寄存器送段寄存器 MOV mem/reg,segreg ;段寄存器送存儲單元/寄存器MOV指令的使用規(guī)則IP不能作目的寄存器不允許memmem不允許segregsegreg立即數(shù)不允許作為目的操作數(shù)不允許segreg立即數(shù)源操作數(shù)及目的操作數(shù)類型要一致當源操作數(shù)為單字節(jié)的立即數(shù),而目的操作數(shù)為間址、變

17、址、基址+變址的內存數(shù)時,必須用PTR說明數(shù)據(jù)類型。如:MOV BX,12H 是錯誤的。(2)、堆棧指令什么是堆棧?按“后進先出(LIFO)”方式工作的存儲區(qū)域。堆棧以字為單位進行壓入彈出操作。規(guī)定由SS指示堆棧段的段基址,堆棧指針SP始終指向堆棧的頂部,SP的初值規(guī)定了所用堆棧區(qū)的大小。堆棧的最高地址叫棧底。 壓棧指令PUSHPUSH src ; src為16位操作數(shù)例:PUSHAX;將AX內容壓棧執(zhí)行操作:(SP)-1高字節(jié)AH(SP)-2低字節(jié)AL(SP)(SP)- 2注意進棧方向是高地址向低地址發(fā)展。 彈出指令POPPOPdest 例:POP BX;將棧頂內容彈至BX執(zhí)行操作:(BL)

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

19、AL中。2、輸入輸出指令只限于用累加器AL或AX來傳送信息。功能: (累加器)I/O端口(1) 輸入指令IN格式:IN acc,PORT ;PORT端口號0255HIN acc,DX ;DX表示的端口范圍達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指令時,要事先用傳送指令把I/O端口號設置到DX寄存器如:MOV DX,220HIN AL,DX;將220H端口

20、內容讀入AL3、目標地址傳送指令(1) LEA傳送偏移地址格式:LEA reg,mem ; 將指定內存單元的偏移地址送到指定寄存器要求:1) 源操作數(shù)必須是一個存儲器操作數(shù);2) 目的操作數(shù)必須是一個16位的通用寄存器。例:LEA BX,SI+10H設:(SI)=1000H則執(zhí)行該指令后,(BX)=1010Hl注意以下二條指令差別:LEA BX,BUFFER MOV BX,BUFFER前者表示將符號地址為BUFFER的存儲單元的偏移地址取到 BX中;后者表示將BUFFER存儲單元中的內容取到 BX中。下面兩條指令等效:LEA BX,BUFFERMOV BX, OFFSET BUFFER其中OF

21、FSET BUFFER表示存儲器單元BUFFER的偏移地址。二者都可用于取存儲器單元的偏移地址,但LEA指令可以取動態(tài)的地址,OFFSET只能取靜態(tài)的地址。二、算術運算指令1、 加法指令(1) 不帶進位的加法指令ADD格式: ADD acc,dataADD mem/reg,dataADD mem/reg1,mem/reg2實例:ADD AL,30HADD SI,BX+20HADD CX,SIADD DI,200HADD指令對6個狀態(tài)標志均產(chǎn)生影響。例:已知(BX)=D75FH指令ADD BX,8046H執(zhí)行后,狀態(tài)標志各是多少?D75FH = 1110 0111 0101 11118046H

22、= 1000 0000 0100 01101 1 11 11 0110 0111 1010 0101結果:C=1, Z=0, P=0, A=1, O=1, S=0判斷溢出及進位從硬件的角度:默認參及運算的操作數(shù)都是有符號數(shù),當兩數(shù)的符號位相同,而和的結果相異時有溢出,則OF=1,否則OF=0(2) 帶進位的加法ADCADC指令在形式上和功能上及ADD類似,只是相加時還要包括進位標志CF的內容,例如: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格式:INC

23、 reg/mem功能:類似于C語言中的+操作:對指定的操作數(shù)加1例: INC ALINC SIINC BYTE PTRBX+4注:本指令不影響CF標志。(4)非壓縮BCD碼加法調整指令AAAAAA指令的操作:如果AL的低4位9或AF=1,則: AL(AL)+6,(AH)(AH)+1,AF1 AL高4位清零 CFAF否則AL高4位清零(5)壓縮BCD碼加法調整指令DAAl兩個壓縮BCD碼相加結果在AL中,通過DAA調整得到一個正確的壓縮BCD碼.l指令操作(調整方法):若AL的低4位9或AF=1則(AL)(AL)+6,AF1若AL的高4位9或CF=1則(AL)(AL)+60H,CF1l除OF外,

24、DAA指令影響所有其它標志。lDAA指令應緊跟在ADD或ADC指令之后。2、 減法指令(1)不考慮借位的減法指令SUB格式: SUB dest, src操作: dest(dest)-(src)注:1.源和目的操作數(shù)不能同時為存儲器操作數(shù)2.立即數(shù)不能作為目的操作數(shù)指令例子:SUB AL,60HSUB BX+20H,DXSUB AX,CX(2)考慮借位的減法指令SBBSBB指令主要用于多字節(jié)的減法。格式: SBB dest, src操作: dest(dest)-(src)-(CF)指令例子:SBB AX,CXSBB WORD PTRSI,2080HSBB SI,DX(3)減1指令DEC作用類似于

25、C語言中的”操作符。格式:DEC opr操作:opr(opr)-1指令例子:DEC CLDEC BYTE PTRDI+2DEC SI (4)求補指令NEG格式: NEG opr操作: opr 0-(opr)對一個操作數(shù)取補碼相當于用0減去此操作數(shù),故利用NEG指令可得到負數(shù)的絕對值。例:若(AL)=0FCH,則執(zhí)行 NEG AL后,(AL)=04H,CF=1(5)比較指令CMP格式: CMP dest, src操作: (dest)-(src)CMP也是執(zhí)行兩個操作數(shù)相減,但結果不送目標操作數(shù),其結果只反映在標志位上。指令例子:CMP AL,0AHCMP CX,SICMP DI,BX+03(6)

26、非壓縮BCD碼減法調整指令AAS對AL中由兩個非壓縮的BCD碼相減的結果進行調整。調整操作為:若AL的低4位9或AF=1,則: AL(AL)-6,AH(AH)-1,AF1 AL的高4位清零 CFAF否則:AL的高4位清零(7)壓縮BCD碼減法調整指令DAS對AL中由兩個壓縮BCD碼相減的結果進行調整。調整操作為:若AL的低4位9或AF=1,則:AL(AL)-6, 且AF1若AL的高4位9或CF=1,則:AL(AL)-60H,且CF1DAS對OF無定義,但影響其余標志位。DAS指令要求跟在減法指令之后。3、 乘法指令進行乘法時:8位*8位16位乘積16位*16位32位乘積(1) 無符號數(shù)的乘法指

27、令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中MUL BYTE PTRBX(2)有符號數(shù)乘法指令IMUL格式及MUL指令類似,只是要求兩操作數(shù)均為有符號數(shù)。指令例子:IMUL BL ;(AX)(AL)×(BL)IMUL WORD PTRSI;(DX,AX)(AX)×(SI+1SI)注意:MUL/IMUL指令中 AL(AX)為

28、隱含的乘數(shù)寄存器; AX(DX,AX)為隱含的乘積寄存器; SRC不能為立即數(shù);除CF和OF外,對其它標志位無定義。4、除法指令進行除法時:16位/8位8位商32位/16位16位商對被除數(shù)、商及余數(shù)存放有如下規(guī)定:被除數(shù) 商余數(shù)字節(jié)除法 AXAL AH字除法 DX:AXAXDX(1)無符號數(shù)除法指令DIV格式: DIV src操作:字節(jié)操作 (AL)(AX) / (SRC) 的商(AH)(AX) / (SRC) 的余數(shù)字操作(AX) (DX, AX) / (SRC) 的商(DX) (DX, AX) / (SRC) 的余數(shù)指令例子:DIV CLDIV WORD PTRBX(2)有符號數(shù)除法指令I

29、DIV格式: IDIV src操作及DIV類似。商及余數(shù)均為有符號數(shù),且余數(shù)符號總是及被除數(shù)符號相同。注意: 對于DIV/IDIV指令AX(DX,AX)為隱含的被除數(shù)寄存器。AL(AX)為隱含的商寄存器。AH(DX)為隱含的余數(shù)寄存器。src不能為立即數(shù)。對所有條件標志位均無定關于除法操作中的字長擴展問題除法運算要求被除數(shù)字長是除數(shù)字長的兩倍,若不滿足則需對被除數(shù)進行擴展,否則產(chǎn)生錯誤。對于無符號數(shù)除法擴展,只需將AH或DX清零即可。對有符號數(shù)而言,則是符號位的擴展。可使用前面介紹過的符號擴展指令CBW和CWD三、邏輯運算和移位指令1、邏輯運算指令(1)邏輯及AND對兩個操作數(shù)進行按位邏輯“及

30、”操作。格式:AND dest, src用途:保留操作數(shù)的某幾位,清零其他位。例1:保留AL中低4位,高4位清0。AND AL,0FH(2)邏輯或OR對兩個操作數(shù)進行按位邏輯”或”操作。格式:OR dest, src用途:對操作數(shù)的某幾位置1;對兩操作數(shù)進行組合。例1:把AL中的非壓縮BCD碼變成相應十進制數(shù)的ASCII碼。OR AL, 30H(3)邏輯非NOT對操作數(shù)進行按位邏輯”非”操作。格式:NOT mem/reg例:NOT CXNOT BYTE PTRDI(4)邏輯異或XOR對兩個操作數(shù)按位進行”異或”操作。格式:XOR dest, src用途:對reg清零(自身異或)把reg/mem

31、的某幾位變反(及1異或)例1:把AX寄存器清零。MOV AX,0XOR AX,AXAND AX,0SUB AX,AX(5)測試指令TEST操作及AND指令類似,但不將”及”的結果送回,只影響標志位。TEST指令常用于位測試,及條件轉移指令一起用。例:測試AL的內容是否為負數(shù)。 TEST AL,80H ;檢查AL中D7=1? JNZ MINUS ;是1(負數(shù)),轉MINUS ;否則為正數(shù)2、移位指令(1)非循環(huán)移位指令算術左移指令SAL(Shift Arithmetic Left)算術右移指令SAR(Shift Arithmetic Right)邏輯左移指令SHL(Shift Left)邏輯右移

32、指令SHR(Shift Right)這4條指令的格式相同,以SAL為例:CL ;移位位數(shù)大于1時SAL mem/reg1 ;移位位數(shù)等于1時Ø算術移位把操作數(shù)看做有符號數(shù);邏輯移位把操作數(shù)看做無符號數(shù)。Ø移位位數(shù)放在CL寄存器中,如果只移1位,也可以直接寫在指令中。例如: MOV CL,4 SHR AL,CL ;AL中的內容右移4位Ø影響C,P,S,Z,O標志。Ø結果未溢出時:左移1位操作數(shù)*2右移1位操作數(shù)/2例:把AL中的數(shù)x乘10因為10=8+2=23+21,所以可用移位實現(xiàn)乘10操作。程序如下:MOV CL,3SAL AL,1 ; 2xMOV A

33、H,AL SAL AL,1 ; 4xSAL AL,1 ; 8xADD AL,AH ; 8x+2x = 10x四、控制轉移指令1、 轉移指令(1)無條件轉移指令JMP 格式:JMP label本指令無條件轉移到指定的目標地址,以執(zhí)行從該地址開始的程序段。(2)條件轉移指令(補充內容)根據(jù)單個標志位設置的條件轉移指令JB/JC ;低于,或CF=1,則轉移JNB/JNC/JAE ;高于或等于,或CF=0,則轉移JP/JPE ;奇偶標志PF=1(偶),則轉移JNP/JPO ;奇偶標志PF=0(奇),則轉移JZ/JE ;結果為零(ZF=1),則轉移JNZ/JNE ;結果不為零(ZF=0),則轉移JS ;

34、SF=1,則轉移JNS ;SF=0,則轉移JO ;OF=1,則轉移JNO ;OF=0,則轉移根據(jù)組合條件設置的條件轉移指令這類指令主要用來判斷兩個數(shù)的大小。判斷無符號數(shù)的大小lJA 高于則轉移條件為: CF=0ZF=0,即ABlJNA/JBE 低于或等于則轉移條件為: CF=1ZF=1,即ABlJB A<B則轉移lJNB AB則轉移判斷有符號數(shù)的大小lJG ;大于則轉移(AB) 條件為:(SFOF=0)ZF=0lJGE;大于或等于則轉移(AB)條件為:(SFOF=0)ZF=1lJLE;小于或等于則轉移(AB)條件為:(SFOF=1)ZF=1lJL;小于則轉移(AB條件為:(SFOF=1)

35、ZF=02、循環(huán)控制指令l用在循環(huán)程序中以確定是否要繼續(xù)循環(huán)。l循環(huán)次數(shù)通常置于CX中。l轉移的目標應在距離本指令-128+127的范圍之內。l循環(huán)控制指令不影響標志位。(1)LOOP格式:LOOP label操作:(CX)-1CX;若(CX)0,則轉至label處執(zhí)行;否則退出循環(huán),執(zhí)行LOOP后面的指令。LOOP指令及下面的指令段等價: DEC CX JNZ label3、過程調用指令(1)調用指令CALL一般格式:CALLsub ;sub為子程序的入口4、中斷指令(1)INT n 執(zhí)行類型n的中斷服務程序,N=0255五、處理器控制指令1、標志位操作(1)CF設置指令 CLC0CF ST

36、C1CF CMCCF變反(2)DF設置指令 CLD0DF (串操作的指針移動方向從低到高)STD1DF (串操作的指針移動方向從高到低)(3)IF設置指令CLI0IF (禁止INTR中斷)STI1IF (開放INTR中斷)2、 HLT(halt)執(zhí)行HLT指令后,CPU進入暫停狀態(tài)。第四章 8086匯編語言程序設計第一節(jié) 偽指令CPU指令及偽指令之間的區(qū)別:(1)CPU指令是給CPU的命令,在運行時由CPU執(zhí)行,每條指令對應CPU的一種特定的操作。而偽指令是給匯編程序的命令,在匯編過程中由匯編程序進行處理。(2)匯編以后,每條CPU指令產(chǎn)生一一對應的目標代碼;而偽指令則不產(chǎn)生及之相應的目標代碼。1、數(shù)據(jù)定義偽指令(1)數(shù)據(jù)定義偽指令的一般格式為:l變量名 偽指令操作數(shù),操作數(shù) DB 用來定義字節(jié)(BYTE)DW 用來定義字(WORD)DD 用來定義雙字(DWORD)(2)操作數(shù)的類型可以是:常數(shù)或常數(shù)表達式l例如:DATA_BYTE DB 10,5,10HDATA_WORD DW 100H,100,-4DATA_DW DD

溫馨提示

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

評論

0/150

提交評論