微機原理與接口技術(樓順天)-第3章1培訓講學_第1頁
微機原理與接口技術(樓順天)-第3章1培訓講學_第2頁
微機原理與接口技術(樓順天)-第3章1培訓講學_第3頁
微機原理與接口技術(樓順天)-第3章1培訓講學_第4頁
微機原理與接口技術(樓順天)-第3章1培訓講學_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章8086CPU指令系統(tǒng)第3章8086CPU指令系統(tǒng)內容簡介全面掌握8086/8088指令系統(tǒng)的使用,包括指令的功能、尋址方式及其書寫格式、對標志位的影響、使用注意事項。掌握匯編語言程序設計所必須的偽指令,并由此構成匯編語言程序的完整結構。掌握變量、常量及偽指令的使用和一些常用的基本程序設計方法。在分支程序設計中,要特別注意每個分支的完整性和分支條件的合理使用;在循環(huán)程序設計中,掌握循環(huán)程序的基本結構,特別要注意應避免出現(xiàn)死循環(huán);在子程序設計中,著重掌握參數(shù)的內容簡介各種傳遞方式及其實現(xiàn),對堆棧這種特殊的存儲區(qū)域進行了詳細的描述,切實掌握堆棧的使用。宏指令和字符串操作是匯編語言程序設計中的兩個難點,教材中對此也作了詳細的介紹,要求掌握正確使用宏指令和字符串操作指令。教材中簡要介紹了DOS功能調用的方法和常用的一些DOS功能,要求能熟練使用INT21H的01、02、09、0AH和4CH號等功能。第三章8086CPU指令系統(tǒng)本教案內容第3章8086CPU指令系統(tǒng)匯編語言指令8086指令分類數(shù)據與轉移地址的尋址方式數(shù)據傳送類指令算術運算類指令邏輯運算類指令移位類指令標志位操作指令轉移指令循環(huán)控制指令子程序調用返回指令中斷調用返回指令字符串操作指令I/O輸入輸出指令其它指令宏指令3.1匯編語言指令一.匯編語言與機器語言的相關概念

匯編語言與機器語言屬于低級語言,它們與高級語言有較大的區(qū)別,匯編語言中的語句與機器的型號密切相關,若CPU型號不同,其指令系統(tǒng)就不同。1.機器語言機器(CPU)能直接認識的一種二進制代碼語言。3.1匯編語言指令如:B0H12H;這一組二進制代碼,就是告訴CPU將AL12H。就是一條指令代碼,或者機器語言代碼。2.機器語言程序采用機器語言編寫的程序,即二進制代碼程序。優(yōu)點:程序送入計算機后,CPU可以直接執(zhí)行。缺點:不易書寫,不易檢查,編寫程序十分困難。3.1匯編語言指令3.匯編語言用助記符號來代替機器指令。3.1匯編語言指令4.匯編語言程序用匯編語言編寫的程序稱為匯編語言程序,或者稱為匯編語言源程序。匯編語言源程序擴展名為.ASM。如:B0H12H05H02H00H用MOVAL,12H代替用ADDAX,0002H代替3.1匯編語言指令優(yōu)點:要比一串二進制代碼清晰多了,書寫容易,記憶也方便。缺點:CPU不能直接執(zhí)行。用匯編語言編寫的匯編語言源程序必須經過匯編,將其翻譯成機器語言格式,CPU才能執(zhí)行。3.1匯編語言指令5.匯編把匯編語言源程序翻譯成機器語言程序的過程稱為匯編。3.1匯編語言指令6.匯編程序能把匯編語言源程序翻譯成機器語言程序的系統(tǒng)程序。8086宏匯編程序為MASM.EXE。如:機器語言程序匯編程序為MASM.EXE源程序MOVAL,12HADDAX,0002H050200B012匯編反匯編在DEBUG.EXE下進行3.1匯編語言指令7.從匯編語言源程序到可執(zhí)行程序所經過的處理過程用全屏幕編輯軟件編輯匯編語言源程序文件名.ASM用匯編程序MASM.EXE對源程序

文件名.ASM進行匯編有語法錯誤嗎?在磁盤上形成目標程序文件

文件名.OBJ用連接程序LINK.EXE對

文件名.OBJ進行連接有錯誤嗎?在磁盤上形成了可執(zhí)行文件文件名.EXE

有沒有沒3.1匯編語言指令二.匯編語言程序中語句的種類在匯編語言程序設計中,程序中的語句有三類:指令語句偽指令語句宏指令語句3.1匯編語言指令1.指令語句匯編后能產生機器語言代碼,是CPU能執(zhí)行的語句。3.1匯編語言指令2.偽指令語句匯編后不能產生機器語言代碼,是CPU不能執(zhí)行的語句。它只是告訴匯編程序應如何匯編。3.宏指令語句它是8086指令系統(tǒng)中沒有的指令,是用戶自己定義的指令.3.1匯編語言指令由指令和偽指令構成,在程序匯編時進行宏展開,以相應的指令和偽指令來替代.三.匯編語言中語句的組成匯編語言源程序(文件名.ASM)是由一條條語句組成的。語句則由四部分組成。標識符操作助記符操作數(shù)注釋其基本格式如下:3.1匯編語言指令[名稱]操作助記符空格[操作數(shù)][;注釋]

其中,操作助記符指出該條語句的基本操作功能,是必須有的部分。而[]項可有可無,視情況而定。3.1匯編語言指令

名稱作為一個標識符,第一個字符必須是字母,不能為數(shù)字,總字符個數(shù)不能超過31個。在給標識符起名時,不能用8086指令系統(tǒng)中的專用符來給標識符起名稱,如ADD、MOV等。起名時,盡量做到見名知義。 名稱有兩種:(1)標號,用于指令(2)變量名,用于偽指令3.1匯編語言指令四.匯編語言中的常數(shù)與表達式在匯編語言程序中,語句中的操作數(shù)項既可以是常數(shù)或表達式(立即數(shù)),也可以是指明操作數(shù)所在位置的一種說明。如果操作數(shù)是常數(shù)或表達式,則有以下幾種形式。3.1匯編語言指令1.數(shù)值常數(shù)

若為數(shù)值常數(shù),則按其基數(shù)的不同,可二進制數(shù)十進制數(shù)八進制數(shù)十六進制數(shù)有等不同的表達式。3.1匯編語言指令如:將(AL)12,則有:MOVAL,12;12為十進制數(shù)MOVAL,0CH;0CH為十六進制數(shù)MOVAL,00001100B;00001100B為二進制數(shù)3.1匯編語言指令2.字符串常數(shù)字符串常數(shù)是由單引號“′……′”括起來的一串字符或者單個字符。如:MOVDL,′A′;(DL)41HBUFDB′12Aa′;將′12Aa′字符串定義給;變BUF以下連續(xù)的(4個字;節(jié))存儲器單元。3.1匯編語言指令3.表達式

語句中的操作數(shù)項也可以是表達式。表達式由操作數(shù)和操作符組成。操作符有:3.1匯編語言指令算術操作符:+、-、*、/、MOD邏輯操作符:AND、OR、XOR、NOT關系操作符:EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于)屬性操作符:SEG、OFFSET、TYPE、LENGTH、SIZE屬性修改操作符:PTR3.1匯編語言指令①算術操作符MOVAL,5+2*3等效于MOVAL,11MOVAL,11/2等效于MOVAL,05H;取商MOVAL,11MOD2

等效于MOVAL,01H;取余3.1匯編語言指令②邏輯操作符MOVAL,0CCHAND0F0HMOVAL,0C0HANDAL,0CCHOR0F0HANDAL,0FCH等效于等效于CPU執(zhí)行時完成的操作匯編程序匯編時完成的操作3.1匯編語言指令③關系操作符若關系成立,則為真,取值全1;若關系不成立,則為假,取值全0。如:MOVAL,04HLT05H;關系成立為真MOVAL,0FFH等效于3.1匯編語言指令④屬性操作符MOVBX,OFFSETTABLE;BX取變量TABLE單元的偏移地址MOVAX,SEGTABLE;AX取變量TABLE單元的段地址MOVDL,TYPETABLE;DL取變量TABLE的類型SRC均為立即數(shù)尋址3.1匯編語言指令⑤屬性修改操作符

MOVWORDPTR[BX],02H(DS):(BX)00H02H0002H3.1匯編語言指令⑤屬性修改操作符MOVBYTEPTRTABLE,AL(AL)TABLE

只是在本條語句中用PTR將TABLE變量臨時修改為字節(jié)型變量,脫離了本條語句,變量TABLE的類型恢復原樣。3.1匯編語言指令五.標號、變量及偽指令在匯編語言程序設計中,為了方便記憶,將直接訪問的存儲器單元的實際地址符號化,即給要訪問存儲器單元起一個標識符名,而標識符有標號名、變量名等。3.1匯編語言指令1.標號用以指示某條指令語句的位置(地址)。其定義方法就是在指令語句的操作助記符前加上標號名,以冒號結尾。它可以作為程序轉移指令的操作數(shù)。3.1匯編語言指令如:●●●

JMPLAB1

●●●●

LAB1:MOVAX,0

●●●標號名3.1匯編語言指令標號一旦定義,就具有了以下三個屬性:段地址

標號對應的指令所在段的段地址段內偏移地址

標號對應指令所在的段內EA類型NEAR型

該標號與轉移指令在同一

代碼段。FAR型

該標號與轉移指令不在同一

代碼段。3.1匯編語言指令2.變量用以指示存放數(shù)據的存儲器單元的符號地址。變量所指明的存儲器單元的值,在程序運行期間是可以改變的。3.1匯編語言指令變量定義偽指令(也稱為數(shù)據定義偽指令或者稱為存儲器分配偽指令)

變量定義偽指令主要應用在數(shù)據段,是用來給變量名所對應的存儲器單元分配數(shù)據或預留空間。變量定義偽指令有以下五種:3.1匯編語言指令[變量名]DB表達式;定義字節(jié)型變量[變量名]DW表達式;定義字型變量[變量名]DD表達式;定義雙字型變量[變量名]DQ表達式;定義長字型變量[變量名]DT表達式;定義一個10字節(jié)的變量

常用的變量定義偽指令有DB、DW、DD。偽指令左邊的變量名可有可無,若有必須以空格結尾。3.1匯編語言指令變量定義偽指令語句中的表達式有以下幾種情況:●1個或多個常數(shù)或表達式。當為多個時,其間用逗號分割?!駧б柕淖址??!褚粋€問號(?)。(用來將此單元保留,存放結果)●重復方式。其格式為:

重復次數(shù)DUP(表達式)3.1匯編語言指令變量定義舉例

若(DS)=1500H,且在數(shù)據段0000H偏移地址開始有以下變量定義。3.1匯編語言指令DAT1DB12,-12,12HDAT2DB2*31500H:0000HDAT1OCHOF4H12HO6H0003HDAT23.1匯編語言指令DAT1DB12,-12,12HDAT2DB2*3,5DAT3DW02H,567AHDAT1OCHOF4H12HO6H1500H:0000H0003HDAT2DAT30005H05H02HO0H7AH56H3.1匯編語言指令DAT4DD89HDAT5DB‘THIS’DAT6DW‘AB’,‘C’DAT489H00H00H00H1500H:0009H000DHDAT5DAT60011H`T``H``I``S``B`3.1匯編語言指令DAT6O0H1500H:0011H0015HDAT7DAT8DAT6DW‘AB’,‘C’DAT7DB3DUP(00H)DAT8DW3DUP(?)0018H00H00HO0H??`B``A``C`3.1匯編語言指令偽指令DW、DD的特殊用法:

●<變量名1>DW<標號(或變量名2)>±常數(shù)這里定義的<變量名1>為字型地址指針,其內容為〈<標號>±常數(shù)〉或〈<變量名2>±常數(shù)〉的段內偏移地址。例如:AD1DB100DUP(?)AD2DWAD1 ;指向變量AD1的起始地址AD3DWAD1+10●<變量名1>DD<標號(或變量名2)>±常數(shù)這里定義的變量名1為雙字型地址指針,第一個字存放〈<標號>±常數(shù)〉或〈<變量名2>±常數(shù)〉的段內偏移地址,第二個字存放其段地址。例如: AD4DDAD1 ;指向變量AD1的起始地址3.1匯編語言指令結果如圖所示3.1匯編語言指令假設AD1的段地址為0100H,段內偏移地址為2157H

變量的屬性一個變量一但定義了,就具有了一下五個屬性:段地址(SEG)段內

溫馨提示

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

最新文檔

評論

0/150

提交評論