




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、注意:對(duì)正數(shù),三種表示法均相同第一節(jié)、微機(jī)的結(jié)構(gòu)第一章 概述一、計(jì)算機(jī)中的數(shù)制1、無(wú)符號(hào)數(shù)的表示方法:(1)十進(jìn)制計(jì)數(shù)的表示法特點(diǎn):以十為底,逢十進(jìn)一;共有0-9十個(gè)數(shù)字符號(hào)。(2)二進(jìn)制計(jì)數(shù)表示方法:特點(diǎn):以2為底,逢2進(jìn)位;只有0和1兩個(gè)符號(hào)。(3)十六進(jìn)制數(shù)的表示法:特點(diǎn):以16為底,逢16進(jìn)位;有0-9及A F (表示1015 )共16個(gè) 數(shù)字符號(hào)。2、各種數(shù)制之間的轉(zhuǎn)換(1)非十進(jìn)制數(shù)到十進(jìn)制數(shù)的轉(zhuǎn)換按相應(yīng)進(jìn)位計(jì)數(shù)制的權(quán)表達(dá)式展開(kāi),再按十進(jìn)制 求和。(見(jiàn)書(shū)本1.2.3, 1.2.4)(2)十進(jìn)制數(shù)制轉(zhuǎn)換為二進(jìn)制數(shù)制十進(jìn)制二進(jìn)制的轉(zhuǎn)換:整數(shù)部分:除2取余;小數(shù)部分:乘2取整。十進(jìn)制-十
2、六進(jìn)制的轉(zhuǎn)換:整數(shù)部分:除16取余;小數(shù)部分:乘16取整。以小數(shù)點(diǎn)為起點(diǎn)求得整數(shù)和小數(shù)的各個(gè)位。(3)二進(jìn)制與十六進(jìn)制數(shù)之間的轉(zhuǎn)換用4位二進(jìn)制數(shù)表示1位十六進(jìn)制數(shù)3、無(wú)符號(hào)數(shù)二進(jìn)制的運(yùn)算(見(jiàn)教材 P5)4、二進(jìn)制數(shù)的邏輯運(yùn)算特點(diǎn):按位運(yùn)算,無(wú)進(jìn)借位(1)與運(yùn)算只有A、B變量皆為1時(shí),與運(yùn)算的結(jié)果就是1(2)或運(yùn)算A、B變量中,只要有一個(gè)為1,或運(yùn)算的結(jié)果就 是1(3)非運(yùn)算(4)異或運(yùn)算A、B兩個(gè)變量只要不同,異或運(yùn)算的結(jié)果就是 1 二、計(jì)算機(jī)中的碼制1、對(duì)于符號(hào)數(shù),機(jī)器數(shù)常用的表示方法有原碼、反碼和 補(bǔ)碼三種。數(shù)X的原碼記作X 反碼記作X反,補(bǔ)碼記 作兇訊它們的差別在于對(duì)負(fù)數(shù)的表示。(1)原
3、碼 定義: 符號(hào)位:0表示正,1表示負(fù); 數(shù)值位:真值的絕對(duì)值。注意:數(shù)0的原碼不唯一(2)反碼定義:若X>0 ,則兇反=兇原若X<0,則 以反=對(duì)應(yīng)原碼的符號(hào)位不變,數(shù)值部 分按位求反注意:數(shù)0的反碼也不唯一(3)補(bǔ)碼 定義: 若X>0,則兇補(bǔ)=兇反=兇原 若X<0,則兇補(bǔ)=X反+1注意:機(jī)器字長(zhǎng)為8時(shí),數(shù)0的補(bǔ)碼唯一,同為00000000 2、8位二進(jìn)制的表示范圍:原碼:-127+127反碼:-127+127補(bǔ)碼:-128+1273、特殊數(shù) 10000000該數(shù)在原碼中定義為:-0 在反碼中定義為:-127 在補(bǔ)碼中定義為:-128 對(duì)無(wú)符號(hào)數(shù):(10000000)
4、 2 = 128 三、信息的編碼1、十進(jìn)制數(shù)的二進(jìn)制數(shù)編碼用4位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù)。有兩種表示法:壓 縮BCD碼和非壓縮BCD碼。(1 )壓縮 BCD碼的每一位用4位二進(jìn)制表示,00001001表示09, 一個(gè)字節(jié)表示兩位十進(jìn)制數(shù)。(2)非壓縮BCD碼用一個(gè)字節(jié)表示一位十進(jìn)制數(shù),高4 位總是0000 ,低4位的00001001表示092、 字符的編碼計(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)始 順序遞增,字
5、母az的ASCII碼從1100001 (61H)開(kāi) 始順序遞增,這樣的排列對(duì)信息檢索十分有利。第二章微機(jī)組成原理1-計(jì)算機(jī)的經(jīng)典結(jié)構(gòu)一一馮.諾依曼結(jié)構(gòu)(1)計(jì)算機(jī)由運(yùn)算器、控制器、輸入設(shè)備和輸出設(shè)備五 大部分組成(運(yùn)算器和控制器又稱為 cpu(2)數(shù)據(jù)和程序以二進(jìn)制代碼形式不加區(qū)分地存放在存 儲(chǔ)器總,存放位置由地址指定,數(shù)制為二進(jìn)制。(3)控制器是根據(jù)存放在存儲(chǔ)器中的指令序列來(lái)操作的, 并由一個(gè)程序計(jì)數(shù)器控制指令的執(zhí)行。3、系統(tǒng)總線的分類(1)數(shù)據(jù)總線(Data Bus),它決定了處理器的字長(zhǎng)。(2)地址總線(Address Bus ),它決定系統(tǒng)所能直接訪 問(wèn)的存儲(chǔ)器空間的容量。(3)控制總
6、線(Control Bus )第二節(jié)、8086微處理器1、8086是一種單片微處理芯片,其內(nèi)部數(shù)據(jù)總線的寬度 是16位,外部數(shù)據(jù)總線寬度也是16位,片內(nèi)包含有控 制計(jì)算機(jī)所有功能的各種電路。8086地址總線的寬度為20位,有1MB (220)尋址空間。2、8086CPU由總線接口部件BIU和執(zhí)行部件EU組 成。BIU和EU的操作是異步的,為8086取指令和執(zhí)行指令的并行操作體統(tǒng)硬件支持。3、8086處理器的啟動(dòng)4、寄存器結(jié)構(gòu)8086微處理器包含有13個(gè)16位的寄存器和9位標(biāo)志位。4個(gè)通用寄存器(AX, BX, CX, DX)4個(gè)段寄存器(CS , DS , SS , ES )4個(gè)指針和變址寄存
7、器(SP , BP , SI, DI)指令指針(IP)1)、通用寄存器(1) 8086含4個(gè)16位數(shù)據(jù)寄存器,它們又可分為 8個(gè) 8位寄存器,即:AX AH, ALBX BH, BLCX CH, CLDX DH, DL常用來(lái)存放參與運(yùn)算的操作數(shù)或運(yùn)算結(jié)果(2)數(shù)據(jù)寄存器特有的習(xí)慣用法AX:累加器。多用于存放中間運(yùn)算結(jié)果。所有I/O指令 必須都通過(guò)AX與接口傳送信息;BX:基址寄存器。在間接尋址中用于存放基地址;CX:計(jì)數(shù)寄存器。用于在循環(huán)或串操作指令中存放循環(huán)次數(shù)或重復(fù)次數(shù);DX:數(shù)據(jù)寄存器。在32位乘除法運(yùn)算時(shí),存放高16 位數(shù);在間接尋址的I/O指令中存放I/O端口地址。2)、指針和變址寄
8、存器SP:堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂罚籅P:基址指針寄存器,常用于在訪問(wèn)內(nèi)存時(shí)存放內(nèi)存單 元的偏移地址。SI:源變址寄存器DI:目標(biāo)變址寄存器變址寄存器常用于指令的間接尋址或變址尋址。3)、段寄存器CS:代碼段寄存器,代碼段用于存放指令代碼DS:數(shù)據(jù)段寄存器ES:附加段寄存器,數(shù)據(jù)段和附加段用來(lái)存放操作數(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é)
9、果的低四位有進(jìn)位或借位,貝IJ AF=1溢出標(biāo)志位(OF):運(yùn)算結(jié)果有溢出,則 OF=1零標(biāo)志位(ZF):反映指令的執(zhí)行是否產(chǎn)生一個(gè)為零的 結(jié)果符號(hào)標(biāo)志位(SF):指出該指令的執(zhí)行是否產(chǎn)生一個(gè)負(fù) 的結(jié)果奇偶標(biāo)志位(PF):表示指令運(yùn)算結(jié)果的低8位“件數(shù) 是否為偶數(shù)(2)控制標(biāo)志位中斷允許標(biāo)志位(IF):表示CPU是否能夠響應(yīng)外部可 屏蔽中斷請(qǐng)求跟蹤標(biāo)志(TF) : CPU單步執(zhí)行5、8086的引腳及其功能(重點(diǎn)掌握以下引腳)AD15AD0:雙向三態(tài)的地址總線,輸入/輸出信號(hào)INTR:可屏蔽中斷請(qǐng)求輸入信號(hào),高電平有效??赏ㄟ^(guò) 設(shè)置IF的值來(lái)控制。NMI:非屏蔽中斷輸入信號(hào)。不能用軟件進(jìn)行屏蔽。
10、RESET :復(fù)位輸入信號(hào),高電平有效。復(fù)位的初始狀態(tài) 見(jiàn)P21MN/MX :最小最大模式輸入控制信號(hào)。第三章8086指令系統(tǒng)第一節(jié) 8086尋址方式一、數(shù)據(jù)尋址方式1、立即尋址操作數(shù)(為一常數(shù))直接由指令給出(此操作數(shù)稱為立即數(shù))立即尋址只能用于源操作數(shù)例:MOV AX, 1C8FHMOV BYTE PTR2A00H, 8FH錯(cuò)誤例:X MOV 2A00H,AX ;錯(cuò)誤!指令操作例:MOV AX,3102H; AX 3102H執(zhí)行后,(AH) = 31H, (AL) = 02H2、寄存器尋址(1)操作數(shù)放在某個(gè)寄存器中(2)源操作數(shù)與目的操作數(shù)字長(zhǎng)要相同(3)寄存器尋址與段地址無(wú)關(guān)例:MOV
11、 AX, BXMOV 3F00H, AXMOV CL, AL錯(cuò)誤例:X MOV AX,BL ;字長(zhǎng)不同X MOV ES:AX,DX ;寄存器與段無(wú)關(guān)3、直接尋址(1)指令中直接給出操作數(shù)的16位偏移地址偏移地址也稱為有效地址(EA, Effective Address)(2)默認(rèn)的段寄存器為DS,但也可以顯式地指定其他段 寄存器一一稱為段超越前綴(3)偏移地址也可用符號(hào)地址來(lái)表示,如 ADDR VAR 例:MOV AX ,2A00HMOV DX ,ES:2A00HMOV SI,TABLE_PTR4、間接尋址操作數(shù)的偏移地址(有效地址EA)放在寄存器中只有SI、DI、BX和BP可作間址寄存器例:
12、MOV AX,BXMOV CL,CS:DI錯(cuò)誤例:X MOV AX, DXx MOV CL, AX5、寄存器相對(duì)尋址EA=間址寄存器的內(nèi)容加上一個(gè)8/16位的位移量例: MOVAX,BX+8MOVCX,TABLESIMOVAX,BP;默認(rèn)段寄存器為SS指令操作例:MOVAX , DATABX若(DS)=6000H, (BX)=1000H, DATA=2A00H,(63A00H)=66H, (63A01H)=55H則物理地址 =60000H + 1000H + 2A00H = 63A00H指令執(zhí)行后:(AX) =5566H 6、基址變址尋址若操作數(shù)的偏移地址:由基址寄存器(BX或BP)給出 一一
13、基址尋址方式 由變址寄存器(SI或DI)給出 一一變址尋址方式由一個(gè)基址寄存器的內(nèi)容和一個(gè)變址寄存器的內(nèi)容 相加而形成操作數(shù)的偏移地址,稱為基址-變址尋 址。EA= (BX) + (SI)或(DI);EA= (BP) + (SI)或(DI)同一組內(nèi)的寄存器不能同時(shí)出現(xiàn)。注意:除了有段跨越前綴的Tf況外,當(dāng)基址寄存器為BX時(shí),操作數(shù)應(yīng)該存放在數(shù)據(jù)段 DS中,當(dāng)基址寄存器為 BP時(shí),操作數(shù)應(yīng)放在堆棧段 SS中。例:MOVAX,BX SIMOVAX,BX+SIMOVAX,DS: BP DI錯(cuò)誤例:x MOVAX, BX BPx MOVAX, DI SI指令操彳例:MOV AX,BXSI假定:(DS)
14、=8000H, (BX)=2000H,SI=1000H則物理地址 =80000H + 2000H + 1000H = 83000H指令執(zhí)行后:(AL)=83000H(AH)=83001H7、相對(duì)基址變址尋址在基址-變址尋址的基礎(chǔ)上再加上一個(gè)相對(duì)位移量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、器相對(duì)、尋址方式的比較:尋址方式寄存器間接一)寄存器相對(duì)基址一變址相對(duì)基址-變址基址變址、相對(duì)基址變址四種指令操作數(shù)形式只有一個(gè)寄存器(BX/BP/SI/DI之一個(gè)寄存器加上位移量?jī)蓚€(gè)不同類別的寄存器兩個(gè)不同類別的寄存器加上位移4類,能判斷)量二、地址尋址方式(了解有 簡(jiǎn)要判斷依據(jù)(指令中間的單詞)段內(nèi)直接 short,near段內(nèi)間接 word段間直接far段間間接 dword第二節(jié)8086指令系統(tǒng)一、數(shù)據(jù)傳送指令1、通用傳送指令(1) MOV dest, src; dest src傳送的是字節(jié)還是字取決于指令中涉及的寄存器是8位還是16位。具體來(lái)說(shuō)可實(shí)現(xiàn): MOV mem/reg1, me
16、m/reg2指令中兩操作數(shù)中至少有一個(gè)為寄存器MOV reg, data;立即數(shù)送寄存器MOV mem, data;立即數(shù)送存儲(chǔ)單元MOV acc, mem;存儲(chǔ)單元送累加器MOV mem, acc;累加器送存儲(chǔ)單元MOV segreg mem/reg存儲(chǔ)單元/寄存器送段寄存器MOV mem/reg, segreg;段寄存器送存儲(chǔ)單元/寄存器MOV指令的使用規(guī)則IP不能作目的寄存器不允許memmem不允許 segregsegreg立即數(shù)不允許作為目的操作數(shù)不允許segreg立即數(shù)源操作數(shù)與目的操作數(shù)類型要一致當(dāng)源操作數(shù)為單字節(jié)的立即數(shù),而目的操作數(shù)為間址、變址、基址+變址的內(nèi)存數(shù)時(shí),必須用PT
17、R說(shuō)明數(shù)據(jù)類型。如:MOV BX , 12H是錯(cuò)誤的。(2)、堆棧指令什么是堆棧?按后進(jìn)先出(LIFO)”方式工作的存儲(chǔ)區(qū)域。堆棧以字為 規(guī)定由SS指示堆棧段的段基址,堆棧指針 SP始終指 向堆棧的頂部,SP的初值規(guī)定了所用堆棧區(qū)的大小。 堆棧的最高地址叫棧底。壓棧指令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) (SP)
18、+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格式:XCHG reg, mem/reg功能:交換兩操作數(shù)的內(nèi)容。要求:兩操作數(shù)中必須有一個(gè)在寄存器中;操作數(shù)不能為段寄存器和立即數(shù);源和目地操作數(shù)類型要一致。舉例: XCHG AX, BX XCHG 2000, CL(4)查表指令XLAT執(zhí)行的操作:AL-(BX)+(AL)又叫查表轉(zhuǎn)換指令,它可根據(jù)表項(xiàng)序號(hào)查出表中對(duì)應(yīng) 代碼的內(nèi)容。執(zhí)行時(shí)先將表的首地址(偏移地址)送 到BX中,表項(xiàng)序號(hào)存于
19、AL中。2、輸入輸出指令只限于用累加器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 端口)單位進(jìn)行壓入彈出操作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 D
20、X, 220HIN AL , DX;將220H端口內(nèi)容讀入 AL3、目標(biāo)地址傳送指令(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ǔ)單元的偏移地址 取至ij BX中;后者表示將BUFFER存儲(chǔ)單元中的內(nèi)容取到 BX中。下面兩條指令等效:LEA
21、BX, BUFFERMOV BX, OFFSET BUFFER其中OFFSET BUFFER 表示存儲(chǔ)器單元BUFFER的偏移 地址。二者都可用于取存儲(chǔ)器單元的偏移地址,但LEA指令可以取動(dòng)態(tài)的地址,OFFSET只能取靜態(tài)的地址。二、算術(shù)運(yùn)算指令1、加法指令(1)不帶進(jìn)位的加法指令A(yù)DD格式: ADD acc,dataADD mem/reg,dataADD mem/reg1,mem/reg2實(shí)例:ADDAL, 30HADDSI, BX+20HADDCX, SIADDDI , 200H?ADD指令對(duì)6個(gè)狀態(tài)標(biāo)志均產(chǎn)生影響。例:已知(BX)=D75FH指令A(yù)DD BX,8046H執(zhí)行后,狀態(tài)標(biāo)志各
22、是多少?D75FH = 1110 0111 0101 11118046H = 1000 0000 0100 011011 11 110110 0111 1010 0101結(jié)果:C=1, Z=0, P=0, A=1, O=1, S=0判斷溢出與進(jìn)位從硬件的角度:默認(rèn)參與運(yùn)算的操作數(shù)都是有符號(hào)數(shù),當(dāng) 兩數(shù)的符號(hào)位相同,而和的結(jié)果相異時(shí)有溢出,則OF=1, 否則OF=0帶進(jìn)位的加法ADCADC指令在形式上和功能上與 ADD類似,只是相加時(shí)還 要包括進(jìn)位標(biāo)志CF的內(nèi)容,例如:ADCAL , 68H ; AL (AL)+68H+(CF)ADCAX , CX ;AX (AX)+(CX)+(CF)ADCBX
23、, DI ;BX(BX)+DI+1DI+(CF)(3)加1指令I(lǐng)NC格式:INC reg/mem功能:類似于C語(yǔ)言中的+操作:對(duì)指定的操作數(shù)加1例:INC ALINC SIINC BYTE PTRBX+4注:本指令不影響CF標(biāo)志。(4)非壓縮BCD碼加法調(diào)整指令 AAAAAA指令的操作:如果AL的低4位9或AF=1 ,則: AL(AL)+6,(AH) (AH)+1,AF -1AL高4位清零 CFAF否則AL高4位清零(5)壓縮BCD碼加法調(diào)整指令DAA兩個(gè)壓縮BCD碼相加結(jié)果在AL中,通過(guò)DAA調(diào)整得 到一個(gè)正確的壓縮BCD碼.指令操作(調(diào)整方法):若AL的低4位9或AF=1則(AL) (AL
24、)+6 , AF-1若AL的高4位9或CF=1則(AL) (AL)+60H , CF1除OF外,DAA指令影響所有其它標(biāo)志。DAA指令應(yīng)緊跟在ADD或ADC指令之后。2、減法指令(1)不考慮借位的減法指令SUB格式:SUB dest, src操作:dest (dest)-(src)注:1.源和目的操作數(shù)不能同時(shí)為存儲(chǔ)器操作數(shù)2.立即數(shù)不能作為目的操作數(shù)指令例子:SUB AL, 60HSUB BX+20H, DXSUB AX CX(2)考慮借位的減法指令SBBSBB指令主要用于多字節(jié)的減法。格式:SBB dest, src操作:dest (dest)-(src)-(CF)指令例子:SBB AX,
25、 CXSBB WORD PTRSI 2080HSBB SI,DX(3)減1指令DEC作用類似于C語(yǔ)言中的”操作符。格式:DEC opr操作:opr(opr)-1指令例子:DEC CLDEC BYTE PTRDI+2DEC SI(4)求補(bǔ)指令NEG格式:NEG opr操作:opr- 0-(opr)對(duì)一個(gè)操作數(shù)取補(bǔ)碼相當(dāng)于用 0減去此操作數(shù),故利用 NEG指令可得到負(fù)數(shù)的絕對(duì)值。例:若(AL)=0FCH,則執(zhí)行 NEG ALB,(AL)=04H , CF=1(5)比較指令CMP格式:CMP dest, src操作:(dest)-(src)CMP也是執(zhí)行兩個(gè)操作數(shù)相減,但結(jié)果不送目標(biāo)操作數(shù) 其結(jié)果只
26、反映在標(biāo)志位上。指令例子:CMP AL, 0AHCMP CX, SICMP DI, BX+03(6)非壓縮BCD碼減法調(diào)整指令A(yù)AS對(duì)AL中由兩個(gè)非壓縮的BC網(wǎng)相減的結(jié)果進(jìn)行調(diào)整。調(diào)整操作為:若AL的低4位9或AF=1,則: AL (AL)-6,AH (AH)-1,AF -1AL的高4位清零 CFAF否則:AL的高4位清零(7)壓縮BC網(wǎng)減法調(diào)整指令DAS對(duì)AL中由兩個(gè)壓縮BC網(wǎng)相減的結(jié)果進(jìn)行調(diào)整。調(diào)整 操作為:若AL的低4位9或AF=1,則:AL (AL)-6,且 A1若AL的高4位9或CF=1,則:AL (AL)-60H,且 C1DAS對(duì)OF無(wú)定義,但影響其余標(biāo)志位。DASJt令要求跟在減
27、法指令之后。3、乘法指令進(jìn)行乘法時(shí):8位*8位-16位乘積16位*16位-32位乘積(1)無(wú)符號(hào)數(shù)的乘法指令MUL(MEM/REG)格式:MUL src操作:字節(jié)操作數(shù)(AX)(AL) x (src)字操作數(shù)(DX, AX)-(AX) x (src)指令例子:MUL BL ; (AL) X(BL),乘積在 AX中MUL CX ; (AX) X (CX),乘積在 DX,AX中MUL BYTE PTRBX關(guān)于除法操作中的字長(zhǎng)擴(kuò)展問(wèn)題(2)有符號(hào)數(shù)乘法指令I(lǐng)MUL?除法運(yùn)算要求被除數(shù)字長(zhǎng)是除數(shù)字長(zhǎng)的兩倍,若不滿足格式與MUL指令類似,只是要求兩操作數(shù)均為有符號(hào) 則需對(duì)被除數(shù)進(jìn)行擴(kuò)展,否則產(chǎn)生錯(cuò)誤。數(shù)
28、。指令例子:IMUL BL ; (AX) (AL) %BL)的符號(hào)擴(kuò)展指令CBW和CWD?對(duì)于無(wú)符號(hào)數(shù)除法擴(kuò)展,只需將 AH或DX清零即可。?對(duì)有符號(hào)數(shù)而言,則是符號(hào)位的擴(kuò)展。可使用前面介紹過(guò)IMUL WORD PTRSI;(DX,AX) (AX)X(SI+1SI)三、邏輯運(yùn)算和移位指令(1)邏輯與AND1、邏輯運(yùn)算指令注意:MUL/IMU廿旨令中 AL(AX)為隱含的乘數(shù)寄存器;對(duì)兩個(gè)操作數(shù)進(jìn)行按位邏輯“與”操作。 AX(DX,AX)為隱含的乘積寄存器; SRC不能為立即數(shù);格式:AND dest, src用途:保留操作數(shù)的某幾位,清零其他位。AND AL,0FH(2)邏輯或OR對(duì)兩個(gè)操作數(shù)
29、進(jìn)行按位邏輯”或“操作。皮除數(shù)商余數(shù)格式:字節(jié)除法AXALAH用途:字除法 DX:AXAXDX對(duì)被除數(shù)、商及余數(shù)存放有如下規(guī)定:OR dest, src對(duì)操作數(shù)的某幾位置例1:1;對(duì)兩操作數(shù)進(jìn)行組合。(1)無(wú)符號(hào)數(shù)除法指令DIVASCII把AL中的非壓縮碼。BCD碼變成相應(yīng)十進(jìn)制數(shù)的格式:DIV srcOR AL, 30H操作:字節(jié)操作(AL) (AX) / (SRC)的商字操作(AH)(AX) / (SRC)的余數(shù)(3)邏輯非NOT(AX) 一(DX, AX) / (SRC)的商對(duì)操作數(shù)進(jìn)行按位邏輯"非"操作。格式:NOT mem/reg除CF和OF外,對(duì)其它標(biāo)志位無(wú)定義
30、。仞1 :保留AL中低4位,高4位清0。4、除法指令進(jìn)行除法時(shí):16位/8位-8位商32位/16位16位商(DX) 一(DX, AX) / (SRC) 的余數(shù)例:NOT CX指令例子:DIV CLNOT BYTE PTRDIDIV WORD PTRBX(4)邏輯異或XOR(2)有符號(hào)數(shù)除法指令I(lǐng)DIV 對(duì)兩個(gè)操作數(shù)按位進(jìn)行“異或"操作。格式:IDIV src格式:XOR dest, src操作與DIV類似。商及余數(shù)均為有符號(hào)數(shù),且余數(shù)用途:對(duì)reg清零(自身異或)符號(hào)總是與被除數(shù)符號(hào)相同。把reg/mem的某幾位變反(與'1'異或)注意:對(duì)于DIV/IDIV 指令A(yù)X
31、(DX,AX)為隱含的被除數(shù)寄存器。AL(AX)為隱含的商寄存器。仞1 :把AX寄存器清零。 MOV AX,0AH(DX)為隱含的余數(shù)寄存器。XORAX,AXsrc不能為立即數(shù)。對(duì)所有條件標(biāo)志位均無(wú)定SUBAX,AXANDAX,0(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)移位指令算術(shù)左移指令 SAL(Shift Arithme
32、tic Left)算術(shù)右移指令 SAR(Shift Arithmetic Right)邏輯左移指令SHL(Shift Left)邏輯右移指令SHR(Shift Right)這4條指令的格式相同,以SAL為例:CL.;移位位數(shù)大于1時(shí)SAL mem/reg-t1 1;移位位數(shù)等于1時(shí)算術(shù)移位一一把操作數(shù)看做有符號(hào)數(shù);邏輯移位一一把操作數(shù)看做無(wú)符號(hào)數(shù)。移位位數(shù)放在CL寄存器中,如果只移1位,也可以直接寫(xiě)在指令中。例如:MOV CL,4SHR AL,CL ; AL中的內(nèi)容右移4位影響C,PS,Z,O標(biāo)志。結(jié)果未溢出時(shí):左移1位三操作數(shù)*2右移1位三操作數(shù)/2例:把AL中的數(shù)x乘10因?yàn)?0=8+2=
33、23+21,所以可用移位實(shí)現(xiàn)乘10操作。程序如下:MOVCL,3SALAL,1;2xMOVAH,ALSALAL,1;4xSALAL,1;8xADDAL,AH;8x+2x = 10x四、控制轉(zhuǎn)移指令1、轉(zhuǎn)移指令(1)無(wú)條件轉(zhuǎn)移指令JMP格式:JMP label本指令無(wú)條件轉(zhuǎn)移到指定的目標(biāo)地址,以執(zhí)行從該地址 開(kāi)始的程序段。(2)條件轉(zhuǎn)移指令(補(bǔ)充內(nèi)容)根據(jù)單個(gè)標(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)
34、,則轉(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)移指令這類指令主要用來(lái)判斷兩個(gè)數(shù)的大小。判斷無(wú)符號(hào)數(shù)的大小JA 高于則轉(zhuǎn)移條件為:CF=0八ZF=0,即A>BJNA/JBE低于或等于則轉(zhuǎn)移條件為:CF=1VZF=1,即 A? BJB A<B則轉(zhuǎn)移JNB A? B則轉(zhuǎn)移判斷有符號(hào)數(shù)的大小JG ;大于則轉(zhuǎn)移(A>B)條件為:(SF® OF=0)八 ZF=0JGE;大于或等于則轉(zhuǎn)移(A? B)條件為:(SF® OF=0)VZF=1 JL
35、E;小于或等于則轉(zhuǎn) 移(A? B)條件為:(SF® OF=1)VZF=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格式:LOOP label操作:(CX)-1-CX;若(CX)w0,則轉(zhuǎn)至label處執(zhí)行;否則退出循環(huán),執(zhí)行LOOP后面的指令。LOOP指令與下面的指令段等價(jià):DEC CXJNZ labelDB用來(lái)定義字節(jié)(BYTE )DW用來(lái)定義字(WORD )DD用來(lái)定義雙字(DWORD)
36、3、過(guò)程調(diào)用指令(2)操作數(shù)的類型可以是:常數(shù)或常數(shù)表達(dá)式例如: DATA_BYTE DB 10,5,10HDATA_WORD DW 100H,100,-4DATA_DW DD 2*30,0FFFBH(1)調(diào)用指令CALL一般格式:CALL sub ;sub為子程序的入口4、中斷指令(1)INT n 執(zhí)行類型n的中斷服務(wù)程序,N=0255五、處理器控制指令1、標(biāo)志位操作(1) CF設(shè)置指令CLC 0 -CFSTC 1fCFCMC CF變反(2) DF設(shè)置指令CLD0-DF (串操作的指針移動(dòng)方向從低到高)STD 1-DF (串操作的指針移動(dòng)方向從高到 低)(3) IF設(shè)置指令CLI 0TF (禁止 INTR 中斷) STI 1 f IF (開(kāi)放INTR中斷)可以為字符串(定義字符串最好使用 DB)例如:char1 DB ,AB?可以為變量可以為?號(hào)操作符例如:X DB 5, ? , 6?號(hào)只是為了給變量保留相應(yīng)的存儲(chǔ)單元, 而不賦予變 量某個(gè)確定的初值。重復(fù)次數(shù):N DUP (初值,初值-)例如:ZERO DB 2 DUP (3, 5)XYZ DB 2 DUP (0,2 DUP (1,3), 5)在偽操作的操作數(shù)字段中若使用 $,則表示的是地址計(jì)數(shù)器的當(dāng)前值。2、補(bǔ)充內(nèi)容:(1)類型 PTR 地址
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 完善復(fù)習(xí)資料的選擇公共營(yíng)養(yǎng)師試題及答案
- 安全吊裝合同協(xié)議
- 定制機(jī)械改裝合同協(xié)議
- 定制柜子訂購(gòu)合同協(xié)議
- 安裝門(mén)業(yè)合同協(xié)議
- 定制酒品合同協(xié)議
- 賓館承包合作合同協(xié)議
- 婚后貸款認(rèn)定協(xié)議書(shū)模板
- 學(xué)校超市食品合同協(xié)議
- 孩子入學(xué)勞務(wù)合同協(xié)議
- 電信行業(yè)用戶欠費(fèi)催收策略與措施
- 銀行資格考試分析與策略試題及答案
- 多式聯(lián)運(yùn)風(fēng)險(xiǎn)管理與優(yōu)化-全面剖析
- 2025年博士思政面試題及答案
- 專題12 將軍飲馬模型(解析版)
- 廣東省深圳市深圳實(shí)驗(yàn)學(xué)校等校聯(lián)考2024-2025學(xué)年九年級(jí)下學(xué)期開(kāi)學(xué)考試語(yǔ)文試題(含答案)
- GB/T 25020.1-2025電氣化鐵路接觸網(wǎng)支柱第1部分:鋼支柱
- 2025年浙江安防職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)1套
- 《園林景觀手繪技法表現(xiàn)》課件-項(xiàng)目2 景觀元素的表現(xiàn)技法
- 治療室換藥室消毒管理制度
- 2025版輪胎進(jìn)出口貿(mào)易與代理服務(wù)合同范本4篇
評(píng)論
0/150
提交評(píng)論