微機(jī)原理與接口技術(shù)第3章1.ppt_第1頁
微機(jī)原理與接口技術(shù)第3章1.ppt_第2頁
微機(jī)原理與接口技術(shù)第3章1.ppt_第3頁
微機(jī)原理與接口技術(shù)第3章1.ppt_第4頁
微機(jī)原理與接口技術(shù)第3章1.ppt_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第3章8086CPU指令系統(tǒng),內(nèi)容簡介,掌握8086/8088指令系統(tǒng)的使用,包括指令的功能、尋址方式及其書寫格式、對標(biāo)志位的影響、使用注意事項。掌握偽指令,并由此構(gòu)成匯編語言程序的完整結(jié)構(gòu)。掌握變量、常量及偽指令的使用和一些常用的基本程序設(shè)計方法。掌握DOS功能調(diào)用的方法和常用的一些DOS功能。,本章主要內(nèi)容,第3章8086CPU指令系統(tǒng)匯編語言指令8086指令分類數(shù)據(jù)與轉(zhuǎn)移地址的尋址方式數(shù)據(jù)傳送類指令算術(shù)運算類指令邏輯運算類指令移位類指令標(biāo)志位操作指令,轉(zhuǎn)移指令循環(huán)控制指令子程序調(diào)用返回指令中斷調(diào)用返回指令字符串操作指令I(lǐng)/O輸入輸出指令其它指令宏指令,3.1匯編語言指令,完成某個加法功能

2、高級語言:采用語句X=A+B,只要給變量A和B賦一確定值,此加法就可以實現(xiàn)了。匯編語言:程序必須指出A、B存放在何處,結(jié)果又存放在何處,然后才能實現(xiàn)這一運算。,1.機(jī)器語言,3.1匯編語言指令,如:,;這一組二進(jìn)制代碼,就是告訴CPU將AL12H。,3.1匯編語言指令,2.機(jī)器語言程序,采用機(jī)器語言編寫的程序,即二進(jìn)制代碼程序。,優(yōu)點:程序送入計算機(jī)后,CPU可以直接執(zhí)行。,缺點:不易書寫,不易檢查,編寫程序十分困難。,3.1匯編語言指令,3.匯編語言,3.1匯編語言指令,如:,B0H,12H,05H,02H,00H,用MOVAL,12H代替,用ADDAX,0002H代替,3.1匯編語言指令,

3、優(yōu)點:要比一串二進(jìn)制代碼清晰多了,書寫容易,記憶也方便。,缺點:CPU不能直接執(zhí)行。用匯編語言編寫的匯編語言源程序必須經(jīng)過匯編,將其翻譯成機(jī)器語言格式,CPU才能執(zhí)行。,3.1匯編語言指令,三類:,指令語句:匯編后能產(chǎn)生機(jī)器語言代碼,是CPU能執(zhí)行的語句。,偽指令語句:匯編后不能產(chǎn)生機(jī)器語言代碼,是CPU不能執(zhí)行的語句。,宏指令語句:是用戶自己定義的一條能完成某一特定功能的新的指令。,3.1匯編語言指令,匯編語言源程序是由一條條語句組成的。語句則由四部分組成。,其基本格式如下:,3.1匯編語言指令,其中,操作助記符指出該條語句的基本操作功能,是必須有的部分。而項可有可無,視情況而定。,若是指令

4、語句,標(biāo)識符就是一個標(biāo)號名,以冒號結(jié)尾;若是偽指令語句,標(biāo)識符就是變量名或者段名等,以空格結(jié)尾。,3.1匯編語言指令,標(biāo)識符的第一個字符必須是字母,不能為數(shù)字,總字符個數(shù)不能超過31個。在給標(biāo)識符起名時,不能用8086指令系統(tǒng)中的專用符來給標(biāo)識符起名稱,如ADD、MOV等。起名時,盡量起的有點意義。,3.1匯編語言指令,在匯編語言程序中,語句中的操作數(shù)項既可以是常數(shù)或表達(dá)式(立即數(shù)),也可以是指明操作數(shù)所在處的一種說明。如果操作數(shù)是常數(shù)或表達(dá)式,則有以下幾種形式。,3.1匯編語言指令,1.數(shù)值常數(shù),若為數(shù)值常數(shù),則按其基數(shù)的不同,可,有等不同的表達(dá)式。,3.1匯編語言指令,如:將(AL)12,

5、則有:,MOVAL,12;12為十進(jìn)制數(shù),MOVAL,0CH;0CH為十六進(jìn)制數(shù),MOVAL,00001100B;00001100B為二進(jìn)制數(shù),3.1匯編語言指令,2.字符串常數(shù),字符串常數(shù)是由單引號“”括起來的一串字符。,如:MOVDL,A;DL41H,BUFDB12Aa;將12Aa字符串定義給;變量BUF以下連續(xù)的(4個字;節(jié))存儲器單元。,3.1匯編語言指令,3.表達(dá)式,由操作數(shù)和操作符組成。操作數(shù)可以是常數(shù)、標(biāo)識符、表達(dá)式(子表達(dá)式),而操作符有:,3.1匯編語言指令,算術(shù)操作符:+、-、*、/、MOD,邏輯操作符:ADD、OR、XOR、NOT,關(guān)系操作符:EQ(相等)、NE(不等)、

6、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于),屬性操作符:SEG、OFFSET、TYPE、LENGTH、SIZE,屬性修改操作符:PTR,3.1匯編語言指令,算術(shù)操作符,MOVAL,5+2*3等效于MOVAL,11,MOVAL,11/2等效于MOVAL,05H;取商,MOVAL,11MOD2等效于MOVAL,01H;取余,3.1匯編語言指令,邏輯操作符,等效于,等效于,CPU執(zhí)行時完成的操作,匯編程序匯編時完成的操作,3.1匯編語言指令,關(guān)系操作符,若關(guān)系成立,則為真,取值全1;若關(guān)系不成立,則為假,取值全0。,如:MOVAL,04HLT05H;關(guān)系成立為真,MOVAL,

7、0FFH,等效于,3.1匯編語言指令,屬性操作符,MOVBX,OFFSETTABLE;BX取變量TABLE單元的偏移地址,MOVAX,SEGTABLE;AX取變量TABLE單元的段地址,MOVDL,TYPETABLE;DL取變量TABLE的類型,SRC均為立即數(shù)尋址,3.1匯編語言指令,屬性修改操作符,MOVWORDPTRBX,02H,DS:(BX),3.1匯編語言指令,屬性修改操作符,MOVBYTEPTRTABLE,AL,(AL),TABLE,只是在本條語句中用PTR將TABLE變量臨時修改為字節(jié)型變量,脫離了本條語句,變量TABLE的類型恢復(fù)原樣。,3.1匯編語言指令,前面已經(jīng)講過,在匯編

8、語言程序設(shè)計中,為了方便記憶,將直接訪問的存儲器單元的實際地址符號化,即給要訪問存儲器單元起一個標(biāo)識符名,而標(biāo)識符有標(biāo)號名、變量名等。,3.1匯編語言指令,1.標(biāo)號,3.1匯編語言指令,如:,JMPLAB1LAB1:MOVAX,0,標(biāo)號名,3.1匯編語言指令,標(biāo)號一旦定義,就具有了以下三個屬性:,段地址標(biāo)號對應(yīng)的指令所在段的段地址,段內(nèi)偏移地址標(biāo)號對應(yīng)指令所在的段內(nèi)EA,類型,NEAR型該標(biāo)號與轉(zhuǎn)移指令在同一代碼段。,FAR型該標(biāo)號與轉(zhuǎn)移指令不在同一代碼段。,3.1匯編語言指令,2.變量,3.1匯編語言指令,變量定義偽指令(也稱為數(shù)據(jù)定義偽指令或者稱為存儲器分配偽指令),變量定義偽指令主要應(yīng)用

9、在數(shù)據(jù)段,是用來給變量名所對應(yīng)的存儲器單元分配數(shù)據(jù)或預(yù)留空間。變量定義偽指令有以下五種:,3.1匯編語言指令,變量名DB表達(dá)式;定義字節(jié)型變量,變量名DW表達(dá)式;定義字型變量,變量名DD表達(dá)式;定義雙字型變量,變量名DQ表達(dá)式;定義長字型變量,變量名DT表達(dá)式;定義一個10字節(jié)的變量,常用的變量定義偽指令有DB、DW、DD。偽指令左邊的變量名可有可無,若有必須以空格結(jié)尾。,3.1匯編語言指令,變量定義偽指令語句中的表達(dá)式有以下幾種情況:,1個或多個常數(shù)或表達(dá)式。當(dāng)為多個時,其間用逗號分割。,帶引號的字符串。,一個問號(?)。(用來將此單元保留,存放結(jié)果),重復(fù)方式。其格式為:重復(fù)次數(shù)DUP(表

10、達(dá)式),3.1匯編語言指令,偽指令DW、DD的特殊用法:,DW常數(shù)這里定義的為字型地址指針,其內(nèi)容為常數(shù)或常數(shù)的段內(nèi)偏移地址。例如:AD1DB100DUP(?)AD2DWAD1;指向變量AD1的起始地址AD3DWAD1+10,DD常數(shù)這里定義的變量名1為雙字型地址指針,第一個字存放常數(shù)或常數(shù)的段內(nèi)偏移地址,第二個字存放其段地址。例如:AD4DDAD1;指向變量AD1的起始地址,3.1匯編語言指令,3.1匯編語言指令,假設(shè)AD1的段地址為0100H,段內(nèi)偏移地址為2157H,變量定義舉例,若(DS)=1500H,且在數(shù)據(jù)段0000H偏移地址開始有以下變量定義。,3.1匯編語言指令,DAT1DB1

11、2,-12,12H,DAT2DB2*3,$+2,DAT3DW02H,567AH,DAT1,OCH,OF4H,12H,O6H,1500H:0000H,0003H,DAT2,DAT3,0005H,05H,02H,O0H,7AH,56H,1,2,3.1匯編語言指令,DAT4DD89H,DAT4,89H,00H,00H,00H,1500H:0009H,000DH,DAT5,DAT6,DAT5DBTHIS,DAT6DWAB,C,0011H,T,H,I,S,B,3.1匯編語言指令,DAT6,O0H,1500H:0011H,0015H,DAT7,DAT8,DAT6DWAB,C,DAT7DB3DUP(00H)

12、,DAT8DW3DUP(?),0018H,00H,00H,O0H,?,?,B,A,C,3.1匯編語言指令,DAT8,?,?,?,?,1500H:0018H,DAT9,DAT10,DAT9DWDAT6,DAT8DW3DUP(?),DAT10DDDAT8,DAT11DB?,001EH,?,?,11H,00H,18H,0020H,1,2,3.1匯編語言指令,DAT1DB12,-12,12H,DAT2DB2*3,$+2,DAT3DW02H,567AH,DAT4DD89H,1500H:0020H,DAT10,DAT5DBTHIS,DAT6DWAB,C,DAT7DB3DUP(00H),DAT9DWDAT6

13、,DAT8DW3DUP(?),DAT10DDDAT8,DAT11DB?,0024H,?,15H,00H,18H,00H,DAT11,3.1匯編語言指令,變量的屬性,一個變量一旦定義了,就具有了以下五個屬性:,3.1匯編語言指令,其中段地址為變量所在段的段地址,段內(nèi)偏移地址為變量對應(yīng)單元的偏移地址,3.1匯編語言指令,類型,為每個變量所占的字節(jié)數(shù),對于DB、DW、DD、DQ、DT定義的變量其類型分別為1,2,4,8,10。通常又將DB、DW、DD所定義的變量稱為BYTE類型,WORD類型和DWORD類型變量。,3.1匯編語言指令,變量定義語句中,第一個DUP前的系數(shù),表示變量重復(fù)的次數(shù),當(dāng)變量定義語句中沒有出現(xiàn)DUP或者第一個為數(shù)據(jù)時,則其長度為1。,長度:,3.1匯編語言指令,變量定義時,變量所占用的所有字節(jié)數(shù),它等于變量的長度與類型(字節(jié)數(shù))之積。即:SIZE=LENGTHTYPE,大小,3.1匯編語言指令,MOVAX,SEGDAT10;(A

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論