版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
微機原理第五章1第一頁,共十七頁,編輯于2023年,星期二過程名常用作CALL調(diào)用指令的操作數(shù),
子程的最后安排RET返回指令,使執(zhí)行完子程后能返回調(diào)用處。過程有兩種類型:NEAR和FAR
無類型項時,默認(rèn)為NEAR類型。當(dāng)過程與調(diào)用指令不在同一段時,應(yīng)將過程定義為FAR類型。過程類型決定子程中RET的返回類型2第二頁,共十七頁,編輯于2023年,星期二例1displayPROC
、、、、C3H
、、
RET;NEAR屬性的過程對應(yīng)段內(nèi)返回
displayENDP例2displayPROCFAR
、、、、CBH
、、
RET;FAR屬性的過程對應(yīng)段間返回
displayENDP3第三頁,共十七頁,編輯于2023年,星期二
匯編語言程序舉例三4第四頁,共十七頁,編輯于2023年,星期二;利用匯編語言程序結(jié)構(gòu)例二(子程結(jié)構(gòu));用二進(jìn)制顯示中斷向量表中數(shù)據(jù)D0H的個數(shù)keyEQU0D0H;用符號表示常量(關(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年,星期二七、等值定義偽操作
格式
符號名EQU需等值的表達(dá)式作用是用符號名等值指定的表達(dá)式其中:
表達(dá)式可以是任何有效的操作數(shù)匯編時用語句中的表達(dá)式代替程序中符號所在的地方。應(yīng)用:1.定義符號常量,方便修改程序。2.某表達(dá)式多次出現(xiàn)時,用等值偽操作可以方便編程。6第六頁,共十七頁,編輯于2023年,星期二;利用匯編語言程序結(jié)構(gòu)例二(子程結(jié)構(gòu));用二進(jìn)制顯示中斷向量表中數(shù)據(jù)D0H的個數(shù)keyEQU0D0H
;用符號表示常量(關(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年,星期二實現(xiàn)用二進(jìn)制顯示中斷向量表中數(shù)據(jù)
D0H的個數(shù)。分析:中斷向量表指內(nèi)存0:0~0:3FFH
大小400H(即1K)字節(jié)空間;
查找關(guān)鍵字D0H;將關(guān)鍵字的個數(shù),存放在BX中,
采用二進(jìn)制顯示BX內(nèi)容,16個字符;
采用子程調(diào)用結(jié)構(gòu)。8第八頁,共十七頁,編輯于2023年,星期二主程序流程圖子程序流程圖9第九頁,共十七頁,編輯于2023年,星期二;利用匯編語言程序結(jié)構(gòu)例二(子程結(jié)構(gòu));用二進(jìn)制顯示中斷向量表中數(shù)據(jù)D0H的個數(shù)keyEQUD0H;用符號表示常量(關(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的個數(shù)keyEQU0D0H;用符號表示常量(關(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指令在中斷向量表中查找從鍵盤輸入的字符,并將其個數(shù)用二進(jìn)制形式顯示出來。(scanskey.asm)codeSEGMENT;代碼段開始
ASSUMECS:codebegin:MOVAX,0000H;設(shè)置查找首地址
MOVDS,AXMOVSI,0000HMOVCX,0400H;設(shè)置查找長度
MOVBX,0;計算值初值
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
在中斷向量表中查找從鍵盤輸入的字符,并將其個數(shù)用二進(jìn)制形式顯示出來。(scanskey.asm)codeSEGMENT;代碼段開始
ASSUMECS:codebegin:MOVAX,0000H;設(shè)置查找首地址
MOVDS,AXMOVSI,0000HMOVCX,0400H;設(shè)置查找長度
MOVBX,0;計算值初值
MOVAH,01H;從鍵盤輸入
INT21H;輸入關(guān)鍵字
MOVDL,AL;保存在DL中next:LODSB;從串取
CMPAL,DL;與關(guān)鍵字比較
JNZpointINCBX;計算值加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)號 回送該變量的以字節(jié)數(shù)表示的類型 (DB為1,DW為2,DD為4,DQ為8,DT為10)
回送標(biā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)容里面會有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度美團(tuán)團(tuán)購服務(wù)合同范本升級版8篇
- 二零二五年度高空作業(yè)腳手架租賃與施工總承包合同3篇
- 2025版協(xié)議離婚特殊規(guī)定及婚姻財產(chǎn)分割與子女撫養(yǎng)合同3篇
- 2025版臨時工特殊工種作業(yè)安全協(xié)議書4篇
- 2025年度酒店式公寓房間長期租賃服務(wù)協(xié)議3篇
- 2025年度個人企業(yè)全額承包經(jīng)營合作協(xié)議范本4篇
- 2025年度新能源電池殼體模具開發(fā)與加工服務(wù)協(xié)議4篇
- 2025年度文化創(chuàng)意園區(qū)場地租賃安全管理與文化創(chuàng)新合同4篇
- 水電消防工程2025年度施工及進(jìn)度管理合同2篇
- 2025新生入學(xué)教育法律協(xié)議書(定制版)2篇
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護(hù)導(dǎo)體
- GJB9001C質(zhì)量管理體系要求-培訓(xùn)專題培訓(xùn)課件
- 二手車車主寄售協(xié)議書范文范本
- 窗簾采購?fù)稑?biāo)方案(技術(shù)方案)
- 基于學(xué)習(xí)任務(wù)群的小學(xué)語文單元整體教學(xué)設(shè)計策略的探究
- 人教版高中物理必修一同步課時作業(yè)(全冊)
- 食堂油鍋起火演練方案及流程
- 《呼吸衰竭的治療》
- 2024年度醫(yī)患溝通課件
- 2024年中考政治總復(fù)習(xí)初中道德與法治知識點總結(jié)(重點標(biāo)記版)
- 2024年手術(shù)室的應(yīng)急預(yù)案
評論
0/150
提交評論