![工業(yè)用微型計算機自考復(fù)習(xí)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/994b8a02-7ee3-4766-872e-3cf7d1a4ab0f/994b8a02-7ee3-4766-872e-3cf7d1a4ab0f1.gif)
![工業(yè)用微型計算機自考復(fù)習(xí)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/994b8a02-7ee3-4766-872e-3cf7d1a4ab0f/994b8a02-7ee3-4766-872e-3cf7d1a4ab0f2.gif)
![工業(yè)用微型計算機自考復(fù)習(xí)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/994b8a02-7ee3-4766-872e-3cf7d1a4ab0f/994b8a02-7ee3-4766-872e-3cf7d1a4ab0f3.gif)
![工業(yè)用微型計算機自考復(fù)習(xí)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/994b8a02-7ee3-4766-872e-3cf7d1a4ab0f/994b8a02-7ee3-4766-872e-3cf7d1a4ab0f4.gif)
![工業(yè)用微型計算機自考復(fù)習(xí)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/994b8a02-7ee3-4766-872e-3cf7d1a4ab0f/994b8a02-7ee3-4766-872e-3cf7d1a4ab0f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第一章知識點微處理器是微型機的核心芯片,通常簡稱為MP(Micro Processor),它是將計算機中的運算器和控制器集成在一個硅片上制作的集成電路。這樣的芯片也被稱為中央處理單元,一般簡稱為CPU(Central Processing Unit).第一代4位和低檔8位微處理器(1971年1973年)第二代中高檔8位微處理器(1974年1978年)第三代16位微處理器(1978年1981年)第四代32位高檔微處理器(1985年1993年)第五代64位高檔微處理器以后Intel又推出Pentium-II微處理器。Advanced Micro Device公司(簡稱ADM)的K6是與Pentiu
2、m-II性能相當?shù)腃PU。一、無符號數(shù)的表示和運算(一)進位計數(shù)制人們在日常生活中,采用多種進制的數(shù)字系統(tǒng)。最常用的是十進制。例如 199811039109108100后綴B表示二進制;后綴H表示十進制;后綴D表示十進制(也可不加后綴)例如:10011011B是二進制數(shù);9BH是十六進制數(shù);155D是十進制數(shù);這些數(shù)都表示同一數(shù)值,即十進制的155,只是使用的進制不同而已。1二進制和十六進制間的相互轉(zhuǎn)換(1)十六進制轉(zhuǎn)換為二進制數(shù),不論是十六進制的整數(shù)還是小數(shù),只要把每一位十六進制的數(shù)用相應(yīng)的二進制數(shù)來代替,就可以轉(zhuǎn)換為二進制。例如9BA61001 1011 1010 0110 即9BA6H1
3、00110111010011B(2)二進制轉(zhuǎn)換為十六進制這種轉(zhuǎn)換,可分兩步進行:對整部分,從小數(shù)點向左數(shù)每4位二進制為一組,最后不足的前面補零。對小數(shù)部分,從小數(shù)點向右數(shù),每4位一組,最后不足4位的后面補0,然后把每4位二進制數(shù)用相應(yīng)的十六進制數(shù)代替,即可轉(zhuǎn)換為十六進制數(shù)。例如1011011101010100 B 7 5 4 即10110111010101BB754H(2)二進制數(shù)轉(zhuǎn)換為十進制數(shù),對所給的二進制數(shù),只要按前述的式(22)展開,即可得到對應(yīng)的十進制數(shù)。例如 10111010B1231211201201111625(3)十進制整數(shù)轉(zhuǎn)換為二進制數(shù),把十進制整數(shù)轉(zhuǎn)換為二進制數(shù),一般采用
4、除2取余法。例如 只要決定的值,就可寫出二進制數(shù),因為201,所以(21520)一定是2的整數(shù)倍,2152所得的余數(shù)即為X0。其轉(zhuǎn)換過程為 2152107(商),余數(shù)1x0;107253(商),余數(shù)1x1;53226(商),余數(shù)1x2;26213(商),余數(shù)1x3;1326(商),余數(shù)1x4;623 (商),余數(shù)1x5;321 (商),余數(shù)1x6;120 (商),余數(shù)1,商為0,轉(zhuǎn)換結(jié)束。故215D11010111B。(4)十進制整數(shù)轉(zhuǎn)換為十六進制數(shù),同轉(zhuǎn)換為二進制數(shù)的道理一樣,也可采用除16取余例如215D轉(zhuǎn)換為十六進制的過程為 2151613 (商),余數(shù)7x0; 1316=0 (商),余
5、數(shù)13x1; 商為0,轉(zhuǎn)換結(jié)束。故215DD7H;通常寫成0D7H,D前面的0字說明D不是英文字符D而是數(shù)字13。又如何2345D的轉(zhuǎn)換過程為1234516771(商),余數(shù)9x0;7711648 (商),余數(shù)3x1;48163 (商),余數(shù)0x2;3160 (商),余數(shù)3x3,商為0,結(jié)束。(二)原碼如上所示,正數(shù)的符號位用零表示,負數(shù)的符號位用1表示,符號位之后表示數(shù)值的大小這種表示方法稱為原碼。例如:x=+114,x原=01110010B x=+114,x原=11110010B(三)反碼正數(shù)的反碼與原碼相同。最高位一定為0,代表符號,其余位為數(shù)值位。負數(shù)的反碼其符號位為1,與原碼相同,數(shù)
6、值位是將其負數(shù)的原碼的數(shù)值位按位取反。例如: x=4,x反11111011B x=0,x反11111111B x=127,x反10000000B顯然,反碼的0也有2個,X0,x反0000000B(四)補碼正數(shù)的補碼表示與原碼相同,即最高位為符號位,用“0”表示,其余位為數(shù)值位。而負數(shù)的補碼為其反碼加1即在反碼的最低位加1形成補碼。例如:x=4,x補x反111111011B111111100BFCH三、8位與16位二進制數(shù)的表示范圍(一)8位二進制的范圍1)無符號數(shù)0255(或用0FFH表示)第三節(jié) 微型計算機系統(tǒng)的組成一、微型計算機系統(tǒng)的構(gòu)成微型計算機系統(tǒng)是由硬件和軟件兩部分組成的,它的層次結(jié)
7、構(gòu)如圖所示。 運算器 CPU 控制器 主機 存儲器 寄存器 微型機硬件 輸入輸出接口 外圍設(shè)備 微型機系統(tǒng) 系統(tǒng)軟件 微型機軟件 應(yīng)用軟件圖1 微型計算機系統(tǒng)的組成示意圖(一)微型機硬件(1)微處理器,是微機系統(tǒng)的核心部件,簡稱為CPU,它包括運算器、控制器和寄存器幾部分,運算器也叫算邏單元ALU(Arithmetic and Logic Unit)。(2)存儲器(Memory)又叫主存或內(nèi)存,是微機的存儲和記憶部件,用以存放程序代碼和運算需要的數(shù)據(jù)。內(nèi)存通常使用半導(dǎo)體存儲器。1)內(nèi)存容量,以80868088CPU為例,其地址總線為20根,尋址內(nèi)存的范圍為2201MB。這里B是字節(jié)(Byte)
8、,即每個內(nèi)存單元內(nèi)部存放的是一個字節(jié)(8位二進制)程序代碼或數(shù)據(jù),其形式均為二進制數(shù)(機器數(shù))。因為8086的地址總線是20根,其尋址范圍為1024KB,寫成十六進制時就是5位,其地址范圍為00000HFFFFFH。2)內(nèi)存的操作 對內(nèi)存的操作是讀(取)和寫(存儲)。3)內(nèi)存的分類 按存儲器的工作性質(zhì)可將內(nèi)存分為只讀存儲器(ROM)和隨機讀寫存儲器(RAM)兩大類。(3)輸入輸出接口(IO Interface)和外部設(shè)備CPU要與很多外部設(shè)備進行數(shù)據(jù)傳送,必須通過“IO接口”,所以輸入輸出接口是CPU與外設(shè)之間的橋梁。(4)總線 由上面敘述可以看到微型計算機主要是由微處理器、存儲器、IO接口和
9、IO設(shè)備所組成,這些部件是用系統(tǒng)總線連接起來的。(二)微型計算機軟件微型機的軟件是為運行、管理和測試維護而編制的各種程序的總和,沒有軟件的計算機只是裸機,計算機就無法工作。計算機軟件分為系統(tǒng)軟件和應(yīng)用軟件,系統(tǒng)軟件包括操作系統(tǒng)(DOS及WINDOWS、UNIX、LINUX等)和系統(tǒng)應(yīng)用程序。三、微型計算機的外圍設(shè)備一般的計算機,配備有多種外圍設(shè)備。其輸入的外圍設(shè)備有:鍵盤、鼠標、掃描儀、輸出的外部設(shè)備有:顯示器、打印機、繪圖儀。而軟盤和硬盤驅(qū)動器既可作為輸入又可作為輸出設(shè)備,而大多數(shù)的光盤驅(qū)動器(CDROM)是作為輸入設(shè)備使用的,它可以把CD或VCD光盤中的音樂送入聲卡放大,也可以把VCD光盤
10、的圖像通過解壓縮后的彩色圖像在CRT是顯示出來。目前,都采用全雙工的聲卡(AudioPCI混聲器)完成聲音的接收(有話簡接口)、錄音、聲音合成和聲音的播放(有一定功率的放大)。這樣,配上較大功率的有源單箱,就可以放送出美麗動聽的音樂和歌聲。配置上網(wǎng)卡(一種是電話上網(wǎng)的調(diào)制解調(diào)器,例如56K的MODEM,一種是高速網(wǎng)卡),連接上INTERNET網(wǎng)絡(luò),就可以通過IDT NET2PHONE等軟件打網(wǎng)絡(luò)電話,發(fā)傳真(FAX),收發(fā)ENALL,通過WWW進行網(wǎng)上瀏覽。第四節(jié) 微處理器一、Intel 8086/8088微處理器(一)80868088的功能結(jié)構(gòu)微處理器80868088微處理器結(jié)構(gòu)類似,都由算
11、術(shù)邏輯單元ALU、累加器、專用和通用寄存器、指令寄存器、指令譯碼器、定時器控制器等組成,后四部分相當于控制器。不過按功能可以分為兩大部分總線接口單元BIU(Bus Interface Unit)和執(zhí)行單元EU(Execution Unit)。(二)80868088的內(nèi)部寄存器80868088內(nèi)部有14個16位寄存器,編程時都要用到,所以必須識記。按其功能,可分為三大類:第一類是通過寄存器(8個),第二類是段寄存器(4個),第三類是控制寄存器(2個)。通用寄存器包括數(shù)據(jù)寄存器、地址寄存器和變址寄存器。1數(shù)據(jù)寄存器AX、BX、CX、DX2地址指針寄存器SP、BP3變址寄存器SI、DI4段寄存器CS
12、、SS、DS、ES5控制寄存器IP、FLAGSCF 進位標志位。當進行加法或減法運算時。若最高位發(fā)生進位或錯位,則CF1,否則CF0;PF 奇偶標志位。當邏輯運算結(jié)果中“1”的個數(shù)為偶數(shù)時,PF1;為奇數(shù)時,PF0。AF 輔助進位位。在8(16)位加法操作中,低4(8)位有進位、借位發(fā)生時,AF1,否則AF0;ZF 零標志位。當運算結(jié)果為零時,ZF1。否則ZF0;SF 符號標志位。當運算結(jié)果的最高位為1(即為負數(shù))時,SF1,否則SF0;OF 溢出標志位。當算術(shù)運算的結(jié)果超出了帶符號數(shù)的范圍,即溢出時,OF1,否則OF0。8位帶符號數(shù)范圍是128127,16位帶符號數(shù)的范圍是327683276
13、7。下面三個是控制標志位。控制標志位被設(shè)置后便對其后的操作產(chǎn)生控制作用。TF 跟蹤標志位。TF1使CPU處于單步執(zhí)行指令的工作方式。這種方式便于進行程序的調(diào)試。每執(zhí)行一條指令后,便自動產(chǎn)生一次內(nèi)部中斷,從而使用戶能逐條地檢查程序。IF 中斷允許標志位。IF1使CPU可以響應(yīng)可屏蔽中斷請求。IF0使CPU禁止響應(yīng)可屏蔽中斷請求。IF的狀態(tài)對不可屏蔽中斷及內(nèi)部中斷沒有影響。DF 方向標志位。DF1使串操作按減地址方向進行,也就是說,從高位地址開始,每操作一次地址減小一次。DF0使串操作按增地址方向進行。(四)80868088的工作方式80868088有兩種工作方式:最小和最大模式,最小模式是單處理
14、器模式,最大模式是多處理器模式,一般接入8087協(xié)調(diào)處理器?,F(xiàn)在,用戶使用的大部分都是486以上微處理器,均為最大模式。第二章知識點第一節(jié)指令系統(tǒng)計算機的指令系統(tǒng)??梢苑譃榱箢悾簲?shù)據(jù)傳送指令;算術(shù)傳送指令;邏輯運算和移位指令;串操作指令;控制轉(zhuǎn)移指令;處理器控制指令。一、指令格式指令是以二進制代碼形式表示的操作命令,這種二進制代碼稱為機器碼。尋址方式,通常是指CPU指令中規(guī)定的尋找操作數(shù)所在地址的方式,80868088CPU內(nèi)部設(shè)置了多個有關(guān)地址的寄存器,如各種地址指針寄存器以及變址寄存器等,因而使80868088的基本尋址方式有以下七種。二、立即尋址(Immediate Addrssing
15、)例如:MOV CL,28HMOV AX,3189H三、寄存器尋址(Register Addrssing)指令中指定某些CPU寄存器存放操作數(shù)。上述寄存器可能是通用寄存器(8位或16位)、地址指針或變址寄存器,以及段寄存器。例如: MOV SS,AX四、直接尋址(Direct Addrssing)直接尋址指令在指令的操作碼后面直接給出操作數(shù)的16位偏移地址。這個偏移地址也稱為有效地址EA(Effective Address),它與指令的操作碼一起,存放在內(nèi)存的代碼段,也是低8位在前,高8位在后。但是,操作數(shù)本身一般存放在內(nèi)存的數(shù)據(jù)段。例如: MOV AX,3100H五、寄存器間接尋址六、變址尋
16、址(Indexed Addressing)變址尋址指令將規(guī)定的變址寄存器的內(nèi)容加上指令中給出的位移量,得到操作數(shù)的有效地址。80868088CPU中變址寄存器有兩個:源變址寄存器SI和目的變址寄存器DI。位移可以是8位或16位二進制數(shù),一般情況下操作數(shù)在內(nèi)存的數(shù)據(jù)段,但也允許段超越。下面是一條變址尋址指令的例子。 MOV BX,SI1003H七、基址尋址(Based Addrssing)基址與變址相類似,不同之處在于指令中使用基址寄存器BX或基址指針寄存器BP,而不是變址寄存器SI和DI。需要指出一點,當使用BX寄存器實現(xiàn)基址時,一般情況下操作數(shù)是在數(shù)據(jù)段,即段地址在DS寄存器;而當使用BP時
17、操作數(shù)通常在堆棧段,即段地址在SS寄存器中。但是,同樣允許段超越。下面兩條指令是基址尋址的例子。 MOV SI,DATABX MOV BLOCKBP,AX八基址變址尋址(Based Indexed Addre88ing)這種尋址方式是前面已經(jīng)介紹的兩種尋址方式的結(jié)合。指令中規(guī)定一個基址寄存器(BX和BP二者之一)和一個變址寄存器(SI和DI二者之一),同時還給出一個8位或16位的位移量,將三者的內(nèi)容相加就得到操作的有效地址。至于段地址,通常由所用的基址寄存器決定。當使用BX存放基址時,段地址一般在DS寄存器;當使用BP時,段地址一般在堆棧段SS中,但當指令中標明是段超越時例外。以下是一條基址加
18、變址尋址指令的例子: MOV AX,COUNTBXSI第二節(jié) 80868088的指令系統(tǒng)一、數(shù)據(jù)傳送指令(Data transfer)數(shù)據(jù)傳送指令是程序中使用最多的指令,這是因為無論程序針對何種具體的實際問題,往往都需要將原始數(shù)據(jù)、中間結(jié)果、最終結(jié)果以及其他各種信息,在CPU的寄存器和存儲器之間傳送。數(shù)據(jù)傳送指令按其功能的不同,可以分為以下四組:通用數(shù)據(jù)傳送指令;輸入輸出指令;目標地址傳送指令;標志傳送指令。以下是MOV指令的幾個例子:MOV AX,CS;段寄存器至通用寄存器MOV AL,125;立即數(shù)至寄存器MOV MEM,15;立即數(shù)至存儲器,直接尋址MOV SI,BX;寄存器至寄存器MO
19、V DS,AX;通用寄存器至段寄存器MOV BX,50H;立即數(shù)至存儲器,寄存器間址MOV MEM,AX;寄存器至存儲器,直接尋址MOV MEM,DS;段寄存器至存儲器,直接尋址MOV DISPBX,CX;寄存器至存儲器,基址尋址MOV AX,DISPSI;存儲器至寄存器,變址尋址MOV DS,MEM;存儲器至段寄存器,直接尋址MOV AX,DISPBXSI;存儲器至寄存器,基址變址尋址PUSH(Push word onto stack)推入操作 POP(Pop word off stacks)彈出操作指令格式及操作:PUSH src;(SP) (SP)2,首先,堆棧指針2送給堆棧指針 (SP
20、)1:(SP)(src),再把源操作數(shù)(字)推入堆棧中POP dest;(dest) (SP)+1:(SP),首先,堆棧的內(nèi)容彈出到目的操作數(shù) (SP) (SP)+2,再使堆棧指針加2這是兩條堆棧操作指令,PUSH指令將寄存器或存儲器的內(nèi)容推入堆棧;POP指令將堆棧中的內(nèi)容彈出到寄存器或存儲器,但都是字操作。PUSH和POP指令的操作數(shù)可能有三種情況:1)寄存器2)段寄存器3)存儲器無論那種操作數(shù),其類型必須是字操作數(shù)(16位),如果推入或彈出堆棧的寄存器操作數(shù),則應(yīng)是一個16位寄存器。如果是存儲器操作數(shù),是兩個地址連續(xù)的存儲單元。如:PUSH AX;通用寄存器椎入堆棧PUSH BP;基址指針
21、寄存器推入堆棧PUSH DATASI;兩個連續(xù)的存儲單元推入堆棧POP DI;從堆棧彈出到變址寄存器POP ES;從堆棧彈出至段寄存器POP ALPHEBX;從堆棧彈出到兩個連續(xù)的存儲單元堆棧的用途很多,例如調(diào)用子程序(或過程),發(fā)生中斷時都用推入堆棧的辦法來保護斷點的地址,而當子程序返回時再將斷點地址從堆棧中彈出到IP,以便繼續(xù)執(zhí)行主程序。輸入輸出指令共兩條。輸入指令I(lǐng)N用于從外設(shè)端口接收數(shù)據(jù),輸出指令OUT向端口發(fā)送數(shù)據(jù)。指令格式及操作:IN acc, port;(acc) (port)OUT port ,acc;(port) (acc)目標地址傳送指令(Address object tr
22、ansfer)80868088CPU提供了三條把地址指針寫入寄存器或寄存器對的指令,它們可以用來寫入近地址指針和遠地址指針。這三條指令是LDS、LES、LEA。LEA reg16 mem16LEA指令將一個近地址指針寫入到指定的寄存器。指令中的目標寄存器必須是一個16位通用寄存器,源操作數(shù)必須是一個存儲器,指令的執(zhí)行結(jié)果是把源操作數(shù)的有效地址即16位偏移地址傳送到目標寄存器。例如LEA BX,BUFFERLEA AX,BPDI二、算術(shù)運算指令(Arithmetic)算術(shù)運算指令共有以下五組:加法運算指令減法運算指令乘法運算指令除法運算指令轉(zhuǎn)換指令(一)加法指令(Addition)加法指令包括普
23、通加法(ADD)指令、帶進位加法(ADC)指令和加1(INC)指令,另外還有兩條加法調(diào)整指令,即ASCII調(diào)整(AAA)和十進制調(diào)整(DAA)指令。1ADD(Addition)指令格式及操作: ADD dest ,src;(dest) (dest)+(src)ADD指令將目標操作數(shù)與源操作數(shù)相加,并將結(jié)果存回目標操作數(shù)。加法指令將影響大多數(shù)標志位。3INC(Increment by 1),加1指令指令格式及操作:INC dest(dest) (dest)1INC指令將目標操作數(shù)加1,指令將影響大多數(shù)標志位,如SF、ZF、AF、PF和OF但對進位標志CF沒有影響。(二)減法相令(Subtract
24、ion)8086/8088CPU共有七條減法指令,它們是普通減法(SUB)、帶借位減(SBB)、減1(DEC)、求補(NEG)、比較(CMP)指令,以及減法的ASCII調(diào)整(AAS)和十進制調(diào)整(DAS)指令,重點是SUB、DEC、CMP指令。SUB(Subtraction)指令格式及操作:SUB dest,src;(desd) (desd) (src)SUB指令將目標操作數(shù)減源操作數(shù),結(jié)果送回目標操作數(shù)。指令對標志位SF、ZF、AF、PF、CF和OF有影響操作數(shù)的類型與加法指令一樣,即目標操作數(shù)可以是寄存器或存儲器,源操作數(shù)可以是立即數(shù)、寄存器或存儲器,但不允許兩個存儲器相減。既可以字節(jié)相減
25、,也可以字相減。例如,SUB AL,98H;寄存器減立即數(shù) SUB BX,CX;寄存器減寄存器 SUB DX,VAR1;寄存器減存儲器DEC(Decrement by 1)減指令指令格式及操作:DEC dest;(dest) (dest)1DEC指令將目標操作數(shù)減1,指令對標志位SF、ZF、AF、PF和OF有影響,但不影響進位標志CF。操作數(shù)的類型與INC指令一樣,可以是寄存器或存儲器(段寄存器不可)。字節(jié)操作或字操作均可。例如,DEC BL8位寄存器減:DEC CX;16位寄存器減1DEC BYTE PTR BX;存儲器減1,字節(jié)操作DEC WORD PTR BPDI;存儲器減1,字操作CM
26、P(Compare)比較指令指令格式及操作:CMP dest,src;(dest)(src)不把差值回送給目的的操作數(shù),影響標志,這條比較指令經(jīng)常使用,并不把結(jié)果送給目的操作數(shù),兩個操作數(shù)不變,比較后影響標志,使程序根據(jù)比較后的標志轉(zhuǎn)移。(三)乘法指令(Multiplication)80868088CPU可以通過執(zhí)行一條指令完成乘法或除法運算。乘法指令共有三條:無符號數(shù)乘法指令(MUL)、帶符號數(shù)乘法指令(IMUL)以及乘法的ASCII調(diào)整指令(AAM)。1MUL(Multiplication unsigned)無符號數(shù)乘法指令格式:MUL src指令操作為,字節(jié)乘法(AX)(src)(AL)
27、 字乘法(DX:AX)(src)(AX)MUL指令對標志位CF和OF有影響,但SF、ZF、AF和PF不確定。80868088CPU有三條除法指令,它們是無符號數(shù)除法指令(DIV)、帶符號數(shù)除法指令(IDIV)以及除法的ASCII調(diào)整指令(AAD)。DIA(Division unsigned),無符號數(shù)除法指令指令格式: DIV srcDIA指令使大部分標志位如SF、ZF、AF、PF、CF和OF的值不確定。例比較兩個字符串,找出其中第一個不相等字符的地址。如果兩字符串全部相同。則轉(zhuǎn)到ALLMATCH進行處理。這兩個字符串長度均為20,首地址分別為STRING1和STRING2。LEA SI,ST
28、RING1;(SI)字符串1首地址LEA DI,STRING2;(DI)字符串2首地址MOV CX,20;(CX)字符串長度CLD;清方向標志DFREPE CMPSB;如相等,重復(fù)進行比較JCXZ ALLMATCH;若(cx)=0,跳至ALLMATCHDEC SI;否則(SI)1DEC DI;(DI)1INT 3;返回DEBUGALLMATCH:MOV SI,0MOV DI,0INT 3;返回DEBUG控制轉(zhuǎn)移指令(Control transfer)8086/8088CPU提供了很多指令用于控制程序的轉(zhuǎn)移。這類指令是以下四種:轉(zhuǎn)移指令、循環(huán)控制指令、過程調(diào)用指令和中斷指令,下面分別進行討論。(
29、一)轉(zhuǎn)移指令轉(zhuǎn)移是一種將程序從一處改換到另一處的最方便的方法。在CPU內(nèi)部,轉(zhuǎn)移是通過將目標地址傳送給指令指針寄存器IP來實現(xiàn)的。轉(zhuǎn)移指令包括無條件轉(zhuǎn)移指令和條件轉(zhuǎn)移指令。1、無條件轉(zhuǎn)移指令JMP(JumP)JUMP指令的操作是無條件地將控制轉(zhuǎn)移到指令中規(guī)定的目的地址。另外,目標地址可以用直接的方式給出,也可以用間接的方式給出,JMP指令對標志位沒有影響。(1)段內(nèi)直接轉(zhuǎn)移 指令格式及操作:JMP near_label;轉(zhuǎn)移到近標號,(IP)(IP)disp(16位)例:在內(nèi)存的數(shù)據(jù)段中存放了若干個8位帶符號數(shù),數(shù)據(jù)塊的長度為COUNT(不超過255),首地址為TABLE,試統(tǒng)計其中正元素、負
30、元素及零元素的個數(shù),并分別將個數(shù)存入PLUS、MINUS和ZERO單元。為了統(tǒng)計正元素。負元素和零元素的個數(shù),可先將PLUS、MINUS和ZERO三個單元清零,然后將數(shù)據(jù)表中帶符號數(shù)逐個取入AL寄存器并使其影響標志位,再利用前面介紹的JS、JZ等條件轉(zhuǎn)移指令測試該數(shù)是一個負數(shù)、零還是正數(shù),然后分別在相應(yīng)的單元中進行計數(shù)。程序如下:XOR AL,AL ;(AL)0MOV PLUS,AL ;清PLUS單元MOV MINUS,AL ;清MINUS單元MOV ZERO,AL ;清ZERO單元LEA SI,TABLE ;(SI)數(shù)據(jù)表首址MOV CX,COUNT ;(CX)數(shù)據(jù)表長度CLD ;清標志位D
31、FCHECK:LODSB ;取一個數(shù)據(jù)到AL中OR AL,AL;使數(shù)據(jù)影響標志位JS XI ;如為負,轉(zhuǎn)X1JZ X2 ;如為零,轉(zhuǎn)X2INC PLUS ;否則為正,PLUS單元加1JMP NEXTX1:INC MINUS ;MINUS單元加1JMP NEXTX2:INC ZERO ;ZERO單元加1NEXT:LOOP CHECK ;CX減1,不為零,轉(zhuǎn)CHECKINT 3上面的程序中LOOP指令是一條循環(huán)控制指令,它的操作是先將1(CX)1,然后判斷是否CX的內(nèi)容為0?如果不等于0,則轉(zhuǎn)移到所指的標號CHECK,如果(CX)0,則執(zhí)行下一條指令。DEBUG調(diào)試程序的簡單應(yīng)用DEBUG調(diào)試程序
32、的功能DEBUGCOM或DEBUGEXE是隨DOS操作系統(tǒng)提供的。鍵入該程序(DEBUG)后,出現(xiàn)提示符,它具有如下命令:A為匯編命令;U為反匯編命令;T為跟蹤命令;D為顯示內(nèi)存命令;E為修改內(nèi)存命令;F為填充命令;R為檢查和修改寄存器命令;G為執(zhí)行程序命令;L為裝入內(nèi)存命令;N為給程序命名的命令;I為輸入,O為輸出命令;M為傳送內(nèi)存命令;W為存盤命令,Q為結(jié)束DEBUG,回到DOS命令。第三章知識點第一節(jié) 程序設(shè)計語言概述目前,有三種不同層次的計算機語言,這就是機器語言、匯編語言和高級語言。一、機器語言在機器語言(Machine Language)中,用二進制數(shù)表示指令和數(shù)據(jù),它的缺點是不直
33、觀,很難理解和記憶。因此不用它編程。但是,機器語言程序是唯一能夠被計算機直接理解和執(zhí)行的程序,具有執(zhí)行速度快,占用內(nèi)存少等優(yōu)點。二、匯編語言一般來說,有兩種匯編程序,一種通常稱為匯編(ASM),另一種稱為宏匯編(MASM)。后者的功能更強。三高級語言高級語言(Highlevel Language)這針對某個具體的計算機,所以通用性強。第二節(jié) 匯編語言源程序的格式一、分段結(jié)構(gòu)匯編語言源程序的結(jié)構(gòu)是分段結(jié)構(gòu)形式。一個匯編語言源程序由幾個段(Segment)組成,每個段都以SEGMENT語句開始,以ENDS結(jié)束,而整個源程序是以END語句結(jié)尾。匯編語言源程序中的語句主要有以下兩種類型:指令性語句;指
34、示性語句。指令性語句主要由CPU指令組成,編譯時能夠生成二進制機器代碼;指示性語句又稱偽操作語句,主要由偽操作組成,編譯時并不生成二進制機器代碼。那么,為什么還需要偽指令呢?這是因為偽操作語句是給匯編使用的。一般情況下,匯編語言的語句可以有14個組成部分,如下所示:名字操作碼偽操作操作數(shù);注釋第三節(jié) 常用偽操作宏匯編程序MASM提供了大約幾十種偽操作,根據(jù)偽操作的功能,大致可以分以下幾類:處理器方式偽操作數(shù)據(jù)定義偽操作符號定義偽操作段定義偽操作過程定義白偽操作模塊定義白與連接偽操作宏處理偽操作條件偽操作列表偽操作其它偽操作一、段定義偽劣商品操作匯編語言程序的結(jié)構(gòu)是分段的形式,一個匯編語言源程序
35、若干個邏輯段組成,所有的指令、變量等都分別存放在各個邏輯段內(nèi)。段定義偽操作的用途是在匯編語言源程序中定義邏輯段。常用的段定義偽操作有SEGMENT、ENDS和ASSUME等。(一個)SEGMENTENDS格式:段名 S EGMENT 定位類型 組合類型 類別段名 ENDS二、數(shù)據(jù)定義偽操作數(shù)據(jù)定義偽操作的用途是定義一個變量的龐大, 給存儲器賦初值,或者僅僅給變量分別存儲單元,而不賦予特定的值。下面介紹幾種常用的、簡單的數(shù)據(jù)定義偽操作。常用的數(shù)據(jù)定義偽操作有下列5種。BD 定義字節(jié)DW 定義字(2個字節(jié))DD 定義雙字(4個字節(jié))SQ 定義四字(8字節(jié))DT 定義十字節(jié)(10個字節(jié))上述5種數(shù)據(jù)
36、定義偽操作的一般格式為變量名 偽操作 操作數(shù) ,操作數(shù)三、符號定義偽操作符號定義偽操作的用途是給一個符號重新命名,或定義新的類型屬性等。常用的符號偽操作有:EQU、(等號)和LABEL等。(一)EQU格式:名字 EQU 表達式四、過程定義偽操作PROCENDP 格式過程名 PROC NEARFAAARRET過程名 ENDP五、模塊定義與連接偽操作在編寫規(guī)模比較大的匯編語言程序時,可以將整個程序劃分成為幾個獨立的源程序(或稱為模塊),然后將各個模塊分別匯編,生成各自的目標程序,最后再連接成一個完整的可執(zhí)行程序各個模塊之間可進行符號訪問,也就是說,在一個模塊中定義的符號可被另一個模塊引用。這類符號
37、稱為外部符號,而將那些在一個模塊中定義,且只在同一模塊中引用的符號稱為局部符號。為了進行連接以及這些將要連接在一起的模塊之間實現(xiàn)相互的符號訪問,以便進行變量傳送,常使用以下偽操作:NAME、END、PUBLIC、EXTRN。(一)NAME偽操作該偽操作用于給源文件匯編以后得到的目標程序指定一個模塊名,連接時要使用它。格式為NAME 模塊名第四節(jié) 匯編語言程序設(shè)計程序設(shè)計步驟(一)程序設(shè)計的基本步驟對于給定的課題進行程序設(shè)計,一般應(yīng)按如下步驟進行:分析課題 分析課題就是對課題任務(wù)有明確認識,對復(fù)雜題目應(yīng)進行抽象簡化,建立數(shù)學(xué)模型。并弄清已知條件、原始數(shù)據(jù)和應(yīng)得到的結(jié)果,以及課題任務(wù)對程序的功能、
38、運算精度、執(zhí)行速度等方面的要求。確定算法 確定算法就是選擇解決問題的途徑和方法,對于一個具體問題,算法可能有多種,應(yīng)該選取簡單、高效,能在計算機上易于實現(xiàn)的算法。畫流程圖 流程圖是算法的一種圖形描述,由邏輯框和流程線組成。關(guān)于流程圖的畫法已經(jīng)在C語言部分講述。對于復(fù)雜的問題可分解為若干個程序模塊,然后確定各模塊的算法,畫出程序流程圖。對于大的程序可分別畫出分模塊流程圖和總的流程圖,這時總流程圖可設(shè)計得粗略一些,能反映出總體結(jié)構(gòu)即可。當然,對于簡單的程序段,也可不畫流程圖,而直接按確定的算法編寫程序。存儲器資源分配 諸如各程序段的存放地址、數(shù)據(jù)區(qū)地址、工作單元分配等。編制程序、調(diào)試和修改DOS和
39、BIOS 調(diào)用(2)用戶如何使用一般說來,用戶可通過四種方式控制PC機的硬件,表示如下:使用高級語言提供的功能進行控制,但提供的一些IO語句較少,執(zhí)行速度慢。使用DOS提供的程序來控制硬件,其中DOS為用戶提供的IO程序有近百種,而且都是在較高層次上提供的,不需要用戶對硬件有太多的了解。使用DOS調(diào)用的可移植性好,輸入輸出功能多,編程簡單,調(diào)試方便,但運行效率低些。使用BIOS提供的程序控制硬件,這是一種底層控制方法,要求用戶對微機的硬件有深入的了解,BIOS駐留在ROM中,不依賴于操作系統(tǒng),這使得使用BIOS調(diào)用的匯編語言、C、PASCAL語言程序的可移植性差。因此,當BIOS和DOS提供的
40、功能相同時,首先要先用DOS。但BIOS運行效率高,因此,在要求高速場合下,可選用BIOS調(diào)用。注意,BIOS的一部分功能,例如CRT顯示功能,是DOS所不具備的。直接訪問硬件,這就要求用戶對計算機的外部設(shè)備很熟悉,通常用于獲得高效率和DOS以及BIOS不支持的功能,但程序的可移植性更差。BIOS調(diào)用BIOS稱為基本輸入輸出系統(tǒng),是固化在ROM中的一組IO服務(wù)程序,除系統(tǒng)測試,初始化引導(dǎo)程序及部分中斷向量裝入程序外,還為用戶提供了常用的設(shè)備驅(qū)動程序,如鍵盤輸入打印機及顯示輸出等。BIOS的調(diào)用方法同DOS系統(tǒng)功能調(diào)用類似,如下所示。置功能號n送AH 置入口參數(shù) 執(zhí)行INTn 分析出口參數(shù)(?。?/p>
41、鍵盤輸入(2)打印機輸出(3)時間中斷(4)CRT顯示 BIOS的INT 10H顯示功能很強,主要包括設(shè)置顯示方式,設(shè)置光標大小和位置,設(shè)置調(diào)色板號,顯示字符和圖形等。例 下面的程序可顯示256個字符,但由于程序小,編寫成COM文件的形式。求多個同學(xué)年齡之和,但年齡和不超過9999歲。源程序如下:DATA SEGMNT;規(guī)范化形式NLIN DB 23H,3H,38H;年齡原始數(shù)據(jù),為BCD碼NUMEQUNLIN;人數(shù)SUMDW?;年齡和單元,定義為字,可能9876歲DATAENDS;規(guī)范化形式STACK;規(guī)范化形式 START:MOV AX,DATA;規(guī)范化形式MOV DX,AXMOV CX,
42、NUMXOR AX,AX;清AXMOV SI,OFFSET NLIN;原始數(shù)據(jù)首址(偏移地址)LP2:ADD AL,SI;(AL)(AL)SI,累加用ADDDAA;十進制調(diào)整ADCAH,0(AH)(AH)0CYXCHGAH,AL;AH,AL交換ADDAL,0;對原AH十進制調(diào)整DAA;DAA只能跟在加法后 XCHGAH,AL;調(diào)整后交換,也可設(shè)法用PUSH,POP指令I(lǐng)NCSI;指令下一個年齡LOOPLP2;循環(huán)累加MOVSUM,AX;存放在內(nèi)存DS:SUM單元,字操作MOVAH,4CH;規(guī)范化形式INT21HCODEENDSENDSTART;規(guī)范化形式第五節(jié) 匯編語言的上機過程一、工作環(huán)境目
43、前,由于個人計算機的普及,在PC機上學(xué)習(xí)匯編語言是非常容易的了,應(yīng)在磁盤上建立以下文件:MASMEXE;宏匯編程序,用50以上版本LINKEXE;為連接程序EXE2BINEXE;為轉(zhuǎn)換成COM文件所需要的程序DEBUGCOM;調(diào)試程序NECOM、QEXE或EDITCOM等任何一種全屏幕編輯程序以上程序最好安裝在硬盤。二、建立匯編語言源文件三、MASM和LINK程序的應(yīng)用(一)用MASM程序產(chǎn)生OBJ文件(二)用LINK程序進行鏈接(三)用DEBUC調(diào)試程序進行調(diào)試(四)COM文件的生成按照COM文件編寫的源程序(五)批處理文件的應(yīng)用為加快源程序的編輯、編譯、鏈接和轉(zhuǎn)換的速度,用戶可設(shè)計一個批處理文件,將實現(xiàn)以上命令的組織在批目理文件中。第四章知識點一、存儲的分類按存取速度和用途可把存儲器分為兩大類:把具有一定容量、存取速度快的存儲器稱
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 服務(wù)代理合同協(xié)議
- 個人房屋轉(zhuǎn)讓合同常見問題解答
- 臨時工勞動合同范本:標準合同模板解析
- 臨時場地使用合同:版本
- 個人臨時用工合同協(xié)議
- 2025年股權(quán)轉(zhuǎn)讓合同范本及實例匯集
- 交通局交通設(shè)施采購項目合同
- 二手房屋抵押借款合同模板
- 事業(yè)單位臨時工勞動合同標準版
- 中日文雙語合同模板大全
- cpk自動計算電子表格表格
- 2024-2025學(xué)年湖北省武漢市部分重點中學(xué)高一上學(xué)期期末聯(lián)考數(shù)學(xué)試卷(含答案)
- 排球正面上手傳球 說課稿-2023-2024學(xué)年高一上學(xué)期體育與健康人教版必修第一冊
- 2025年浙江省交通投資集團財務(wù)共享服務(wù)中心招聘2名高頻重點提升(共500題)附帶答案詳解
- 做投標文件培訓(xùn)
- 9.4+跨學(xué)科實踐:制作簡易活塞式抽水機課件+-2024-2025學(xué)年人教版物理八年級下冊
- 建筑工程工作計劃
- 2025年中國國際投資促進中心限責任公司招聘管理單位筆試遴選500模擬題附帶答案詳解
- 瓶裝液化氣送氣工培訓(xùn)
- 外科護理課程思政課程標準
- 船舶航行安全
評論
0/150
提交評論