




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微機(jī)原理與接口技術(shù)課件由于本人工作能力和接觸項(xiàng)目有限,希望借此機(jī)會(huì)將自己的體會(huì)與大家分享,更希望大家能提出更多更為深刻的意見(jiàn)!謝謝微機(jī)原理與接口技術(shù)課件由于本人工作能力和接觸項(xiàng)目有限,希望借1(1)、指令性語(yǔ)句能夠被CPU所執(zhí)行的語(yǔ)句,一條指令性語(yǔ)句對(duì)應(yīng)于一條機(jī)器指令,指令性語(yǔ)句的種類(lèi)取決與CPU的指令系統(tǒng)(1)、指令性語(yǔ)句能夠被CPU所執(zhí)行的語(yǔ)2(2)、偽指令語(yǔ)句用于控制匯編過(guò)程,為匯編器提供必要的輔助信息的語(yǔ)句,如定義變量、定義符號(hào)常量等,該類(lèi)語(yǔ)句也稱(chēng)為指示性語(yǔ)句。(2)、偽指令語(yǔ)句用于控制匯編過(guò)程,為匯3(2)、偽指令語(yǔ)句與指令性語(yǔ)句間的區(qū)別偽指令:匯編后不產(chǎn)生任何機(jī)器代碼
指令性語(yǔ)句:匯編后產(chǎn)生機(jī)器代碼(2)、偽指令語(yǔ)句與指令性語(yǔ)句間的區(qū)別偽4(3)、宏指令語(yǔ)句為多次重復(fù)使用的一段程序起一個(gè)名字,在程序其他地方使用這段程序時(shí),使用名字替代該段程序。被名字替換的這段程序就叫宏。宏展開(kāi):將名字還原為程序的過(guò)程宏指令:用名字代替一段程序,宏名形成的指令稱(chēng)為宏指令。(3)、宏指令語(yǔ)句為多次重復(fù)使用的一段程5第3章MASM偽指令系統(tǒng)3.1.2匯編語(yǔ)言語(yǔ)句的格式指令性語(yǔ)句的一般格式為:[標(biāo)號(hào):]指令助記符[操作數(shù)1,操作數(shù)2][;注釋]指示性語(yǔ)句的一般格式為:[名字]偽指令定義符[參數(shù),…,參數(shù)][;注釋]第3章MASM偽指令系統(tǒng)3.1.2匯編語(yǔ)言語(yǔ)句的格式指令性6(1)、標(biāo)號(hào)、名字標(biāo)號(hào)與符號(hào)統(tǒng)稱(chēng)符號(hào),符號(hào)是一個(gè)字符串,可以使用字母、數(shù)字、特殊符號(hào)字母:a~z,A~Z
數(shù)字:0~9
特殊符號(hào):?.@_$等(1)、標(biāo)號(hào)、名字標(biāo)號(hào)與符號(hào)統(tǒng)稱(chēng)符號(hào),符7(2)、助記符、定義符助記符:定義了該語(yǔ)句實(shí)現(xiàn)的操作
定義符:定義了該偽指令所要實(shí)現(xiàn)的操作(2)、助記符、定義符助記符:定義了該語(yǔ)8(3)、參數(shù)用于說(shuō)明操作的對(duì)象,參數(shù)的類(lèi)型和數(shù)目隨指令或偽指令而變。
參數(shù)可以是:常數(shù)、寄存器數(shù)、存儲(chǔ)器數(shù)(3)、參數(shù)用于說(shuō)明操作的對(duì)象,參數(shù)的類(lèi)9(3)、參數(shù)常數(shù):二進(jìn)制常數(shù),由0和1組成,以字母B結(jié)尾
八進(jìn)制常數(shù),由0~7組成,以字母Q結(jié)尾
十六進(jìn)制常數(shù),以0~9及A~F組成,以字母F結(jié)尾
串常量,用引號(hào)引起來(lái)的字符串,其值為ASCII碼(3)、參數(shù)常數(shù):二進(jìn)制常數(shù),由0和1組成,以字母B結(jié)尾10(3)、參數(shù)算術(shù)運(yùn)算符:
+-*/MOD,參與運(yùn)算的數(shù)為整數(shù),結(jié)果也為整數(shù)
如:ADDAX,100*4+2SUBCX,101/2(3)、參數(shù)算術(shù)運(yùn)算符:11(3)、參數(shù)邏輯運(yùn)算符:NOT,AND,OR,XOR,SHR,SHL
例如:MOVAX,1SHL3ORAL,3AND58Q(3)、參數(shù)邏輯運(yùn)算符:12(3)、參數(shù)關(guān)系運(yùn)算符:EQ,NE,LT,LE,GT,GE
例如:MOVAX,123GT3
(3)、參數(shù)關(guān)系運(yùn)算符:13(3)、參數(shù)注釋?zhuān)?/p>
用于說(shuō)明程序的作用,可有可無(wú),如果有,以;號(hào)開(kāi)頭
(3)、參數(shù)注釋?zhuān)?43.2常用偽指令常用偽指令有一下幾類(lèi)符號(hào)定義偽指令數(shù)據(jù)定義偽指令標(biāo)號(hào)析值/屬性操作符段定義偽指令3.2常用偽指令常用偽指令有一下幾類(lèi)符號(hào)定義偽指令數(shù)據(jù)定義偽153.2.1符號(hào)定義偽指令1、等值語(yǔ)句EQU
格式:變量名EQU表達(dá)式
作用:通知匯編器,EQU左邊和右邊是等同的,
使用時(shí),用變量名替代表達(dá)式
示例:COUNTEQU15MOVAX,COUNT3.2.1符號(hào)定義偽指令1、等值語(yǔ)句EQU163.2.1符號(hào)定義偽指令1、等值語(yǔ)句EQU
使用注意事項(xiàng):
(1)EQU所定義的符號(hào),僅僅是用于替代右邊的字符,不占用存儲(chǔ)空間,也不產(chǎn)生目標(biāo)代碼
(2)符號(hào)必須先定義后使用
(3)同一源程序中,EQU所定義的符號(hào)不能重新定義3.2.1符號(hào)定義偽指令1、等值語(yǔ)句EQU173.2.1符號(hào)定義偽指令1、等號(hào)偽指令
格式:變量名=表達(dá)式
作用:與EQU類(lèi)似,但表達(dá)式只能是數(shù)值表達(dá)式,且允許重復(fù)定義
示例:COUNT=15MOVAX,COUNT3.2.1符號(hào)定義偽指令1、等號(hào)偽指令183.2.2數(shù)據(jù)定義與變量偽指令1、數(shù)據(jù)定義偽指令
格式:變量名DB初值表達(dá)式
變量名DW初值表達(dá)式
變量名DD初值表達(dá)式
變量名DQ初值表達(dá)式
變量名DT初值表達(dá)式
3.2.2數(shù)據(jù)定義與變量偽指令1、數(shù)據(jù)定義偽指令193.2.2數(shù)據(jù)定義與變量偽指令1、數(shù)據(jù)定義偽指令DB:變量占1個(gè)字節(jié)存儲(chǔ)空間DW:變量占1個(gè)字存儲(chǔ)空間DD:變量占2個(gè)字存儲(chǔ)空間DQ:變量占4個(gè)字存儲(chǔ)空間DT:變量占5個(gè)字存儲(chǔ)空間3.2.2數(shù)據(jù)定義與變量偽指令1、數(shù)據(jù)定義偽指令203.2.2數(shù)據(jù)定義與變量偽指令2、功能:定義變量,并指導(dǎo)匯編器為變量分配指定的存儲(chǔ)空間,并初始化為變量定義語(yǔ)句中的初值表達(dá)式。
示例:B0DB2B1DB3,5,?,9B2DW10H,2DUP(1234H,?)B3DD1,2B4DB0,2DUP(?,1,2DUP(7))
3.2.2數(shù)據(jù)定義與變量偽指令2、功能:213.2.2數(shù)據(jù)定義與變量偽指令3、注意事項(xiàng):(1)每個(gè)初值所占用的空間取決于偽指令(2)如果不想初始化,可以用?號(hào),表示分配空間,但初值不確定(3)對(duì)于重復(fù)的初值,可以用DUP描述3.2.2數(shù)據(jù)定義與變量偽指令3、注意事項(xiàng):223.2.2數(shù)據(jù)定義與變量偽指令4、變量的訪(fǎng)問(wèn):
變量名代表初值表達(dá)式列表所對(duì)應(yīng)的存儲(chǔ)單元的首地址,變量的訪(fǎng)問(wèn)類(lèi)似于數(shù)組,變量名為該數(shù)組的首地址。
3.2.2數(shù)據(jù)定義與變量偽指令4、變量的訪(fǎng)問(wèn):233.2.2數(shù)據(jù)定義與變量偽指令5、示例:DA2DB1,3,5MOVAL,DA2MOVAH,DA2+2MOVBL,DA2+1
3.2.2數(shù)據(jù)定義與變量偽指令5、示例:243.2.2數(shù)據(jù)定義與變量偽指令6、變量的屬性:
變量定義后,具有以下3個(gè)屬性:(1)、段屬性:變量所在段的段基址(2)、偏移屬性:該變量的段內(nèi)偏移量(3)、類(lèi)型屬性:該變量所占用的存儲(chǔ)單元
3.2.2數(shù)據(jù)定義與變量偽指令6、變量的屬性:253.2.3標(biāo)號(hào)及其屬性1、標(biāo)號(hào)的概念:
標(biāo)號(hào)是一條指令的符號(hào)地址,它常用作轉(zhuǎn)移指令或子程序調(diào)用指令的操作數(shù)。3.2.3標(biāo)號(hào)及其屬性1、標(biāo)號(hào)的概念:263.2.3標(biāo)號(hào)及其屬性2、標(biāo)號(hào)的屬性:
段屬性:標(biāo)號(hào)所在段的段基址
偏移屬性:標(biāo)號(hào)所指出的機(jī)器碼的段內(nèi)偏移量
類(lèi)型屬性:該標(biāo)號(hào)的有效范圍,有NEAR類(lèi)型和FAR類(lèi)型3.2.3標(biāo)號(hào)及其屬性2、標(biāo)號(hào)的屬性:273.2.3標(biāo)號(hào)及其屬性3、標(biāo)號(hào)的定義:
在指令助記符前加上標(biāo)號(hào),并用冒號(hào):分隔3.2.3標(biāo)號(hào)及其屬性3、標(biāo)號(hào)的定義:283.2.3標(biāo)號(hào)及其屬性4、示例:MOVCX,20AGAIN:ADDAX,AXDECCXJNZAGAIN
3.2.3標(biāo)號(hào)及其屬性4、示例:293.2.4析值/屬性操作符1、析值操作符:
析值操作符也稱(chēng)地址回送操作符,作用是把變量或標(biāo)號(hào)的地址取出(1)取偏移地址操作符OFFSET
格式:OFFSET變量或標(biāo)號(hào)
示例:MOVSI,OFFSETBUF(2)取段基址操作符SEG
格式:SEG變量或標(biāo)號(hào)
示例:MOVAX,SEGBUF3.2.4析值/屬性操作符1、析值操作符:303.2.4析值/屬性操作符2、屬性改變操作符:
格式:類(lèi)型PTR地址表達(dá)式
功能:將地址表達(dá)式所指的內(nèi)存單元臨時(shí)指定為PTR前面所給定的類(lèi)型
允許的類(lèi)型有:BYTE,WORD,DWORD,NEAR,F(xiàn)AR
3.2.4析值/屬性操作符2、屬性改變操作符:313.2.4析值/屬性操作符2、屬性改變操作符:
用法:(1)、說(shuō)明存儲(chǔ)單元的類(lèi)型MOVBYTEPTR[SI],5(2)、改變存儲(chǔ)單元屬性A_BYTEDB1,2,3,4MOVAX,WORDPTRA_BYTE(3)、建立FAR標(biāo)號(hào)L_NEAR:MOVAX,0L_FAREQUFARPTRL_NEAR3.2.4析值/屬性操作符2、屬性改變操作符:323.2.5段定義偽指令1、段定義偽指令:
格式:
段名SEGMENT[定位類(lèi)型][組合類(lèi)型][‘類(lèi)別’]…
段名ENDS3.2.5段定義偽指令1、段定義偽指令:333.2.5段定義偽指令1、段定義偽指令:
說(shuō)明:(1)、段名的命名方法同符號(hào)的命名方法(2)、關(guān)鍵字SEGMENT開(kāi)始一個(gè)段的定義,ENDS結(jié)束
一個(gè)段的定義(3)、SEGMENT與ENDS之間的內(nèi)容為一個(gè)邏輯段(4)、段定義的參數(shù)可以省略,一般情況都省略3.2.5段定義偽指令1、段定義偽指令:343.2.5段定義偽指令1、段定義偽指令:
示例:DATASEGMENTADB1,2,3,4
BDB‘ABCD’DATAENDS3.2.5段定義偽指令1、段定義偽指令:353.2.5段定義偽指令2、地址計(jì)數(shù)器:
每個(gè)邏輯段都有一個(gè)地址計(jì)數(shù)器,用于指出該段已經(jīng)使用的存儲(chǔ)單元數(shù),地址計(jì)數(shù)器名字為:$,在程序中可以使用$讀取當(dāng)前地址計(jì)數(shù)器的值3、地址計(jì)數(shù)器的修改偽指令ORG:
用于調(diào)整地址計(jì)數(shù)器的值。3.2.5段定義偽指令2、地址計(jì)數(shù)器:363.2.5段定義偽指令示例:WW1SEGMENTA1DB3A2DW6,7COUNTEQU$-A2ORG$+10A3DD8ORG200HA4DQ?WW1ENDS3.2.5段定義偽指令示例:373.3、程序的段結(jié)構(gòu)一個(gè)簡(jiǎn)單的匯編語(yǔ)言源程序DATASEGMENTVARDB12HDATAENDSSTACKSEGMENTSTACKDB300HDUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXINCVARMOVAH,4CHINT21HCODEENDSENDSTRAT3.3、程序的段結(jié)構(gòu)一個(gè)簡(jiǎn)單的匯編語(yǔ)言源程序383.3.1、源程序的分段結(jié)構(gòu)段是程序的基本構(gòu)成單位,8086的匯編程序由若干段組成,一般的小程序由數(shù)據(jù)段、堆棧段、代碼段3個(gè)段構(gòu)成。
一個(gè)程序必須有代碼段,其余段根據(jù)需要定義。3.3.1、源程序的分段結(jié)構(gòu)段是程序的基393.3.2、段假設(shè)偽指令格式:ASSUME段寄存器:段名,段寄存器:段名,…功能:設(shè)定段和段寄存器的聯(lián)系,設(shè)定好以后訪(fǎng)問(wèn)該段存儲(chǔ)單元時(shí)可以省略段寄存器。說(shuō)明:可以多次使用ASSUME偽指令,一條ASSUME偽指令可以設(shè)定1~4段寄存器3.3.2、段假設(shè)偽指令格式:ASSUME段寄存器:段403.3.3、段寄存器的裝填
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)轉(zhuǎn)讓勞務(wù)合同范例
- 信貸機(jī)構(gòu)合同范例
- 與村委解除租地合同范例
- 買(mǎi)店鋪合同范例
- 2025年納他霉素食品防腐劑項(xiàng)目建議書(shū)
- 伐木工合同范例
- 代理記賬銷(xiāo)售合同范例
- 個(gè)人執(zhí)行合同范例
- 乙方酒吧入股合同范例
- 個(gè)人店鋪雇傭合同范例
- 2024年保育員(初級(jí))證考試題庫(kù)及答案
- 40篇英語(yǔ)短文搞定3500個(gè)單詞 正文
- 2024年度《冠心病》全套課件(完整版)
- 正面吊安全操作規(guī)程培訓(xùn)
- 2023年臺(tái)州市中考科學(xué)(正卷)和答案
- 經(jīng)典美味的宮保雞丁
- 孤獨(dú)癥兒童心智解讀能力
- 2023-2024學(xué)年人教版(2019)必修 第三冊(cè)Unit 2 Morals and Virtues Reading and Thinking 課件(22張)
- 特需病房服務(wù)流程
- 橫貫性脊髓炎演示課件
- 《警察現(xiàn)場(chǎng)急救》課件
評(píng)論
0/150
提交評(píng)論