




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、微型計算機(jī)原理及應(yīng)用技術(shù)清華大學(xué)出版社清華大學(xué)出版社微型計算機(jī)概述微型計算機(jī)概述8086微處理器微處理器8086的尋址方式和指令系統(tǒng)的尋址方式和指令系統(tǒng)微型計算機(jī)和外設(shè)的數(shù)據(jù)傳輸微型計算機(jī)和外設(shè)的數(shù)據(jù)傳輸串并行通信和接口技術(shù)串并行通信和接口技術(shù)中斷控制器、中斷控制器、DMA控制器和計數(shù)器控制器和計數(shù)器/定時器定時器模模/數(shù)和數(shù)數(shù)和數(shù)/模轉(zhuǎn)換模轉(zhuǎn)換鍵盤和鍵盤和LED顯示顯示時段數(shù)據(jù)處理代表產(chǎn)品制造工藝集成度(管/片)時鐘頻率執(zhí)行時間第一代19714位低檔8位Intel4004Intel4040、8008PMOS20001MHz20 us第二代1974高檔8位Intel8080、8085Z80MC
2、6800、6802NMOS840024MHz12 us第三代197816位Intel8086、8088Z8000MC68000HMOS200006000048MHz0.5 us1980高檔16位Intel80286MC6801010000010MHz0.2 us第四代198032位Intel80386、80486Z80000MC6802015000050000016100MHz0.1 us第五代1993Pentium系列5000000以上150MHz以上微處理器也稱微處理器也稱CPU,是由大規(guī)模集成電路組成的,是由大規(guī)模集成電路組成的, 本身具本身具有運算能力和控制能力,能執(zhí)行一定的指令系統(tǒng)的
3、器件,是有運算能力和控制能力,能執(zhí)行一定的指令系統(tǒng)的器件,是微型計算機(jī)的核心。微型計算機(jī)的核心。一般具有下列功能:一般具有下列功能:可以進(jìn)行算術(shù)和邏輯運算可以進(jìn)行算術(shù)和邏輯運算可以保存少量數(shù)據(jù)可以保存少量數(shù)據(jù)能和存儲器、外設(shè)交換數(shù)據(jù)能和存儲器、外設(shè)交換數(shù)據(jù)能對指令進(jìn)行譯碼并執(zhí)行指令規(guī)定的動作能對指令進(jìn)行譯碼并執(zhí)行指令規(guī)定的動作提供整個系統(tǒng)所需要的控制信號和定時時鐘提供整個系統(tǒng)所需要的控制信號和定時時鐘完成程序流向控制完成程序流向控制 算術(shù)邏輯部件(算術(shù)邏輯部件(ALU)專門用來處理各種數(shù)據(jù)信息,可進(jìn)行加、減、乘、除算術(shù)運算專門用來處理各種數(shù)據(jù)信息,可進(jìn)行加、減、乘、除算術(shù)運算和與、或、非、異或
4、等邏輯運算。和與、或、非、異或等邏輯運算。累加器累加器功能:作為功能:作為ALU的一個操作數(shù)輸入端。的一個操作數(shù)輸入端。用于存放用于存放ALU的運算結(jié)果。的運算結(jié)果。輸入輸入/輸出指令一般也通過累加器來完成。輸出指令一般也通過累加器來完成。通用寄存器通用寄存器功能:用來暫時存放參加運算的操作數(shù)、中間結(jié)果或地址。功能:用來暫時存放參加運算的操作數(shù)、中間結(jié)果或地址。暫存寄存器(暫存寄存器(TMP)功能:用來暫存從數(shù)據(jù)總線或通用寄存器送來的操作數(shù),并功能:用來暫存從數(shù)據(jù)總線或通用寄存器送來的操作數(shù),并將該數(shù)據(jù)送入將該數(shù)據(jù)送入ALU進(jìn)行運算,同時,它也能將數(shù)據(jù)送到內(nèi)部數(shù)進(jìn)行運算,同時,它也能將數(shù)據(jù)送到
5、內(nèi)部數(shù)據(jù)總線。據(jù)總線。標(biāo)志寄存器(標(biāo)志寄存器(F)功能:用來保存功能:用來保存ALU操作結(jié)果的特殊狀態(tài)。操作結(jié)果的特殊狀態(tài)。指令部件指令部件PC)PC)功能:存放指令地址。功能:存放指令地址。程序執(zhí)行過程中,首先由程序執(zhí)行過程中,首先由PCPC指出當(dāng)前要執(zhí)行指令的地址,指出當(dāng)前要執(zhí)行指令的地址,當(dāng)該指令取出后,當(dāng)該指令取出后,PCPC的內(nèi)容會自動加的內(nèi)容會自動加1 1(除轉(zhuǎn)移指令外),(除轉(zhuǎn)移指令外),指向按順序排列的下一條指令的地址。指向按順序排列的下一條指令的地址。指令寄存器指令寄存器IRIR功能:存放當(dāng)前要執(zhí)行的指令的內(nèi)容。功能:存放當(dāng)前要執(zhí)行的指令的內(nèi)容。包括操作碼和地址碼兩部分。操作
6、碼送往指令譯碼器,包括操作碼和地址碼兩部分。操作碼送往指令譯碼器,地址碼送至操作數(shù)地址形成電路。地址碼送至操作數(shù)地址形成電路。指令譯碼器指令譯碼器IDID功能:分析指令功能,產(chǎn)生相應(yīng)操作的控制電位。功能:分析指令功能,產(chǎn)生相應(yīng)操作的控制電位。堆棧指示器(堆棧指針)堆棧指示器(堆棧指針)SPSP時序部件時序部件:用來產(chǎn)生計算機(jī)各部件所需的定時信號。用來產(chǎn)生計算機(jī)各部件所需的定時信號。時鐘系統(tǒng)時鐘系統(tǒng) 脈沖源脈沖源 功能:產(chǎn)生具有一定頻率和脈寬的脈沖信號(主脈功能:產(chǎn)生具有一定頻率和脈寬的脈沖信號(主脈沖)。一般采用石英晶體振蕩器,因為它頻率穩(wěn)定。沖)。一般采用石英晶體振蕩器,因為它頻率穩(wěn)定。 時
7、鐘啟停邏輯時鐘啟停邏輯 功能:控制啟停主脈沖信號開關(guān),按指令要求,開啟功能:控制啟停主脈沖信號開關(guān),按指令要求,開啟或關(guān)閉時鐘脈沖序列?;蜿P(guān)閉時鐘脈沖序列。脈沖分配器脈沖分配器 功能:產(chǎn)生計算機(jī)各部分所需要的能按一定順序逐個功能:產(chǎn)生計算機(jī)各部分所需要的能按一定順序逐個出現(xiàn)的節(jié)拍電位或節(jié)拍脈沖的定時信號,以控制和協(xié)調(diào)計算出現(xiàn)的節(jié)拍電位或節(jié)拍脈沖的定時信號,以控制和協(xié)調(diào)計算機(jī)各部分有節(jié)奏的動作。機(jī)各部分有節(jié)奏的動作。微操作控制部件微操作控制部件 計算機(jī)在執(zhí)行一條指令時,總是把一條指令分成若計算機(jī)在執(zhí)行一條指令時,總是把一條指令分成若干基本操作,稱為微操作。干基本操作,稱為微操作。 根據(jù)指令產(chǎn)生計
8、算機(jī)各部件所需要的控制信號。根據(jù)指令產(chǎn)生計算機(jī)各部件所需要的控制信號。 這些控制信號是由指令譯碼器的輸出電位、脈沖發(fā)這些控制信號是由指令譯碼器的輸出電位、脈沖發(fā)生器產(chǎn)生的節(jié)拍電位、節(jié)拍脈沖以及外部的狀態(tài)信號等生器產(chǎn)生的節(jié)拍電位、節(jié)拍脈沖以及外部的狀態(tài)信號等進(jìn)行組合而產(chǎn)生的。進(jìn)行組合而產(chǎn)生的。 微操作控制部件按一定的時間順序發(fā)出一系列微操微操作控制部件按一定的時間順序發(fā)出一系列微操作控制信號,以完成指令所規(guī)定的全部操作。作控制信號,以完成指令所規(guī)定的全部操作。 由由CPU、存儲器、存儲器、I/O接口電路和系統(tǒng)總線等構(gòu)成的一個完整的計算機(jī)。接口電路和系統(tǒng)總線等構(gòu)成的一個完整的計算機(jī)。 有了總線結(jié)構(gòu)
9、,系統(tǒng)中各功能部件之間的相互關(guān)系就變?yōu)楦鱾€部有了總線結(jié)構(gòu),系統(tǒng)中各功能部件之間的相互關(guān)系就變?yōu)楦鱾€部件面向總線的單一關(guān)系。一個部件只要符合總線標(biāo)準(zhǔn),就可以連件面向總線的單一關(guān)系。一個部件只要符合總線標(biāo)準(zhǔn),就可以連接到采用這種總線標(biāo)準(zhǔn)的系統(tǒng)中,從而使系統(tǒng)很容易得到擴(kuò)展。接到采用這種總線標(biāo)準(zhǔn)的系統(tǒng)中,從而使系統(tǒng)很容易得到擴(kuò)展。 以微型計算機(jī)為主體,配上系統(tǒng)軟件和外設(shè),以微型計算機(jī)為主體,配上系統(tǒng)軟件和外設(shè),就構(gòu)成了微型計算機(jī)系統(tǒng)。就構(gòu)成了微型計算機(jī)系統(tǒng)。 系統(tǒng)軟件系統(tǒng)軟件 常用的名詞術(shù)語常用的名詞術(shù)語1.1. 具有十六個不同的數(shù)字符號,即具有十六個不同的數(shù)字符號,即0-90-9和和A-FA-F三種
10、數(shù)制對照三種數(shù)制對照表表余余0 0 【1-3】 10100+1101=100001 10100+1101=100001 【1-4】 100001-10100=1101100001-10100=1101 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 + 1 1 0 1 - 1 1 0 1 0 + 1 1 0 1 - 1 1 0 1 0 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 【1-5】 110111011011=10001111 1011=10001111 【1-6】 1110011100101=101101=10
11、11111 1 1 0 1 1 0 1 1 1 0 1 1 0 1 商商 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 + 1 1 0 1 1 1 + 1 1 0 1 1 1 1 0 0 0 1 1 1 11 0 0 0 1 1 1 1 X+0X+0 = = 補碼補碼3.補碼的定義補碼的定義求法與應(yīng)用求法與應(yīng)用 47主要內(nèi)容: 指令系統(tǒng)的一般概念 對操作數(shù)的尋址方式 六大類指令的操作原理:操作碼
12、的含義操作碼的含義指令對操作數(shù)的要求指令對操作數(shù)的要求指令執(zhí)行的結(jié)果指令執(zhí)行的結(jié)果8086的尋址方式和指令系統(tǒng)的尋址方式和指令系統(tǒng) 3.3.4 3.3.4 串操作指令串操作指令 49回憶一、指令與指令系統(tǒng)指令:控制計算機(jī)完成某種操作的命令指令系統(tǒng):處理器所能識別的所有指令的集合指令的兼容性:同一系列機(jī)的指令都是兼容的。50指令中應(yīng)包含的信息:運算數(shù)據(jù)的來源運算數(shù)據(jù)的來源運算結(jié)果的去向運算結(jié)果的去向執(zhí)行的操作執(zhí)行的操作51操作碼 操作數(shù),操作數(shù)執(zhí)行何種操作執(zhí)行何種操作目標(biāo)操作數(shù)目標(biāo)操作數(shù)源操作數(shù)源操作數(shù)參加操作的數(shù)據(jù)或數(shù)據(jù)存放的地址參加操作的數(shù)據(jù)或數(shù)據(jù)存放的地址52立即數(shù)寄存器存儲器表征參加操作
13、的數(shù)據(jù)本身表征參加操作的數(shù)據(jù)本身表征數(shù)據(jù)存放的地址表征數(shù)據(jù)存放的地址53立即數(shù)操作數(shù) 立即數(shù)本身是參加操作的數(shù)據(jù),可以是8位或16位,只能作為源操作數(shù)。 例: MOV AX,1234H MOV BL,22H 立即數(shù)無法作為目標(biāo)操作數(shù) 立即數(shù)可以是無符號或帶符號數(shù),其數(shù)值應(yīng)在可取值范圍內(nèi)。54寄存器操作數(shù) 參加運算的數(shù)存放在指令給出的寄存器中,可以是16位或8位。 例: MOV AX,BX MOV DL,CH55存儲器操作數(shù) 參加運算的數(shù)存放在存儲器的某一個或某兩個單元中。 表現(xiàn)形式: 立即數(shù)或寄存器立即數(shù)或寄存器 中的內(nèi)容是存放所尋找數(shù)據(jù)的單元的偏移地址中的內(nèi)容是存放所尋找數(shù)據(jù)的單元的偏移地址
14、56存儲器操作數(shù)例 例: MOV AX,1200H MOV AL,1200H22H11H1200H偏移地址偏移地址AH AL 57 指令的字長影響指令的執(zhí)行速度 對不同的操作數(shù),指令執(zhí)行的時間不同: 存儲器快!快!立即數(shù)立即數(shù)寄存器寄存器指令字長:指令字長:由操作碼的長度、操作數(shù)地址長度、操作數(shù)由操作碼的長度、操作數(shù)地址長度、操作數(shù)個數(shù)決定。個數(shù)決定。尋找操作數(shù)所在地址的方法尋找操作數(shù)所在地址的方法59 操作數(shù)可能的來源或存放處: 由指令直接給出 寄存器 內(nèi)存單元 尋找操作數(shù)所在地址的方法可以有三種大類型 指令直接給出的方式 存放于寄存器中的尋址方式 存放于存儲器中的尋址方式3.2.1 3.2
15、.1 立即尋址立即尋址3.2.2 寄存器尋址寄存器尋址3.2.3 直接尋址直接尋址 如指令前面沒有用前綴指明操作數(shù)在哪一段,則默認(rèn)段寄存器如指令前面沒有用前綴指明操作數(shù)在哪一段,則默認(rèn)段寄存器為數(shù)據(jù)段寄存器為數(shù)據(jù)段寄存器DS。例:例:MOV AX ,1070H ;將;將DS:1070H的內(nèi)容送到的內(nèi)容送到AL DS:1071H的內(nèi)容送到的內(nèi)容送到AH如要對其他段寄存器所指出的存儲區(qū)進(jìn)行直接尋址,則本條指如要對其他段寄存器所指出的存儲區(qū)進(jìn)行直接尋址,則本條指令前必須用前綴指出段寄存器名。令前必須用前綴指出段寄存器名。例:例:CS:MOV AX ,1070H ;將;將CS:1070H的內(nèi)容送到的內(nèi)
16、容送到AL CS:1071H的內(nèi)容送到的內(nèi)容送到AH或或 MOV AX , CS:1070H3.2.4 寄存器間接尋址寄存器間接尋址 特點:特點:1、操作數(shù)實際一定存放在存儲器中。、操作數(shù)實際一定存放在存儲器中。2、寄存器可以也只可以為:、寄存器可以也只可以為:BX、BP、SI、DI。3、源操作數(shù)或者目的操作數(shù)。、源操作數(shù)或者目的操作數(shù)。4、采用間接尋址的寄存器要用、采用間接尋址的寄存器要用“ ”括起來。括起來。注意:注意:1、如指令前面沒有用前綴指明操作數(shù)在哪一段,則默認(rèn)段寄存器為數(shù)據(jù)、如指令前面沒有用前綴指明操作數(shù)在哪一段,則默認(rèn)段寄存器為數(shù)據(jù)段寄存器段寄存器DS;但若寄存器為;但若寄存器
17、為BP,則默認(rèn)段寄存器為數(shù)據(jù)段寄存器,則默認(rèn)段寄存器為數(shù)據(jù)段寄存器SS。2、如果要改變段寄存器,則必須在該指令前加前綴指出。、如果要改變段寄存器,則必須在該指令前加前綴指出。3、采用寄存器間接尋址時,允許在指令中指定一個位移量,這樣,有效、采用寄存器間接尋址時,允許在指令中指定一個位移量,這樣,有效地址就是寄存器的內(nèi)容加上位移量得到。位移量可為地址就是寄存器的內(nèi)容加上位移量得到。位移量可為8位,也可為位,也可為16位。位。65寄存器間接尋址 由寄存器間接給出操作數(shù)的偏移地址; 存放偏移地址的寄存器稱為間址寄存器,它們是:BX,BP,SI,DI 操作數(shù)的段地址(數(shù)據(jù)處于哪個段)取決于選擇哪一個間
18、址寄存器: BX,SI,DI BP默認(rèn)在數(shù)據(jù)段默認(rèn)在數(shù)據(jù)段默認(rèn)在堆棧段默認(rèn)在堆棧段66寄存器間接尋址 寄存器間接尋址基址尋址(間址基址尋址(間址寄存器為基址寄存寄存器為基址寄存 器器BX,BP)變址尋址(間址變址尋址(間址寄存器為變址寄存寄存器為變址寄存 器器SI,DI) 若要對其他段寄存器所指的區(qū)域進(jìn)行尋址,則必須在該若要對其他段寄存器所指的區(qū)域進(jìn)行尋址,則必須在該指令前用前綴指出段寄存器名。指令前用前綴指出段寄存器名。例:若例:若ES=3000H,BX=3000HES:MOV AX ,BX ;將;將33000H單元的內(nèi)容送到單元的內(nèi)容送到AL 33001H單元的內(nèi)容送到單元的內(nèi)容送到AH
19、+ 若用若用BP寄存器,則默寄存器,則默認(rèn)的段寄存器是認(rèn)的段寄存器是SS,若用若用BX寄存器,則默寄存器,則默認(rèn)的段寄存器是認(rèn)的段寄存器是DS。 在寄存器間接尋址時在指令中加入了一個在寄存器間接尋址時在指令中加入了一個8位或位或16位位移量。位位移量。 +格式:格式: MOV AX , BX+6 MOV AX , 6BX MOV AX , BX+6 1MOV(Move):傳送指令):傳送指令MOV指令的格式為:指令的格式為:MOV dst,src ;dstsrc功能:將源操作數(shù)功能:將源操作數(shù)src復(fù)制到目的操作數(shù)復(fù)制到目的操作數(shù)dst中,結(jié)果目的操作中,結(jié)果目的操作數(shù)的內(nèi)容等于源操作數(shù)的內(nèi)容
20、,源操作數(shù)數(shù)的內(nèi)容等于源操作數(shù)的內(nèi)容,源操作數(shù)src的內(nèi)容不變。的內(nèi)容不變。對標(biāo)志位的影響:無對標(biāo)志位的影響:無語法格式:語法格式:MOV reg/mem/seg ,reg/mem/seg/imm MOV WORD PTR1000H ,AX MOV CS:BX+SI+100 ,AX MOV BYTE PTRBX ,AL MOV SI ,AL MOV AX ,BX MOV AX ,ES:BX+SI+100 MOV ES ,DX MOV DS ,AX MOV SS ,BX MOV ES ,SS:DI+100 MOV DX ,DS MOV BX ,ES MOV WORDPTRBX+SI+200 ,S
21、S MOV BX ,CS MOV DX ,AX MOV BL ,DH MOV CX ,DI MOV DX ,SI+100 MOV DI ,BX+DI+200 MOV WORD PTRDI ,DX MOV WORD PTRBX+SI+200 ,DI MOV AX ,77H ;默認(rèn)為;默認(rèn)為0077H MOV AL ,77H MOV DI ,6180H MOV WORD PTRBX+SI+500 ,1000H MOV BYTE PTRDI ,66 MOV DS:BP ,6180H 通用傳送指令可傳送通用傳送指令可傳送8位數(shù)據(jù),也可傳送位數(shù)據(jù),也可傳送16位數(shù)據(jù),具體位數(shù)據(jù),具體決定于指令中涉及的寄
22、存器是決定于指令中涉及的寄存器是8為還是為還是16位。位。 MOV CX ,AL (X) MOV CL ,AX (X) 通用傳送指令中總是即有源操作數(shù),又有目的操作數(shù),并通用傳送指令中總是即有源操作數(shù),又有目的操作數(shù),并且兩者之中至少有一個要用寄存器來指出。且兩者之中至少有一個要用寄存器來指出。不能在兩個內(nèi)存單元之間直接傳送數(shù)據(jù)。不能在兩個內(nèi)存單元之間直接傳送數(shù)據(jù)。 MOV seg , seg ;錯誤;錯誤 MOV mem ,mem ;錯誤;錯誤CS、IP這兩個寄存器不能作為目的操作數(shù)。這兩個寄存器不能作為目的操作數(shù)。用用BX、SI、DI來間接尋址時,默認(rèn)的段寄存器是來間接尋址時,默認(rèn)的段寄存
23、器是DS;用;用BP來間接尋址時,默認(rèn)的段寄存器是來間接尋址時,默認(rèn)的段寄存器是SS。在修改在修改SS和和SP的指令之間不要插入其他指令。的指令之間不要插入其他指令。所有的通用傳送指令都不改變狀態(tài)標(biāo)志。所有的通用傳送指令都不改變狀態(tài)標(biāo)志。 例:錯誤的例:錯誤的MOV 指令如下所示:指令如下所示:MOV AX,BL ;類型不匹配;類型不匹配MOV DS,1000H ;不允許立即數(shù)送段寄存器;不允許立即數(shù)送段寄存器MOV BX ,SI ;不允許內(nèi)存操作數(shù)之間傳送;不允許內(nèi)存操作數(shù)之間傳送MOV ES,CS ;不允許段寄存器之間傳送;不允許段寄存器之間傳送MOV CS,AX ;CS不能作為目的操作數(shù)
24、不能作為目的操作數(shù)例:設(shè)例:設(shè)A、B是已定義的字節(jié)變量,以下是一些錯誤和正確的指是已定義的字節(jié)變量,以下是一些錯誤和正確的指令。令。MOV AX,B ;錯誤,類型不匹配;錯誤,類型不匹配MOV A,0 ;正確,;正確,MASM可以判斷出要送字節(jié)可以判斷出要送字節(jié)02.堆棧指令堆棧指令堆棧概念堆棧概念 - 存儲器的一段區(qū)域,按存儲器的一段區(qū)域,按“先進(jìn)后出先進(jìn)后出”的原則進(jìn)行存出操作。的原則進(jìn)行存出操作。8086/8088系統(tǒng),堆棧位于堆棧系統(tǒng),堆棧位于堆棧段,其段地址由段,其段地址由SS指示,指示,SP寄存器作為指針,寄存器作為指針,SP內(nèi)容內(nèi)容始終指向棧頂所在存儲單元。始終指向棧頂所在存儲單
25、元。作用:在調(diào)用一個過程時,保存返回地址;暫時存放作用:在調(diào)用一個過程時,保存返回地址;暫時存放寄存器或存儲器單元操作數(shù)的內(nèi)容。寄存器或存儲器單元操作數(shù)的內(nèi)容。 堆棧堆棧SP:01F8SP:01FASP:01FCSP:01FESPAA BB(執(zhí)行(執(zhí)行PUSH AX之前)之前)堆棧堆棧SP:01F8SP:01FASP:01FCSP:01FESPAA BB(執(zhí)行(執(zhí)行PUSH AX之后)之后)1101H1101H AX堆棧堆棧SP:01F8SP:01FASP:01FCSP:01FESPAA BB(執(zhí)行(執(zhí)行POP AX之后)之后)1101H AX123堆棧操作總是按字操作的。堆棧操作總是按字操作
26、的。每執(zhí)行一條壓棧指令,堆棧指針減每執(zhí)行一條壓棧指令,堆棧指針減2,推入堆棧的數(shù)據(jù)放在棧頂,推入堆棧的數(shù)據(jù)放在棧頂,低位字節(jié)放在較低地址單元(真正的棧頂單元),高位字節(jié)放低位字節(jié)放在較低地址單元(真正的棧頂單元),高位字節(jié)放在較高單元。出棧時正好相反,每彈出一個字,堆棧指針加在較高單元。出棧時正好相反,每彈出一個字,堆棧指針加2。CS寄存器的值可以壓入堆棧,但不能從堆棧中彈出值到寄存器的值可以壓入堆棧,但不能從堆棧中彈出值到CS。一定要遵循一定要遵循“先進(jìn)后出先進(jìn)后出”的原則。的原則。直接的輸入直接的輸入/輸出指令輸出指令格式:格式: IN AL IN AL ,PORT OUT PORT PO
27、RT OUT PORT ,AL AL ;字節(jié);字節(jié)IN AX IN AX ,PORT OUT PORT PORT OUT PORT ,AX AX ;字;字PORTPORT:外設(shè)的端口地址:外設(shè)的端口地址例:例:IN AL IN AL ,50H 50H ;將;將50H50H端口的字節(jié)讀入端口的字節(jié)讀入ALAL IN AX IN AX ,70H 70H ;將;將70H70H端口的字節(jié)讀入端口的字節(jié)讀入ALAL, 將將71H71H端口的字節(jié)讀入端口的字節(jié)讀入AHAH。 IN AX IN AX ,71H 71H ;將;將71H71H端口的字節(jié)讀入端口的字節(jié)讀入ALAL, 將將72H72H端口的字節(jié)讀入
28、端口的字節(jié)讀入AHAH。 OUT 50H OUT 50H ,AL AL ;將;將ALAL中的字節(jié)輸出到中的字節(jié)輸出到50H50H端口端口 OUT 80H OUT 80H ,AX AX ;將;將ALAL輸出到輸出到70H70H端口,端口,AXAX輸出到輸出到71H71H。 間接的輸入間接的輸入/ /輸出指令輸出指令格式:格式:IN AL IN AL ,DX OUT DX DX OUT DX ,AL AL ;字節(jié);字節(jié)IN AX IN AX ,DX OUT DX DX OUT DX ,AX AX ;字;字例:例:IN AL IN AL ,DX DX ;從;從DXDX所指的端口讀取字節(jié)送到所指的端口
29、讀取字節(jié)送到ALAL。 IN AX IN AX ,DX DX ;從;從DXDX所指的端口讀取字節(jié)送到所指的端口讀取字節(jié)送到ALAL, 從從DX+1DX+1所指的端口讀取字節(jié)送到所指的端口讀取字節(jié)送到AHAH。 OUT DX OUT DX ,AL AL ;將;將ALAL中的字節(jié)輸出到中的字節(jié)輸出到DXDX所指的端口中。所指的端口中。 OUT DX OUT DX ,AX AX ;將;將ALAL中的字節(jié)輸出到中的字節(jié)輸出到DXDX所指的端口中,所指的端口中, 將將AHAH中的字節(jié)輸出到中的字節(jié)輸出到DX+1DX+1所指的端口中。所指的端口中。必須是用累加器。必須是用累加器。用直接輸入用直接輸入/ /
30、輸出指令時,端口號不要用輸出指令時,端口號不要用“ ” ”括括起來,且尋址范圍為起來,且尋址范圍為02550255(0000H00FFH0000H00FFH)。)。用間接輸入用間接輸入/ /輸出指令時,只能用輸出指令時,只能用DXDX寄存器,尋址范寄存器,尋址范圍為圍為065535065535(0000HFFFFH0000HFFFFH)。)。 ALAL DSDS:(:(BX+ALBX+AL) LEA 指令與指令與MOV 指令的區(qū)別:指令的區(qū)別:LEA SI,BUFF指令是將標(biāo)號指令是將標(biāo)號BUFF的偏移地址送入寄存器中;的偏移地址送入寄存器中;MOV SI,BUFF指令是將標(biāo)號指令是將標(biāo)號BU
31、FF所指存儲單元的內(nèi)容送入所指存儲單元的內(nèi)容送入SI。BUFF =0123454800FEFFLEA SI,BUFF;執(zhí)行后:(執(zhí)行后:(SI)=0002HMOV SI,BUFF;執(zhí)行后:(執(zhí)行后:(SI)=0048H段起始地址段起始地址57H13H68H24HDS:2480HDS:2481HDS:2482HDS:2483H 13 57 24 68 算術(shù)運算指令涉及的一些問題算術(shù)運算指令涉及的一些問題無符號數(shù)無符號數(shù):將所有的數(shù)位都看成數(shù)據(jù)位,只有正數(shù)沒有負(fù)數(shù)。:將所有的數(shù)位都看成數(shù)據(jù)位,只有正數(shù)沒有負(fù)數(shù)。8位無符號位無符號數(shù)值的范圍為數(shù)值的范圍為0255,16位無符號數(shù)值的范圍為位無符號數(shù)值
32、的范圍為065535。有符號數(shù)有符號數(shù):將最高位作為符號,數(shù)據(jù)本身用補碼表示,即可表示正數(shù),也:將最高位作為符號,數(shù)據(jù)本身用補碼表示,即可表示正數(shù),也可表示負(fù)數(shù)??杀硎矩?fù)數(shù)。8位有符號數(shù)值的范圍為位有符號數(shù)值的范圍為-128+127,16位無符號數(shù)值的范位無符號數(shù)值的范圍為圍為-32768+32767。對于加、減法,無符號數(shù)和有符號數(shù)可采用同一套指令,對于乘、除法,對于加、減法,無符號數(shù)和有符號數(shù)可采用同一套指令,對于乘、除法,無符號數(shù)和有符號數(shù)不能采用同一套指令。無符號數(shù)和有符號數(shù)不能采用同一套指令。無符號數(shù)和有符號數(shù)可采用同一套加、減法指令有兩個條件:無符號數(shù)和有符號數(shù)可采用同一套加、減法
33、指令有兩個條件: 兩個操作數(shù)必須同為無符號數(shù)或有符號數(shù)。兩個操作數(shù)必須同為無符號數(shù)或有符號數(shù)。 要用不同的方法檢測無符號數(shù)或有符號數(shù)的運算結(jié)果是否溢出。要用不同的方法檢測無符號數(shù)或有符號數(shù)的運算結(jié)果是否溢出。對于無符號數(shù)運算,用對于無符號數(shù)運算,用CF是否為是否為1來判斷是否產(chǎn)生溢出;對于來判斷是否產(chǎn)生溢出;對于有符號數(shù)運算,用有符號數(shù)運算,用OF是否為是否為1來判斷是否產(chǎn)生溢出。來判斷是否產(chǎn)生溢出。所有的算術(shù)運算指令,都會影響狀態(tài)標(biāo)志。具體有這樣一些規(guī)則:所有的算術(shù)運算指令,都會影響狀態(tài)標(biāo)志。具體有這樣一些規(guī)則:當(dāng)無符號數(shù)運算產(chǎn)生溢出時,當(dāng)無符號數(shù)運算產(chǎn)生溢出時,CF=1當(dāng)有符號數(shù)運算產(chǎn)生溢
34、出時,當(dāng)有符號數(shù)運算產(chǎn)生溢出時,OF=1運算結(jié)果為運算結(jié)果為0,ZF=1運算結(jié)果為負(fù)數(shù),運算結(jié)果為負(fù)數(shù),SF=1 運算結(jié)果中有偶數(shù)個運算結(jié)果中有偶數(shù)個1,PF=1 加法指令加法指令 例:例:ADD AL ADD AL ,BL BL ;將;將ALAL內(nèi)容與內(nèi)容與BLBL內(nèi)容相加,結(jié)果送到內(nèi)容相加,結(jié)果送到ALAL。 ADD AX ADD AX ,CX CX ;將;將AXAX內(nèi)容與內(nèi)容與CXCX內(nèi)容相加,結(jié)果送到內(nèi)容相加,結(jié)果送到AXAX。 ADD AX ADD AX ,1000H 1000H ;將;將AXAX內(nèi)容與內(nèi)容與1000H1000H,1001H1001H內(nèi)容內(nèi)容 相加,結(jié)果送到相加,結(jié)果
35、送到AXAX ADD BX ADD BX ,SI+100SI+100 ADD WORD PTRDI+200 ADD WORD PTRDI+200 ,CXCX ADD AX ADD AX ,100H100H ADD BYTE PTRBX+SI+100 ADD BYTE PTRBX+SI+100 ,2020例:將兩個分別存放在例:將兩個分別存放在2000H2000H和和3000H3000H開始的存儲單元的開始的存儲單元的4 4字節(jié)字節(jié)無符號數(shù)相加,結(jié)果存放到無符號數(shù)相加,結(jié)果存放到2000H2000H開始的單元。(地位在前,開始的單元。(地位在前,高位在后)高位在后) MOV SI MOV SI
36、,2000H2000H MOV AX MOV AX ,SISI MOV DI MOV DI ,3000H3000H ADD AX ADD AX ,DIDI MOV SI MOV SI ,AXAX MOV AX MOV AX ,SI+2SI+2 ADC AX ADC AX ,DI+2DI+2 MOV SI+2 MOV SI+2 ,AXAX例:例: INC AXINC AX INC CL INC CL INC SI+100 INC SI+100 INC 2000H INC 2000HADDADD、ADCADC指令對標(biāo)志位指令對標(biāo)志位AFAF、OFOF、PFPF、ZFZF、CFCF有影響,有影響,I
37、NCINC指令對標(biāo)志位也有影響,但不影響指令對標(biāo)志位也有影響,但不影響CFCF。例:例:SUB AL SUB AL ,BL BL ;將;將ALAL內(nèi)容與內(nèi)容與BLBL內(nèi)容相減,結(jié)果送到內(nèi)容相減,結(jié)果送到ALAL。 SUB AX SUB AX ,CX CX ;將;將AXAX內(nèi)容與內(nèi)容與CXCX內(nèi)容相減,結(jié)果送到內(nèi)容相減,結(jié)果送到AXAX。 SUB AX SUB AX ,1000H 1000H ;將;將AXAX內(nèi)容與內(nèi)容與1000H1000H,1001H1001H內(nèi)容內(nèi)容 相減,結(jié)果送到相減,結(jié)果送到AXAX。 SUB BX SUB BX ,SI+100SI+100 SUB WORD PTRDI+
38、200 SUB WORD PTRDI+200 ,CXCX SUB AX SUB AX ,100H100H SUB BYTE PTRBX+SI+100 SUB BYTE PTRBX+SI+100 ,2020例:將兩個文分別存放在例:將兩個文分別存放在2000H2000H和和3000H3000H開始的存儲單元的開始的存儲單元的4 4字節(jié)無符號數(shù)相減,結(jié)果存放到字節(jié)無符號數(shù)相減,結(jié)果存放到2000H2000H開始的單元。(地開始的單元。(地位在前,高位在后)位在前,高位在后) MOV SI MOV SI ,2000H2000HMOV AX MOV AX ,SISIMOV DI MOV DI ,300
39、0H3000HSUB AX SUB AX ,DIDIMOV SI MOV SI ,AXAXMOV AX MOV AX ,SI+2SI+2SBB AX SBB AX ,DI+2DI+2MOV SI+2 MOV SI+2 ,AXAX 例:例: DEC AXDEC AX DEC CL DEC CL DEC SI+100 DEC SI+100 DEC 2000H DEC 2000H 例:例: NEG AXNEG AX NEG CL NEG CL NEG SI+100 NEG SI+100 NEG 2000H NEG 2000H 例:例: CMP AX CMP AX ,2000H2000H CMP AL
40、 CMP AL ,50H50H CMP AX CMP AX ,BX+DI+100BX+DI+100 CMP DX CMP DX ,DIDI 會影響標(biāo)志位會影響標(biāo)志位AFAF、CFCF、OFOF、PFPF、SFSF、ZFZF。 兩數(shù)相等,兩數(shù)相等,ZF=1ZF=1 兩數(shù)不等:兩數(shù)不等:a a)、無符號數(shù):)、無符號數(shù):CF=0CF=0,被減數(shù)大,減數(shù)?。?,被減數(shù)大,減數(shù)小;CF=1CF=1,被減數(shù)小,減數(shù)大。,被減數(shù)小,減數(shù)大。b b)、有符號數(shù):若)、有符號數(shù):若OFOF和和SFSF值相同,則說明被減數(shù)比減數(shù)大;若值相同,則說明被減數(shù)比減數(shù)大;若OFOF和和SFSF值不值不同,則說明被減數(shù)比減
41、數(shù)小。同,則說明被減數(shù)比減數(shù)小。(2 2)帶符號數(shù)除法指令)帶符號數(shù)除法指令例:將兩個分別存放在例:將兩個分別存放在2000H2000H和和3000H3000H開始的存儲單開始的存儲單元的元的2 2字節(jié)組合字節(jié)組合BCDBCD碼數(shù)相加,結(jié)果存放到碼數(shù)相加,結(jié)果存放到2000H2000H開開始的單元。始的單元。 MOV SI ,2000HMOV AL ,SIMOV DI ,3000HADD AL ,DIDAAMOV SI ,ALMOV AL ,SI+1ADC AL ,DI+1DAAMOV SI+1 ,AL(5 5)非組合非組合BCDBCD碼的乘法調(diào)整指令碼的乘法調(diào)整指令例:例:MOV AL MO
42、V AL ,05H05H MOV BL MOV BL ,07H07H MUL BL MUL BL ;AX=0023HAX=0023H AAM AAM ;AH=03HAH=03H、AL=05H AL=05H 例:例:35357=57=5 MOV AX MOV AX ,0305H0305H AAD AAD ;AH=00HAH=00H、AL=23HAL=23H MOV BL MOV BL ,07H07H DIV BL DIV BL 0CFOPR0CFOPRCFOPRCFOPRCFOPRCFOPRCFOPRCFOPR 例:例: MOV SI MOV SI ,1000H1000H MOV DI MOV
43、DI ,2000H2000H MOV CX MOV CX ,100100 CLD CLD REP MOVSB REP MOVSB ;將源地址開始的;將源地址開始的100100 個字節(jié)送到目的地址個字節(jié)送到目的地址 REPREP指令:(指令:(CXCX)1 CX1 CX,當(dāng),當(dāng)CX=0CX=0時,退出時,退出重復(fù),執(zhí)行其后面的程序。重復(fù),執(zhí)行其后面的程序。 例:例: MOV DI MOV DI ,1000H1000H MOV SI MOV SI ,2000H2000H CLD CLD MOV CX MOV CX ,0004H0004H REP CMPSB REP CMPSB JZ KKK JZ
44、KKK ;ZF=0ZF=0,表示,表示4 4個比較單元都相同個比較單元都相同REPZREPZ指令:指令:ZF=1ZF=1,條件滿足,執(zhí)行重復(fù),(,條件滿足,執(zhí)行重復(fù),(CXCX)1 CX1 CX, 當(dāng)當(dāng)CX=0CX=0時,退出重復(fù),執(zhí)行其后面的程序。時,退出重復(fù),執(zhí)行其后面的程序。ZF=0ZF=0,條件不滿足,退出重復(fù),執(zhí)行其后面的程序。,條件不滿足,退出重復(fù),執(zhí)行其后面的程序。REPNZREPNZ指令:與指令:與REPZREPZ的條件正好相反。的條件正好相反。 例:從例:從ESES段:段:3000H3000H單元開始的單元開始的5 5個單元中找到第一個單元中找到第一個與個與ALAL中內(nèi)容相等
45、的單元,并使其內(nèi)容增中內(nèi)容相等的單元,并使其內(nèi)容增1 1。 MOV AL MOV AL ,40H40HMOV DI MOV DI ,3000H3000HCLDCLDMOV CX MOV CX ,5 5MOV DX MOV DX ,CXCXREPNZ SCASBREPNZ SCASBJNZ AA1JNZ AA1SUB DX SUB DX ,CXCXDEC DXDEC DXMOV DI MOV DI ,DXDXINC BYTE PTR DI+3000hINC BYTE PTR DI+3000hAA1AA1: 例:將例:將0700H0700H單元開始的單元開始的5 5個字節(jié)的內(nèi)容逐一取來,放個字節(jié)的
46、內(nèi)容逐一取來,放在累加器中進(jìn)行處理,處理后在送回到原內(nèi)存單元。在累加器中進(jìn)行處理,處理后在送回到原內(nèi)存單元。 CLDCLDMOV SI MOV SI ,0700H0700HMOV CX MOV CX ,5 5MOV DI MOV DI ,SISIL1:LODSBL1:LODSBPUSH CXPUSH CXPOP CXPOP CXDEC CXDEC CXMOV DI MOV DI ,ALALINC DIINC DIJNZ LI JNZ LI (2 2)存字符串指令存字符串指令例:使例:使0404H0404H開始的開始的256256個單元清個單元清0 0。 CLDCLDLEA DI LEA DI
47、,0404H0404HMOV CX MOV CX ,0080H0080HXOR AX XOR AX ,AXAXREP STOSWREP STOSW控制轉(zhuǎn)移指令包括控制轉(zhuǎn)移指令包括5類指令:類指令:子程序調(diào)用和返回指令子程序調(diào)用和返回指令無條件轉(zhuǎn)移和條件轉(zhuǎn)移指令無條件轉(zhuǎn)移和條件轉(zhuǎn)移指令循環(huán)控制指令循環(huán)控制指令中斷指令中斷指令處理器控制指令處理器控制指令1.1.關(guān)于轉(zhuǎn)移指令和調(diào)用指令的尋址關(guān)于轉(zhuǎn)移指令和調(diào)用指令的尋址 a、段內(nèi)直接轉(zhuǎn)移方式、段內(nèi)直接轉(zhuǎn)移方式 指令中給出一個相對位移量,這樣,轉(zhuǎn)移的有效偏移地指令中給出一個相對位移量,這樣,轉(zhuǎn)移的有效偏移地址為址為IP當(dāng)前內(nèi)容加上一個當(dāng)前內(nèi)容加上一個8
48、位或位或16位位移量。位位移量。適用:適用: 條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令 無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令 調(diào)用指令調(diào)用指令注意:注意: 條件轉(zhuǎn)移指令中,只能用條件轉(zhuǎn)移指令中,只能用8位位移量。位位移量。 b b、段內(nèi)間接轉(zhuǎn)移方式、段內(nèi)間接轉(zhuǎn)移方式 轉(zhuǎn)移的有效偏移地址總是在寄存器中或轉(zhuǎn)移的有效偏移地址總是在寄存器中或者在內(nèi)存單元中。者在內(nèi)存單元中。適用:適用: 無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令例:例:JMP 1000HJMP 1000H;直接轉(zhuǎn)移;直接轉(zhuǎn)移 JMP BX JMP BX ;間接轉(zhuǎn)移;間接轉(zhuǎn)移 JMP BX JMP BX ;間接轉(zhuǎn)移;間接轉(zhuǎn)移 c c、段間直接轉(zhuǎn)移方式、段間直接轉(zhuǎn)移方式 指令
49、中給出轉(zhuǎn)移地址的段值和偏移量。產(chǎn)生轉(zhuǎn)指令中給出轉(zhuǎn)移地址的段值和偏移量。產(chǎn)生轉(zhuǎn)移時,將段值代入移時,將段值代入CSCS中,將偏移量代入中,將偏移量代入IPIP中。中。 例:例:JMP 2000HJMP 2000H:1000H1000Hd d、段間間接轉(zhuǎn)移方式、段間間接轉(zhuǎn)移方式 轉(zhuǎn)移地址(轉(zhuǎn)移地址(IPIP、CSCS內(nèi)容)用內(nèi)存中內(nèi)容)用內(nèi)存中2 2個連續(xù)的個連續(xù)的字來替換。字來替換。 例:例:JMP DWORD PTR DI JMP DWORD PTR DI 轉(zhuǎn)移地址由轉(zhuǎn)移地址由DIDI、DI+1DI+1、DI+2DI+2、DI+3DI+3單元的內(nèi)容單元的內(nèi)容給出,其中給出,其中DIDI、DI+
50、1DI+1為偏移量,為偏移量,DI+2DI+2、DI+3DI+3為段地為段地址。址。 例:例: CALL 1000H CALL 1000H ;段內(nèi)直接調(diào)用;段內(nèi)直接調(diào)用 CALL AX CALL AX ;段內(nèi)間接調(diào)用;段內(nèi)間接調(diào)用 CALL 2500HCALL 2500H:3600H 3600H ;段間直接調(diào)用;段間直接調(diào)用 CALL DWORD PTR DI CALL DWORD PTR DI ;段間間接調(diào)用;段間間接調(diào)用a a、無條件轉(zhuǎn)移指令、無條件轉(zhuǎn)移指令例:例: JMP 1000H JMP 1000H ;段內(nèi)直接轉(zhuǎn)移;段內(nèi)直接轉(zhuǎn)移 JMP CX JMP CX ;段內(nèi)間接轉(zhuǎn)移;段內(nèi)間接轉(zhuǎn)
51、移 JMP 2000HJMP 2000H:0100H 0100H ;段間直接轉(zhuǎn)移;段間直接轉(zhuǎn)移 JMP DWORD PTR SI JMP DWORD PTR SI ;段間間接轉(zhuǎn)移;段間間接轉(zhuǎn)移 例:設(shè)例:設(shè)2000H2000H開始的區(qū)域中,存放著開始的區(qū)域中,存放著14H14H個無符號數(shù),個無符號數(shù),要求找出其中最大的一個數(shù),并存放到要求找出其中最大的一個數(shù),并存放到2000H2000H。 GTAMAXGTAMAX: MOV BX MOV BX ,2000H2000H MOV AL MOV AL ,BXBX MOV CX MOV CX ,14H14HP1P1: INC BXINC BX CMP
52、 AL CMP AL ,BXBX JAE P2 JAE P2 MOV AL MOV AL ,BXBXP2P2: DEC CXDEC CX JNZ P1 JNZ P1 MOV BX MOV BX ,2000H2000H MOV BX MOV BX ,ALAL例:在例:在4040個元素構(gòu)成的數(shù)組中尋找第一個非個元素構(gòu)成的數(shù)組中尋找第一個非0 0元素元素MOV CX MOV CX ,4040MOV SI MOV SI ,0FFH0FFHNEXTNEXT: INC SIINC SICMP BYTE PTR SI CMP BYTE PTR SI ,0 0LOOPZ NEXTLOOPZ NEXTJNZ K
53、KKJNZ KKKCALL DISPLAY1CALL DISPLAY1RETRETKKKKKK: CALL DISPLAY2CALL DISPLAY2RETRET中斷指令為程序員提供了軟件中斷手段。中斷指令為程序員提供了軟件中斷手段。中斷指令:中斷指令:INT nINT n中斷返回指令:中斷返回指令:IRETIRET執(zhí)行執(zhí)行INT nINT n指令時,將使指令時,將使CPUCPU轉(zhuǎn)到一個中斷處理程轉(zhuǎn)到一個中斷處理程序。此時,標(biāo)志位被推入堆棧,序。此時,標(biāo)志位被推入堆棧,SPSP2 2;然后清;然后清IFIF、TFTF;接著,將主程序的下一條指令的地址(斷點地;接著,將主程序的下一條指令的地址(
54、斷點地址)的段值和偏移量推入堆棧,址)的段值和偏移量推入堆棧,SPSP4 4。n n為中斷類為中斷類型號。型號。 (5 5)總線封鎖前綴總線封鎖前綴3.4 ASM86匯編語言中的標(biāo)記、表達(dá)式和偽指令匯編語言中的標(biāo)記、表達(dá)式和偽指令 機(jī)器語言:機(jī)器語言:用以二進(jìn)制編碼的形式表示的機(jī)器指令組。用以二進(jìn)制編碼的形式表示的機(jī)器指令組。用機(jī)器語言編制的程序稱為機(jī)器程序,又稱為目標(biāo)程序,它能機(jī)器所識用機(jī)器語言編制的程序稱為機(jī)器程序,又稱為目標(biāo)程序,它能機(jī)器所識別并執(zhí)行。機(jī)器語言編寫程序易出錯、難修改、不易看懂。別并執(zhí)行。機(jī)器語言編寫程序易出錯、難修改、不易看懂。高級語言:高級語言:用通用符號指令碼。用通用
55、符號指令碼。用高級語言編制的程序稱為源程序,它必須通過翻譯程序把它翻譯成目用高級語言編制的程序稱為源程序,它必須通過翻譯程序把它翻譯成目標(biāo)程序(機(jī)器程序)后,才能被機(jī)器所識別、執(zhí)行。源程序易學(xué)、使用標(biāo)程序(機(jī)器程序)后,才能被機(jī)器所識別、執(zhí)行。源程序易學(xué)、使用方便、易推廣。但翻譯后的目標(biāo)程序長,執(zhí)行時間長,實時性差。方便、易推廣。但翻譯后的目標(biāo)程序長,執(zhí)行時間長,實時性差。匯編語言:匯編語言:用機(jī)器專用符號指令碼。用機(jī)器專用符號指令碼。用匯編語言編制的程序稱為匯編語言程序,它也是源程序,必須通過匯用匯編語言編制的程序稱為匯編語言程序,它也是源程序,必須通過匯編程序?qū)⑺g成目標(biāo)程序。它的目標(biāo)程
56、序短,實時性好,大量用于實編程序?qū)⑺g成目標(biāo)程序。它的目標(biāo)程序短,實時性好,大量用于實時控制程序中。時控制程序中。 匯編語言的基本概念匯編語言的基本概念3.4.13.4.1 一個完整的匯編語言的語句由下列幾部分組成:一個完整的匯編語言的語句由下列幾部分組成:標(biāo)識符標(biāo)識符、保留字保留字、界符界符、常數(shù)常數(shù)和和注釋注釋,所有這些都稱為標(biāo)記。,所有這些都稱為標(biāo)記。 標(biāo)識符標(biāo)識符:是程序員為了使程序便于理解和書寫所使用的一:是程序員為了使程序便于理解和書寫所使用的一些字符串,常作為一段程序的開頭、一個數(shù)據(jù)塊的開頭。些字符串,常作為一段程序的開頭、一個數(shù)據(jù)塊的開頭。 保留字保留字:是匯編語言中預(yù)先保留
57、下來的具有特殊含義的符號,只能作為:是匯編語言中預(yù)先保留下來的具有特殊含義的符號,只能作為固定的用途。如:固定的用途。如:MOVMOV、INTINT、DBDB、SEGMENTSEGMENT、ENDEND等。凡是等。凡是80868086的指令、的指令、偽指令、寄存器名等都是保留字。偽指令、寄存器名等都是保留字。界符界符:作為一個程序中或者一條指令中兩個部分的分隔符號。如:作為一個程序中或者一條指令中兩個部分的分隔符號。如“,”、“;”等。等。常數(shù)常數(shù):就是指令中出現(xiàn)的那些固定值。如立即尋址時所用的立即數(shù)、直:就是指令中出現(xiàn)的那些固定值。如立即尋址時所用的立即數(shù)、直接尋址時所用的地址等。接尋址時所
58、用的地址等。常數(shù)的表示形式:常數(shù)的表示形式:二進(jìn)制,二進(jìn)制,01001000B01001000B十進(jìn)制,十進(jìn)制,100100,200D200D十六進(jìn)制,十六進(jìn)制,1000H1000H、74H74H、0FE00H0FE00H八進(jìn)制,八進(jìn)制,2560Q2560Q用引號引起來的字符串。如用引號引起來的字符串。如ABCABC,等效于常數(shù),等效于常數(shù)41H41H、42H42H、43H43H。注釋注釋:匯編語言中為了便于閱讀和理解而加入的一些說明文字。:匯編語言中為了便于閱讀和理解而加入的一些說明文字。注意注意:注釋要用注釋要用“;”打頭。打頭。在匯編過程中,注釋被略去不作處理。在匯編過程中,注釋被略去不
59、作處理。 表達(dá)式由表達(dá)式由操作數(shù)操作數(shù)和和運算符運算符組成。組成。 操作數(shù)操作數(shù):內(nèi)容上可能代表一個數(shù)據(jù),也可能代表一個存儲:內(nèi)容上可能代表一個數(shù)據(jù),也可能代表一個存儲單元。單元。對于一個數(shù)據(jù)最簡單的表達(dá)方式就是用常數(shù)形式,如對于一個數(shù)據(jù)最簡單的表達(dá)方式就是用常數(shù)形式,如100H100H。匯編語言程序中也常常用標(biāo)號來表示數(shù)據(jù),如用匯編語言程序中也常常用標(biāo)號來表示數(shù)據(jù),如用PORTPORT表示表示一個端口號,而在匯編語言程序又用偽指令對一個端口號,而在匯編語言程序又用偽指令對PORTPORT作了定作了定義,使它等于某個常數(shù)。義,使它等于某個常數(shù)。源程序中,存儲器地址也常用標(biāo)號表示,作為轉(zhuǎn)移指令的
60、源程序中,存儲器地址也常用標(biāo)號表示,作為轉(zhuǎn)移指令的轉(zhuǎn)移地址或調(diào)用指令的調(diào)用地址。如轉(zhuǎn)移地址或調(diào)用指令的調(diào)用地址。如JMP STARTJMP START中的中的STARTSTART標(biāo)號,實際上包括了地址的段值和偏移量。標(biāo)號,實際上包括了地址的段值和偏移量。:包括包括EQ(相等)、(相等)、NE(不相等)、(不相等)、LT(小于)、(小于)、GT(大于)、(大于)、LE(小于或大于)、(小于或大于)、GE(大于或等于)共六種。(大于或等于)共六種。分析操作符(數(shù)值返回運算符)分析操作符(數(shù)值返回運算符)(1)取地址的偏移量)取地址的偏移量 分析操作符(數(shù)值返回運算符)分析操作符(數(shù)值返回運算符)分
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年落葉大班標(biāo)準(zhǔn)教案及反思
- 保潔外包合同范例
- 住宅使用權(quán)變更合同范例
- 水資源合理利用與開發(fā)策略計劃
- 海關(guān)業(yè)務(wù)知識培訓(xùn)課件
- 如何應(yīng)對工作中的壓力與挑戰(zhàn)計劃
- 第3課:《日食》(教學(xué)設(shè)計)-2023-2024學(xué)年六年級下冊科學(xué) 教科版
- 2025年羽毛球課程標(biāo)準(zhǔn)教案全
- 學(xué)習(xí)之道與方法指導(dǎo)計劃
- 第五單元《習(xí)作:圍繞中心意思寫》教學(xué)設(shè)計-2024-2025學(xué)年六年級上冊語文統(tǒng)編版
- 重大火災(zāi)隱患判定方法知識培訓(xùn)
- 企業(yè)員工檔案管理培訓(xùn)
- 四川新農(nóng)村建設(shè)農(nóng)房設(shè)計方案圖集川東南部分
- (完整版)英語四級詞匯表
- GB/T 18281.7-2024醫(yī)療保健產(chǎn)品滅菌生物指示物第7部分:選擇、使用和結(jié)果判斷指南
- 第14課 旅游計劃書(教案)信息技術(shù)六年級下冊
- 中車招聘在線測評題
- 教學(xué)設(shè)計初中勞動教育創(chuàng)意設(shè)計的教學(xué)設(shè)計
- 2024年事業(yè)單位考試(綜合管理類A類)職業(yè)能力傾向測驗試卷及答案指導(dǎo)
- 山東省2024年中考數(shù)學(xué)試卷八套合卷【附答案】
- 血液透析護(hù)理質(zhì)控
評論
0/150
提交評論