版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
微機(jī)原理第五章1第1頁,課件共17頁,創(chuàng)作于2023年2月過程名常用作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第2頁,課件共17頁,創(chuàng)作于2023年2月例1displayPROC
、、、、C3H
、、
RET;NEAR屬性的過程對(duì)應(yīng)段內(nèi)返回
displayENDP例2displayPROCFAR
、、、、CBH
、、
RET;FAR屬性的過程對(duì)應(yīng)段間返回
displayENDP3第3頁,課件共17頁,創(chuàng)作于2023年2月
匯編語言程序舉例三4第4頁,課件共17頁,創(chuàng)作于2023年2月;利用匯編語言程序結(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第5頁,課件共17頁,創(chuàng)作于2023年2月七、等值定義偽操作
格式
符號(hào)名EQU需等值的表達(dá)式作用是用符號(hào)名等值指定的表達(dá)式其中:
表達(dá)式可以是任何有效的操作數(shù)匯編時(shí)用語句中的表達(dá)式代替程序中符號(hào)所在的地方。應(yīng)用:1.定義符號(hào)常量,方便修改程序。2.某表達(dá)式多次出現(xiàn)時(shí),用等值偽操作可以方便編程。6第6頁,課件共17頁,創(chuàng)作于2023年2月;利用匯編語言程序結(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第7頁,課件共17頁,創(chuàng)作于2023年2月實(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第8頁,課件共17頁,創(chuàng)作于2023年2月主程序流程圖子程序流程圖9第9頁,課件共17頁,創(chuàng)作于2023年2月;利用匯編語言程序結(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第10頁,課件共17頁,創(chuàng)作于2023年2月;利用匯編語言程序結(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第11頁,課件共17頁,創(chuàng)作于2023年2月例:用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第12頁,課件共17頁,創(chuàng)作于2023年2月例:用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第13頁,課件共17頁,創(chuàng)作于2023年2月八、數(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第14頁,課件共17頁,創(chuàng)作于2023年2月·LENGTH格式:LENGTH
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 紐約地鐵介紹
- 內(nèi)分泌減肥科普
- 活動(dòng)策劃新年儀式方案(3篇)
- 銀行體驗(yàn)活動(dòng)策劃方案(3篇)
- 高中藝術(shù)班班級(jí)管理制度(3篇)
- 2026年及未來5年市場數(shù)據(jù)中國木雕屏風(fēng)行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略咨詢報(bào)告
- 《GA 648-2006交通技術(shù)監(jiān)控信息數(shù)據(jù)規(guī)范》專題研究報(bào)告:專家視角下的深度與未來展望
- 納稅知識(shí)培訓(xùn)課件
- 養(yǎng)老院入住老人財(cái)產(chǎn)管理制度
- 企業(yè)員工培訓(xùn)管理制度
- 原發(fā)性骨髓纖維化2026
- 2023-2024學(xué)年北京市海淀區(qū)清華附中八年級(jí)(上)期末數(shù)學(xué)試卷(含解析)
- TCFLP0030-2021國有企業(yè)網(wǎng)上商城采購交易操作規(guī)范
- 《油氣管道無人機(jī)智能巡檢系統(tǒng)技術(shù)管理規(guī)范》
- 牽引供電系統(tǒng)短路計(jì)算-三相對(duì)稱短路計(jì)算(高鐵牽引供電系統(tǒng))
- (完整版)第一性原理
- 安全技術(shù)勞動(dòng)保護(hù)措施管理規(guī)定
- 學(xué)習(xí)主題班會(huì)課件 高三寒假攻略
- 高一年級(jí)主任工作總結(jié)(4篇)
- 論高級(jí)管理人員應(yīng)具備的財(cái)務(wù)知識(shí)
- GB/T 7354-2003局部放電測量
評(píng)論
0/150
提交評(píng)論