




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
微機(jī)原理第五章1第一頁,共十七頁,編輯于2023年,星期二過程名常用作CALL調(diào)用指令的操作數(shù),
子程的最后安排RET返回指令,使執(zhí)行完子程后能返回調(diào)用處。過程有兩種類型:NEAR和FAR
無類型項(xiàng)時(shí),默認(rèn)為NEAR類型。當(dāng)過程與調(diào)用指令不在同一段時(shí),應(yīng)將過程定義為FAR類型。過程類型決定子程中RET的返回類型2第二頁,共十七頁,編輯于2023年,星期二例1displayPROC
、、、、C3H
、、
RET;NEAR屬性的過程對(duì)應(yīng)段內(nèi)返回
displayENDP例2displayPROCFAR
、、、、CBH
、、
RET;FAR屬性的過程對(duì)應(yīng)段間返回
displayENDP3第三頁,共十七頁,編輯于2023年,星期二
匯編語言程序舉例三4第四頁,共十七頁,編輯于2023年,星期二;利用匯編語言程序結(jié)構(gòu)例二(子程結(jié)構(gòu));用二進(jìn)制顯示中斷向量表中數(shù)據(jù)D0H的個(gè)數(shù)keyEQU0D0H;用符號(hào)表示常量(關(guān)鍵字)codeSEGMENT;代碼段開始
ASSUMECS:codebegin:MOVAX,0000HMOVDS,AXMOVSI,0000HMOVCX,0400HMOVBX,0MOVAL,keynext:CMP[SI],ALJNZpointINCBXpoint:INCSILOOPnextCALLdisplay;調(diào)用顯示子程
MOVAH,4CH;返回DOS
INT21H;用二進(jìn)制顯示BX內(nèi)容子程displayPROC
MOVCX,16rotate:ROLBX,1MOVDL,BLANDDL,01HADDDL,30HMOVAH,2HINT21HLOOProtateRET;子程返回displayENDP
codeENDS;代碼段結(jié)束
ENDbegin;指示程序結(jié)束和
;程序入口5第五頁,共十七頁,編輯于2023年,星期二七、等值定義偽操作
格式
符號(hào)名EQU需等值的表達(dá)式作用是用符號(hào)名等值指定的表達(dá)式其中:
表達(dá)式可以是任何有效的操作數(shù)匯編時(shí)用語句中的表達(dá)式代替程序中符號(hào)所在的地方。應(yīng)用:1.定義符號(hào)常量,方便修改程序。2.某表達(dá)式多次出現(xiàn)時(shí),用等值偽操作可以方便編程。6第六頁,共十七頁,編輯于2023年,星期二;利用匯編語言程序結(jié)構(gòu)例二(子程結(jié)構(gòu));用二進(jìn)制顯示中斷向量表中數(shù)據(jù)D0H的個(gè)數(shù)keyEQU0D0H
;用符號(hào)表示常量(關(guān)鍵字)codeSEGMENT;代碼段開始
ASSUMECS:codebegin:MOVAX,0000HMOVDS,AXMOVSI,0000HMOVCX,0400HMOVBX,0
MOVAL,key
next:CMP[SI],ALJNZpointINCBXpoint:INCSILOOPnextCALLdisplay;調(diào)用顯示子程
MOVAH,4CH;返回DOS
INT21H;用二進(jìn)制顯示BX內(nèi)容子程displayPROC
MOVCX,16rotate:ROLBX,1MOVDL,BLANDDL,01HADDDL,30HMOVAH,2HINT21HLOOProtateRET;子程返回displayENDP
codeENDS;代碼段結(jié)束
ENDbegin;指示程序結(jié)束和
;程序入口7第七頁,共十七頁,編輯于2023年,星期二實(shí)現(xiàn)用二進(jìn)制顯示中斷向量表中數(shù)據(jù)
D0H的個(gè)數(shù)。分析:中斷向量表指內(nèi)存0:0~0:3FFH
大小400H(即1K)字節(jié)空間;
查找關(guān)鍵字D0H;將關(guān)鍵字的個(gè)數(shù),存放在BX中,
采用二進(jìn)制顯示BX內(nèi)容,16個(gè)字符;
采用子程調(diào)用結(jié)構(gòu)。8第八頁,共十七頁,編輯于2023年,星期二主程序流程圖子程序流程圖9第九頁,共十七頁,編輯于2023年,星期二;利用匯編語言程序結(jié)構(gòu)例二(子程結(jié)構(gòu));用二進(jìn)制顯示中斷向量表中數(shù)據(jù)D0H的個(gè)數(shù)keyEQUD0H;用符號(hào)表示常量(關(guān)鍵字)codeSEGMENT;代碼段開始
ASSUMECS:codebegin:MOVAX,0000HMOVDS,AXMOVSI,0000HMOVCX,0400HMOVBX,0MOVAL,key
next:CMP[SI],ALJNZpointINCBXpoint:INCSILOOPnextCALLdisplay;調(diào)用顯示子程
MOVAH,4CH;返回DOSINT21H;用二進(jìn)制顯示BX內(nèi)容子程displayPROC
MOVCX,16rotate:ROLBX,1MOVDL,BLANDDL,01HADDDL,30HMOVAH,2HINT21HLOOProtateRET;子程返回displayENDP
codeENDS;代碼段結(jié)束
ENDbegin;指示程序結(jié)束和
;程序入口10第十頁,共十七頁,編輯于2023年,星期二;利用匯編語言程序結(jié)構(gòu)例二(子程結(jié)構(gòu));用二進(jìn)制顯示中斷向量表中數(shù)據(jù)D0H的個(gè)數(shù)keyEQU0D0H;用符號(hào)表示常量(關(guān)鍵字)codeSEGMENT;代碼段開始
ASSUMECS:codebegin:MOVAX,0000HMOVDS,AXMOVSI,0000HMOVCX,0400HMOVBX,0MOVAL,key
next:CMP[SI],ALJNZpointINCBXpoint:INCSILOOPnextCALLdisplay;調(diào)用顯示子程
MOVAH,4CH;返回DOSINT21H;用二進(jìn)制顯示BX內(nèi)容子程displayPROC
MOVCX,16rotate:ROLBX,1MOVDL,BLANDDL,01HADDDL,30HMOVAH,2HINT21HLOOProtateRET;子程返回displayENDP
codeENDS;代碼段結(jié)束
ENDbegin;指示程序結(jié)束和
;程序入口思考:如何用SCANSB改寫此程序?11第十一頁,共十七頁,編輯于2023年,星期二例:用CMP指令在中斷向量表中查找從鍵盤輸入的字符,并將其個(gè)數(shù)用二進(jìn)制形式顯示出來。(scanskey.asm)codeSEGMENT;代碼段開始
ASSUMECS:codebegin:MOVAX,0000H;設(shè)置查找首地址
MOVDS,AXMOVSI,0000HMOVCX,0400H;設(shè)置查找長度
MOVBX,0;計(jì)算值初值
MOVAH,01H;從鍵盤輸入
INT21H;輸入關(guān)鍵字在AL中next:CMP[SI],ALJNZpointINCBXpoint:INCSI
CALLdisplay;調(diào)用顯示子程
MOVAH,4CH
;調(diào)用4CH功能
INT21H
;返回DOS;用二進(jìn)制顯示BX內(nèi)容子程
displayPROC
MOVCX,16;顯示位數(shù)
rotate:ROLBX,1MOVDL,BLANDDL,01HADDDL,30H
MOVAH,2HINT21H
LOOProtate
RET;子程返回
displayENDP
codeENDS;代碼段結(jié)束
ENDbegin12第十二頁,共十七頁,編輯于2023年,星期二例:用LODSB
在中斷向量表中查找從鍵盤輸入的字符,并將其個(gè)數(shù)用二進(jìn)制形式顯示出來。(scanskey.asm)codeSEGMENT;代碼段開始
ASSUMECS:codebegin:MOVAX,0000H;設(shè)置查找首地址
MOVDS,AXMOVSI,0000HMOVCX,0400H;設(shè)置查找長度
MOVBX,0;計(jì)算值初值
MOVAH,01H;從鍵盤輸入
INT21H;輸入關(guān)鍵字
MOVDL,AL;保存在DL中next:LODSB;從串取
CMPAL,DL;與關(guān)鍵字比較
JNZpointINCBX;計(jì)算值加1point:LOOPnext;查找結(jié)束?
CALLdisplay;調(diào)用顯示子程
MOVAH,4CH;調(diào)用4CH功能
INT21H;返回DOS;用二進(jìn)制顯示BX內(nèi)容子程
displayPROCMOVCX,16;顯示位數(shù)
rotate:ROLBX,1MOVDL,BLANDDL,01HADDDL,30HMOVAH,2HINT21HLOOProtateRET;子程返回
displayENDPcodeENDS;代碼段結(jié)束
ENDbegin用LODSB改寫程序13第十三頁,共十七頁,編輯于2023年,星期二八、數(shù)值回送操作符:TYPE,LENGTH,SIEE,OFFSET,SEG5種。把一些特征或存貯器地址的一部分作為數(shù)值回送。
·TYPE格式:TYPEvariable變量 或label標(biāo)號(hào) 回送該變量的以字節(jié)數(shù)表示的類型 (DB為1,DW為2,DD為4,DQ為8,DT為10)
回送標(biāo)號(hào)類型數(shù)值(NEAR為-1,F(xiàn)AR為-2)例: ARRAYDW1,2,3ADDSI,TYPEARRAY匯編程序其形式:ADDSI,214第十四頁,共十七頁,編輯于2023年,星期二·LENGTH格式:LENGTH
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何做好班前培訓(xùn)
- 班級(jí)活動(dòng)中的多元文化交流計(jì)劃
- 供應(yīng)鏈協(xié)作提升倉庫運(yùn)作效果計(jì)劃
- 懂孩子玩轉(zhuǎn)班級(jí)活動(dòng)計(jì)劃
- 線上用戶行為分析月度研究計(jì)劃
- 投資咨詢行業(yè)的創(chuàng)新模式試題及答案
- 2024年馬工學(xué)管理時(shí)間管理技巧試題及答案
- 工作日志分析的馬工學(xué)視角試題及答案
- 嬰兒安全睡眠育嬰師試題及答案
- 獸醫(yī)心理素質(zhì)提升試題及答案
- 辦公用品售后服務(wù)方案范文
- 高處作業(yè)吊籃危險(xiǎn)源辨識(shí)及風(fēng)險(xiǎn)評(píng)價(jià)表
- 《中國近現(xiàn)代史綱要(2023版)》課后習(xí)題答案合集匯編
- 霸王茶姬營銷策略分析報(bào)告
- 醫(yī)院產(chǎn)科培訓(xùn)課件:《正常分娩》
- 個(gè)人征信承諾書
- 天翼云高級(jí)解決方案架構(gòu)師認(rèn)證考試復(fù)習(xí)題庫(含答案)
- 王陽明后學(xué)研究綜述
- 中國女性生理健康白皮書
- 數(shù)據(jù)析及DPS數(shù)據(jù)處理系統(tǒng)講解學(xué)習(xí)
- 高一語文學(xué)法指導(dǎo)(絕對(duì)經(jīng)典)課件
評(píng)論
0/150
提交評(píng)論