![微機原理第4章-匯編語言及匯編程序設(shè)計剖析課件_第1頁](http://file4.renrendoc.com/view/d81cb4a92e61dcd35326a040a260cad8/d81cb4a92e61dcd35326a040a260cad81.gif)
![微機原理第4章-匯編語言及匯編程序設(shè)計剖析課件_第2頁](http://file4.renrendoc.com/view/d81cb4a92e61dcd35326a040a260cad8/d81cb4a92e61dcd35326a040a260cad82.gif)
![微機原理第4章-匯編語言及匯編程序設(shè)計剖析課件_第3頁](http://file4.renrendoc.com/view/d81cb4a92e61dcd35326a040a260cad8/d81cb4a92e61dcd35326a040a260cad83.gif)
![微機原理第4章-匯編語言及匯編程序設(shè)計剖析課件_第4頁](http://file4.renrendoc.com/view/d81cb4a92e61dcd35326a040a260cad8/d81cb4a92e61dcd35326a040a260cad84.gif)
![微機原理第4章-匯編語言及匯編程序設(shè)計剖析課件_第5頁](http://file4.renrendoc.com/view/d81cb4a92e61dcd35326a040a260cad8/d81cb4a92e61dcd35326a040a260cad85.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
《微機原理及應(yīng)用》主講教師廣東工業(yè)大學(xué)自動化學(xué)院自動控制系陳第四章
匯編語言及匯編程序設(shè)計一、概述
二、偽指令三、表達式及運算符四、宏指令五、匯編語言程序的上機過程六、匯編程序的設(shè)計過程七、匯編程序基本設(shè)計方法八、系統(tǒng)功能調(diào)用例題
作業(yè)瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)自動化學(xué)院自動控制系陳一、概述匯編語言是一種面向CPU指令系統(tǒng)的程序設(shè)計語言。指令格式:1、標號是指該指令的符號地址,以冒號結(jié)束;2、用助記符表示操作碼,是指令名稱的代表符號,是語句中的關(guān)鍵字,不可缺?。滑|第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自
動化學(xué)院自動控制系陳一、概述(續(xù)上頁)3、用符號代表操作數(shù)或操作數(shù)地址。操作數(shù)是本指令執(zhí)行需要的數(shù)據(jù)。有些指令不需要指明操作數(shù),可以默認;有些指令需要兩個操作數(shù);還有些操作數(shù)可以用表達式。4
、注釋項是可選項,用分號開始?,|第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)自動化學(xué)院自動控
制系陳一、概述(續(xù)上頁)用匯編語言編寫的程序稱為源程序,常用的匯編程序有ASM-86和宏匯編MASM-86。匯編語言源程序的組成部分:①可以使用CPU指令系統(tǒng)所提供的指令(硬指令);②可以使用各種符合匯編語法的表達式,運算符以及自行定義生成滿足需要的目標代碼的指令?,|第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)動化學(xué)院自動控制系1、標號8086/8088匯編語言中使用的標號必須遵循下列自
規(guī)則:(1)大小寫字母;(2)數(shù)字0~9;(3)某些特殊字符(@,_,?)(4)第一個字符不能是數(shù)字,“?”不能單獨作為標號。
(5)標號的有效長度是31;有效標號:START
MY_PROGRAM無效標號:MAIN%1BETA陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)動化學(xué)院自動控制系二、偽指令偽指令是告訴匯編程序生成目標代碼的指令語自
句。1、符號定義偽指令2、內(nèi)存數(shù)據(jù)定義偽指令3、段定義偽指令4、段寄存器說明偽指令5、定位偽指令陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動
控制系1、符號定義偽指令EQU偽指令等號(賦值)偽指令
(3)解除符號定義偽指令陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系陳(1)EQU偽指令偽指令格式:<符號名>EQU<表達式>指令功能:
給符號名賦值。符號名可以由程序員取定,表達式應(yīng)該是可以計算得出一個具體值。例:PORT
EQU
88H
;定義符號PORT代表88HDATA
EQU
PORT+2
;定義符號DATA代表;PORT+2注意:①用EQU定義的符號,不能重新再定義,除非用PURGE偽指令解除;②如果在表達式中用了其他符號,必須事先定義?,|第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系(2)等號(賦值)偽指令偽指令格式:<符號名>=<表達式>指令功能:
與EQU類似,唯一的區(qū)別是“=”可以隨時對符號名賦新值,而不必使用PURGE偽指令。例:PORT=88H
;定義符號PORT代表88HDATA=PORT+2
;定義符號DATA代表PORT+2陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)自動化學(xué)院自動控制
系(3)解除符號定義偽指令偽指令格式:PURGE
符號1,
符號2,
…指令功能:
撤消用EQU賦值的符號名,以便于賦予新值。例:PURGE
PORT,DATA
;撤消用EQU對PORT、;DATA的賦值陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)自動化學(xué)院自動控制系2、內(nèi)存數(shù)據(jù)定義偽指令①格式: [變量]
命令
參數(shù)1,
參數(shù)2,
…功能:
數(shù)據(jù)定義語句用來分配存儲單元。數(shù)據(jù)定義語句的命令有:DBDWDD定義字節(jié)數(shù)據(jù)定義字數(shù)據(jù)
定義雙字數(shù)據(jù)DQ定義8字節(jié)數(shù)據(jù)DT
定義10字節(jié)數(shù)據(jù)陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工
業(yè)大學(xué)自動化學(xué)院自
動控制系2、內(nèi)存數(shù)據(jù)定義偽指令②復(fù)制操作符格式:
<復(fù)制次數(shù)>
DUP
數(shù)據(jù)1,數(shù)據(jù)2,…功能:匯編程序把所定義的數(shù)據(jù)按先后次序連續(xù)分配存儲空間,所起的名稱只代表第一個單元的字符。例題陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)自動化學(xué)院自動控制系2、內(nèi)存數(shù)據(jù)定義偽指令例:…VAR1
DB
32H,‘ABC’VAR2 DW
1234H,40H,‘AB’DD
12345678HDB
?,11000011BARRY1
DB
2
DUP(0,1)ARRY2 DW
2DUP(?,1)…陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系3、段定義偽指令格式: <段名>
SEGMENT…<段名>
ENDS陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系4、段寄存器說明偽指令格式:ASSUME
段寄存器:段名1[,段寄存器:段名2,…]功能:該偽指令告訴匯編程序在匯編時,各個段寄存器所對應(yīng)的邏輯段基址。注意:除了CS,所有段寄存器的實際值還必須用傳送指令在執(zhí)行時賦值陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系5、定位偽指令?格式:
ORG
<表達式>功能:起址定位偽指令告訴匯編程序,以下的程序或數(shù)據(jù)從表達式指定的偏移地址開始存放;?格式:
EVEN功能:偶地址定位偽指令告訴匯編程序,以下的程序或數(shù)據(jù)從偶地址開始存放。陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)動化學(xué)院自動控制系三、表達式及運算符在匯編語言中,指令的操作數(shù)除了可以是常數(shù)、自
寄存器、變量和標號外,還可以是表達式。表達式是由常數(shù)、寄存器、變量、標號和專用運算符組合而成。在程序匯編時,匯編程序自動把這些表達式計算出來,形成具體的指令操作數(shù)。1、常數(shù)、變量和標號2、表達式及運算符陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系1、常數(shù)、變量和標號常數(shù)
包括數(shù)值型常數(shù)和字符型常數(shù)。如:12H,1234H,’AB’變量變量代表存放在存儲單元中的數(shù)據(jù)。定義后的變量有三個屬性:段屬性表示變量所在的邏輯段;偏移量屬性表示變量所在邏輯段中的偏移地址;(3)類型屬性表示變量占用的存儲單元數(shù),DB、DW、DD、DQ、DT。陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)自動化學(xué)院自動控制系1、常數(shù)、變量和標號標號是指令目標代碼的符號地址。在轉(zhuǎn)移指令中常用標號代替具體轉(zhuǎn)移地址,標號的使用使編寫匯編語言程序時,不必考慮程序匯編、連接后系統(tǒng)分配給指令代碼的實際地址。標號同樣有三個屬性:段屬性表示指令代碼所在的邏輯段;偏移量屬性表示指令代碼所在的邏輯段中的偏移地址;距離屬性表示標號可作段內(nèi)轉(zhuǎn)移或段間轉(zhuǎn)移(NEAR、FAR)。陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)
大學(xué)自動化
學(xué)院自動控制
系2、表達式及運算符表達式由操作數(shù)和運算符組成。其中,操作數(shù)可以是常數(shù)、變量、寄存器和標號。運算符包括算術(shù)運算符、邏輯運算符、關(guān)系運算符、分析運算符和屬性運算符五類運算。注意:運算符的先后次序。陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控
制系五、匯編語言程序的上機過程建立匯編語言的環(huán)境,典型的匯編語言開發(fā)環(huán)境都包含4種工具:1、編輯程序2、匯編程序3、連接程序4、匯編程序的上機過程陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系1、編輯程序編輯程序是用來輸入?yún)R編語言源程序的工具,包括EDIT.EXE,EDLIN.EXE等;匯編語言是以文本格式保存的;匯編程序的源程序必須以ASM作為擴展名;輸入和編輯源程序時必須遵循匯編語言的語法規(guī)定。匯編程序的基本結(jié)構(gòu)例題實際操作:編輯源程序
TEST11.ASM陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)自動化學(xué)院自動控制系匯編程序的基本結(jié)構(gòu)DATAA……DATAASTACKA……SEGMENT;數(shù)據(jù)段內(nèi)定義各類程序執(zhí)行需要的相關(guān)的數(shù)據(jù)ENDSSEGMENT
STACK;根據(jù)具體程序的需要,定義堆棧段供程序執(zhí)行過程;中保存臨時數(shù)據(jù)ENDSSTACKACODEASEGMENTASSUME
CS:CODEA,DS:DATAA,SS:STACKASTART:
MOV
AX,DATAAMOV
DS,AX……;送數(shù)據(jù)段基址;完成具體操作的指令序列CODEA
ENDSENDSTART陳瑋第4章匯編語言及匯編程序設(shè)計廣東工大學(xué)自動化學(xué)院自動控制系實際操作實現(xiàn)(
X+Y→Z,源程序文件名:TEST11.ASM)業(yè)
DATA1
SEGMENT;數(shù)據(jù)段DB
05HDB
04HDB
?DATA1CODE1ENDSSEGMENT
;代碼段ASSUME
CS:CODE1,DS:DATA1START:MOV
AX,DATAMOV
DS,AXMOV
AL,X
ADD
AL,Y
MOV Z,
ALMOV
AH,4CH;數(shù)據(jù)段基址→AX;
AX→DS;內(nèi)存單元X的數(shù)據(jù)→AL;內(nèi)存單元Y的數(shù)據(jù)+AL→AL,?X+Y→AL;AL→內(nèi)存單元Z,?求和結(jié)果送回Z;送功能號;系統(tǒng)功能調(diào)用,返回操作系統(tǒng)INT
21HCODE1
ENDS陳瑋ENDSTART第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動
控制系2、匯編程序匯編程序用來把源程序翻譯成機器碼,包括ASM.EXE,MASM.EXE;匯編程序翻譯源程序,產(chǎn)生一個目標代碼文件,與源程序文件名相同,擴展名為OBJ。實際操作:產(chǎn)生目標文件TEST11.OBJ陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)動化學(xué)院自
動控制系3、連接程序通過匯編產(chǎn)生的是OBJ文件是二進制目標文件,自
但用的是浮動地址,不能直接運行,
必須用連接程序LINK.EXE連接和定位。實際操作:產(chǎn)生可執(zhí)行文件TEST11.EXE陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大
學(xué)自動化學(xué)院自動控
制系4、匯編程序的上機過程實際操作演示陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系陳瑋;數(shù)據(jù)段開始
test1.asmdata1
segmentx
db
05hy
db
04hz
db
?buff
db‘5+4=
$‘;定義一個數(shù)據(jù)串,數(shù)據(jù)串規(guī)定以$結(jié)尾,為了;顯示’5+4=’data1
endscode1
segment;代碼段開始assume
cs:code1,ds:data1
;start:;將數(shù)據(jù)段基址→ax;
ax→ds;內(nèi)存數(shù)據(jù)x→al;內(nèi)存數(shù)據(jù)Y+al→al,即X+Y
→almovax,data1movds,
axmov
al,
x
add
al,
y
mov
z,
allea
dx,
buffmovah,
09hint21hmov
dl,zadddl,30hmov
ah,
02hint21H;al→Z,即X+Y
→Z;裝載buff的有效地址;送功能號;系統(tǒng)功能調(diào)用,顯示屏顯示字符串’5+4=’;將z送dl;將z的值轉(zhuǎn)換成對應(yīng)的ASCII碼值;送功能號;系統(tǒng)功能調(diào)用,將x+y的和z以單字符形式在顯;示屏上顯示出來;送功能號;系統(tǒng)功能調(diào)用,返回DOS狀態(tài)movah,4chint21hcode1
endsend
start第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控
制系六、匯編程序的設(shè)計過程1、分析問題確定算法2、繪制程序流程圖(要求同學(xué)們從現(xiàn)在開始編寫程序前養(yǎng)成先繪制流程圖的習(xí)慣)3、編寫代碼陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)自動化學(xué)院自
動控制系七、匯編程序基本設(shè)計方法1、
簡單程序
作業(yè)2、分支程序3、循環(huán)程序4、子程序陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)動化學(xué)院自動
控制系1、簡單程序簡單程序是指順序結(jié)構(gòu)程序,在程序中不包含自
任何轉(zhuǎn)移類指令。
執(zhí)行時按指令的先后次序從第一條開始逐條執(zhí)行,直至程序結(jié)束。例題陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系例題1、有X,Y兩個16位數(shù)3456H和0ABCDH,求兩數(shù)之和,并將結(jié)果送到Z單元。解:
①編寫流程圖陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系陳例題
程序清單DATA
SEGMENTDW
3456HDW
0ABCDHDW
0DATA
ENDS
;設(shè)置數(shù)據(jù)段,取名DATACODE
SEGMENTASSUME
DS
:DATA,CS:CODESTART
:MOV
AX,DATAMOV
DS,AXLEA
SI,XLEADI,
YMOV
AX,[SI]ADD
AX,[DI]MOV
Z,
AXMOV
AH,
4CH;取數(shù)碼段DATA段址至AX;段地址送DS;將X的有效地址送S1;將Y的有效地址送D1;將X的值送AX;AX+Y的值送回AX;將AX的值送到存儲單元Z;設(shè)置功能號;系統(tǒng)功能調(diào)用,返回DOSINT
21HCODEENDSEND
START瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化
學(xué)院自
動控制系作業(yè)P.1262、4、5、7、12陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化
學(xué)院自
動控制系陳瑋2、分支程序分支程序就是利用轉(zhuǎn)移指令,控制計算機執(zhí)行某段程序或不執(zhí)行某段程序。兩路分支多路分支例題第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動
控制系陳
瑋例題1、內(nèi)存中有一個8位帶符號數(shù),求其絕對
值,并將結(jié)果放回原處。答:編寫流程圖第4章匯編語言及匯編程序設(shè)計程序清單廣東工業(yè)大學(xué)自動化學(xué)院自動控制系陳瑋例題
程序清單DATA2SEGMENTM
DB
05H;第二個程序換成-5,即0fbhDATA2CODE2ENDSSEGMENTASSUMECS:CODE2,DS:DATA2START: MOV
AX,DATA2MOV
DS,AXLEA
SI,MMOV
AL,[SI]AND
AL,ALJNSDONENEG
ALDONE:
MOV[SI],AL;送段地址至DS;取M的地址指針;取帶符號數(shù);判斷符號位;SF=0,轉(zhuǎn)移到DONE;SF=1,AL<0,AL求補(即0-AL);絕對值送回原內(nèi)存單元;系統(tǒng)功能調(diào)用,顯示該數(shù)值CODE2MOV
DL,
[SI]ADD
DL,
30HMOV
AH,
02HINT
21HMOV
AH,4CHINT
21HENDSEND
START第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)自動化學(xué)院自動控制系例題2、編寫程序?qū)崿F(xiàn)函數(shù)。1 (當X>0)Y=
0 (當X=0)9 (當X<0)解:編寫程序清單程序清單陳瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)自動化學(xué)院自
動控制系例題DATAXY程序清單_數(shù)據(jù)段SEGMENT;另外兩組分別是7FH,00HDATAXYX
DB
8FHY
DB
?ENDS陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系陳瑋例題
程序清單_代碼段CODE
SEGMENTASSUME
CS:CODE,DS:DATAXYSTART:
MOV
AX,DATAXYMOV
DS,AXLEASI,
XMOV
AL,[SI]ANDAL,
ALJNSOTHERMOV
Y,
09HJMP
DONEOTHER:
JNZ
PLUSMOV
Y,00H
JMP
DONEPLUS:
MOVY,01H;送段地址;取X的指針;將X的值送AL;自身與,取符號標志位;SF=0,轉(zhuǎn)移到OTHER;SF=1,則X<0;ZF=0轉(zhuǎn)移到PLUS;ZF=1,則X=0;SF=0,ZF=0,則X>0DONE:;系統(tǒng)功能調(diào)用,顯示Y的值CODE2MOVDL,
YADDDL,
30HMOVAH,
02HINT
21HMOV
AH,4CHINT
21HENDSEND
START第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自
動化學(xué)院自動控制系陳瑋3、循環(huán)程序循環(huán)程序就是控制計算機反復(fù)執(zhí)行一段指令序列的程序結(jié)構(gòu)。非零次循環(huán)結(jié)構(gòu)零次循環(huán)結(jié)構(gòu)例題第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系例題1、統(tǒng)計字節(jié)數(shù)據(jù)Z的1的個數(shù),將結(jié)果放在RESULT內(nèi)。解:編寫流程圖陳瑋第4章匯編語言及匯編程序設(shè)計程序清單廣
東工業(yè)大學(xué)自動學(xué)院自動控制系例題DATAXY程序清單——數(shù)據(jù)段SEGMENTX
DB
0FFH
;第二個程序換成-5,即0fbhRESULT DB?化
DATAXY
ENDS陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系陳例題
程序清單
—
代碼段CODE
SEGMENTASSUME
CS:CODE,DS:DATAXYSTART: MOV
AX,DATAXYSUM:MOV
DS,AXXOR
BL,BLMOV
CX,08HLEA
SI,XMOV
AL,[SI]SHR
AL,1JNCNONEINC
BL;送段地址至DS;累加器BL清0;循環(huán)次數(shù)送CX;取X的指針;取X送AL;邏輯右移1位;CF=0,轉(zhuǎn)移到NONE;CF=1,BL+1→BLNONE:LOOP
SUMMOV
RESULT,BL;統(tǒng)計值送RESULT內(nèi)存單元
MOVDL,RESULTADDDL,
30HMOVAH,
02H;系統(tǒng)功能調(diào)用,顯示該統(tǒng)計數(shù)值CODEINT
21HMOV
AH,4CHINT
21HENDS瑋END
START第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)動化學(xué)院自控制
系4、子程序一個程序中,當在不同的地方需要多次使用某自
段程序時,我們常將這段程序單獨編寫成一個程序段,稱為子程序/過程。子程序的定義格式子程序的調(diào)用動
(3)編寫子程序的注意事項陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系(1)子程序的定義格式格式1:子程序名
PROC…RET子程序名ENDP格式2:子程序名:…RET陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化
學(xué)院自動控制系(2)子程序的調(diào)用格式:CALL
子程序名陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)動化學(xué)院自動控制系(3)編寫子程序的注意事項1、現(xiàn)場保護:保護調(diào)用子程序的現(xiàn)場,即保護自
子程序中會用到的寄存器,
將這些寄存器入棧;2、功能子程序:子程序要完成的功能;3、恢復(fù)現(xiàn)場:為了使計算機返回到主程序調(diào)用時的狀態(tài),將入棧的數(shù)據(jù)出棧。注意順序!例題:子程序的基本框架陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系子程序的基本框架設(shè)某一子程序中要用到寄存器BX,CX,SI,DI則:ABC:;子程序的功能程序PUSH
BXPRSH
CXPUSH
SIPUSH
DI……POP
DIPOP
SIPOP
CXPOP
BXRET陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動制系陳例題1編寫統(tǒng)計X數(shù)據(jù)中的“1”的個數(shù)子程序,并編寫主程序調(diào)用。子程序如下:ABC:
PUSH
BXPUSH
CX;累加器BL清0;循環(huán)次數(shù)送CX;邏輯右移1位;CF=0,轉(zhuǎn)移到NONE;CF=1,BL+1→BL;AL里保存的?“1”的統(tǒng)計個數(shù)XOR
BL,BLMOV
CX,08HSUM:SHR
AL,1JNCNONEINC
BL控
NONE:
LOOP
SUMMOVAL,
BLPOP
CXPOP
BXRET瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系陳例題1
主程序_數(shù)據(jù)段_堆棧段DATAXY
SEGMENTX
DB
0FFHSX
DB
?DATAXY
ENDS;----------------------STACK
SEGMENTDW
100DUP(?)STACK
ENDS瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系陳例題1
主程序_代碼段CODE1
SEGMENTASSUMECS:CODE1,
DS:DATAXY,SS:STACKSTART:;系統(tǒng)功能調(diào)用,顯示該統(tǒng)計數(shù)值MOVAX,
DATAMOV
DS,
AXLEABX,
XMOV
AL,[BX]CALL
ABCMOV
[BX+1],
ALMOV
DL,
SXADD
DL,
30HMOV
AH,
02HINT
21HMOV
AH,4CHINT
21H;
子程序插入此處CODE1
ENDSEND
START瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系例題2、將一字節(jié)無符號二進制數(shù)轉(zhuǎn)換為兩位十進制數(shù)的ASCII碼值,并存放在其后的兩個字節(jié)。(顯示程序用子程序編寫)。解:編寫流程圖:陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系程序——數(shù)據(jù)段data1
segment;可任取<100的無符號字節(jié)數(shù)據(jù)x
db
2ahy
db
?z
db
?buff db'2ah=$'data1
ends陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系陳代碼段:code1segmentassume
cs:code1,ds:data1start:
movax,data1movds,axmov
al,xcbwmovbl,0ahdiv
blmovy,almovz,ahleadx,buffmovah,09hint
21h
mov
al,y;上接左下call
dispmov
al,zcall
dispjmp
eenddisp: movdl,aladddl,30hmovah,02hint
21hreteend: movah,4chint
21hcode1
endsend
start;下接右上瑋第4章匯編語言及匯編程序設(shè)計廣
東工業(yè)大學(xué)動化學(xué)院自動控制系思考題試編制程序?qū)⒁粋€字數(shù)據(jù)用十六進制數(shù)的形式顯自
示在屏幕上。陳瑋第4章匯編語言及匯編程序設(shè)計廣東工業(yè)大學(xué)自動化學(xué)院自動控制系八、系統(tǒng)功能調(diào)用MS-DOS是80
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 特殊人群的科學(xué)運動與健康管理
- 幼兒園的德育教育工作方案5
- 環(huán)氧涂料行業(yè)的投資價值及風(fēng)險研究
- 手動葫蘆吊裝施工方案1
- 現(xiàn)代企業(yè)管理中的危機管理與領(lǐng)導(dǎo)力
- Module 1 Unit 1 Did you come back yesterday?(說課稿)-2024-2025學(xué)年外研版(三起)英語五年級上冊
- 1 古詩詞三首(說課稿)-2023-2024學(xué)年統(tǒng)編版語文四年級下冊001
- 2024年四年級英語上冊 Unit 2 My schoolbag The first period說課稿 人教PEP
- Unit 1 Science and Scientists Listening and Speaking說課稿+ 學(xué)案 高中英語同步備課系列人教版2019選擇性必修第二冊
- 2024年河南省《輔警招聘考試必刷500題》考試題庫含答案【綜合卷】
- 2024-2025學(xué)年成都市金牛區(qū)九年級上期末(一診)英語試題(含答案)
- 2025年高壓電工資格考試國家總局模擬題庫及答案(共四套)
- 2024-2025學(xué)年廣東省深圳市南山區(qū)監(jiān)測數(shù)學(xué)三年級第一學(xué)期期末學(xué)業(yè)水平測試試題含解析
- 廣東2024年廣東金融學(xué)院招聘專職輔導(dǎo)員9人筆試歷年典型考點(頻考版試卷)附帶答案詳解
- 2025年研究生考試考研英語(二204)試卷與參考答案
- DB31∕731-2020 船舶修正總噸單位產(chǎn)品能源消耗限額
- 2024-年全國醫(yī)學(xué)博士外語統(tǒng)一入學(xué)考試英語試題
- 初中物理典型易錯習(xí)題(380道)含解析和答案
- 抗滑樁(旋挖樁)專項施工方案
- 天津市-2024年-社區(qū)工作者-上半年筆試真題卷
評論
0/150
提交評論