版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
4.3
8086/8088匯編語(yǔ)言程序設(shè)計(jì)基本方法程序設(shè)計(jì)步驟:1.
分析問題,抽象出數(shù)學(xué)模型;2.
確定實(shí)現(xiàn)數(shù)學(xué)模型的算式;3.
繪制描述程序的流程圖(包括確定內(nèi)存單元和分配
寄存器);4.
編寫源程序;5.
上機(jī)運(yùn)行調(diào)試。順序程序結(jié)構(gòu)
一般語(yǔ)句條件程序結(jié)構(gòu)
Y
N
If
–
else
語(yǔ)句分支程序結(jié)構(gòu)
..
Switch
語(yǔ)句4.3
8086/8088匯編語(yǔ)言程序設(shè)計(jì)基本方法程序的基本結(jié)構(gòu)循環(huán)控制結(jié)構(gòu)
N
Y
while
語(yǔ)句循環(huán)控制結(jié)構(gòu)
N
Y
do
--while
語(yǔ)句4.3
8086/8088匯編語(yǔ)言程序設(shè)計(jì)基本方法程序的基本結(jié)構(gòu)???順序程序設(shè)計(jì)
指令指針
IP
值線性增加,IP
=
IP
+
1條件程序設(shè)計(jì)
IP
值受標(biāo)志位的影響而跳變
影響標(biāo)志的指令
CMP、TEST、JXX循環(huán)程序設(shè)計(jì)
IP
值受計(jì)數(shù)器
CX
中的值不為零而循環(huán)
影響標(biāo)志的指令
DEC4.3
8086/8088匯編語(yǔ)言程序設(shè)計(jì)基本方法基本程序設(shè)計(jì)堆棧段數(shù)據(jù)段代碼段DEBUG直接編程初始化輸
入運(yùn)算處理轉(zhuǎn)
換輸
出返回DOS數(shù)值運(yùn)算非數(shù)值運(yùn)算4.3
8086/8088匯編語(yǔ)言程序設(shè)計(jì)基本方法程序的層次模塊結(jié)構(gòu)
源程序4.3
8086/8088匯編語(yǔ)言程序設(shè)計(jì)基本方法例
:程序輸出顯示:“
Welcome
!”,流程描述如下。定義堆棧段
定義數(shù)據(jù)段源程序模塊結(jié)束指示段寄存器
初始化
顯示輸出字符串定義代碼段自動(dòng)返回
DOSSTACKSSEGMENT
STACK
DWSTACKS128
DUP(?)ENDSDATAS
SEGMENTSTRING
DB‘Welcome!’,13h,10h,’$’DATAS
ENDSCODES
SEGMENT
ASSUME
CS:CODE,DS:DATASSTART:
MOV
AX,
DATAS
MOV
DS,
AXLEA
DX,
STRINGMOV
AH,
09HINT
21HMOV
AX,
4C00HINT
21HCODES
ENDS
ENDSTART4.3
8086/8088匯編語(yǔ)言程序設(shè)計(jì)基本方法堆棧數(shù)據(jù)代碼源程序模塊結(jié)束例1:編程計(jì)算W=X+Y+24-Z。其中變量X、Y、Z均為32位數(shù)。4.3.1
順序結(jié)構(gòu)程序DATA
SEGMENT
X
DW
19,
86
Y
DW
3,
25
Z
DW
1987,
325
W
DW
2DUP(?)DATA
ENDSCODE
SEGMENT
ASSUME
CS:CODE,
DS:DATASTART:MOV
AX,
DATAMOV
DS,
AX
MOV
AX,
X
MOV
DX,
X+2ADD
AX,
YADC
DX,
Y+2ADD
AX,
24ADC
DX,
0SUB
AX,
ZSBB
DX,
Z+2MOV
W,
AXMOV
W+2,
DX
MOV
AH,
4CH
INT
21HCODE
ENDS
END
START例2:用變量D1及D2表示的兩個(gè)8字節(jié)無(wú)符號(hào)數(shù)相加。4.3.1
順序結(jié)構(gòu)程序兩數(shù)之和按從高到低依次放在SI,BX,CX,DX中。
DATA
SEGMENT
D1
DB
12H,34H,56H,78H,9AH,0ABH,0BCH,0CDH
D2
DB
0CDH,0BCH,0ABH,9AH,78H,56H,34H,12H
DATA
ENDS
CODE
SEGMENT
ASSUME
CS:CODE,
DS:DATABG:MOV
AX,DATA;給DS賦段值MOV
DS,AX4.3.1
順序結(jié)構(gòu)程序
;將D1表示的偏移地址送DI;取操作數(shù)到寄存器中
;將D2表示的偏移地址送DI
LEA
DI,D1
MOV
DX,[DI]
MOV
CX,[DI+2]
MOV
BX,[DI+4]
MOV
SI,[DI+6]
LEA
DI,D2
ADD
DX,[DI]
ADC
CX,[DI+2]
ADC
BX,[DI+4]
ADC
SI,[DI+6]
MOV
AH,4CH
INT
21HCODE
ENDS
END
BGY
=
?
0例3:符號(hào)函數(shù)4.3.2
分支結(jié)構(gòu)程序??
1???1X
>
0
X
=
0
X
<
0設(shè)X為8位有符號(hào)數(shù)。
4.3.2
分支結(jié)構(gòu)程序DATA
SEGMENT
X
DB
-18
Y
DB
?DATA
ENDSCODE
SEGMENTASSUME
CS:CODE,DS:DATASTART:
MOV
AX,
DATAMOV
DS,
AXMOV
AL,
XCMP
AL,
0JGE
BIGRMOV
AL,
-1JMP
STOPBIGR:JE
STOPSTOP:MOV
AL,
1MOV
Y,
ALCODE
MOV
AH,
4CH
INT
21H
ENDSEND
START例4:比較變量D1和D2表示的兩個(gè)有符號(hào)字?jǐn)?shù)大小,將其中較大數(shù)據(jù)放在BX寄存器中。4.3.2
分支結(jié)構(gòu)程序開始D1
BX結(jié)束BX≥D2?
Y
ND2
BXBEGIN:MOV
AX,
DATAMOV
DS,
AXMOV
BX,
D1CMP
BX,
D2JGE
NEXTMOV
BX,
D2;給DS賦段值
;若D1≥D2,則不交換,轉(zhuǎn)NEXT
;若D1<D2,則交換NEXT:MOV
AH,
4CH
INT
21HCODE
ENDSEND
BEGIN4.3.2
分支結(jié)構(gòu)程序DATASEGMENT;補(bǔ)碼為FF85H;補(bǔ)碼為FF88H
D1
D2DATA
DW
-123H
DW
-120HENDSCODE
SEGMENT
ASSUME
CS:CODE,DS:DATA例5:已知X、Y、Z為三個(gè)無(wú)符號(hào)16位二進(jìn)制數(shù),求三者中最大值,
送MAX單元。4.3.2
分支結(jié)構(gòu)程序4.3.2
分支結(jié)構(gòu)程序DATA
SEGMENTX
DW
180Y
DW
850Z
DW
350MAX
DW
?DATA
ENDSCODE
SEGMENTASSUME
CS:CODE,DS:DATASTART:MOV
AX,
DATAMOV
DS,
AXMOV
AX,
XCMP
AX,
YJAE
XGYMOV
AX,
YXGY:CMP
AX,
ZJAE
GMAXMOV
AX,
ZGMAX:MOV
MAX,
AX
MOV
AH,
4CH
INT
21HCODE
ENDS
END
START4.3.2
分支結(jié)構(gòu)程序例6:已知X、Y、Z為三個(gè)帶符號(hào)8位二進(jìn)制數(shù),
求三者中中間值,送ARV單元。
開始
X
ALX≤Y?Y
ALAL
RV
結(jié)束YNX≤Z?NX≥Z?Y
ALNALYYY≥Z?
YY≥Z?
Y
NALN4.3.2
分支結(jié)構(gòu)程序DATA
SEGMENTX
DB
-5
Y
DB
4
Z
DB
6
ARV
DB
?DATA
ENDSCODE
SEGMENTASSUME
CS:CODE,
DS:DATASTART:MOV
AX,
DATAMOV
DS,
AXMOV
AL,
XCMP
AL,
YJL
XLYCMP
AL,
ZJLE
MARVMOV
AL,
YCMP
AL,
ZXLY:JGE
MARVMOV
AL,
ZJMP
MARV
CMP
AL,
ZJGE
MARVMOV
AL,
YCMP
AL,
ZJLE
MARVMOV
AL,
ZMARV:MOV
ARV,
AL
MOV
AH,
4CH
INT
21HCODE
ENDSEND
START4.3.3
循環(huán)結(jié)構(gòu)程序例7:統(tǒng)計(jì)一個(gè)數(shù)據(jù)塊中負(fù)數(shù)的個(gè)數(shù),個(gè)數(shù)送
RS中。
開始
D1的EA
BX
0
DX
COUNT
CX結(jié)束YCX-1=0?
YDX
RSNBX≥0?
NDX加BX加4.3.3
循環(huán)結(jié)構(gòu)程序DATA
SEGMENTD1
DB
-1,-3,
5,
6,
9,
-5COUNT
EQU
$-D1
RS
DW
?DATA
ENDSCODE
SEGMENTASSUME
CS:CODE,
DS:DATASTART:
MOV
AX,
DATAMOV
DS,
AXBEGIN:MOV
AX,
DATAMOV
DS,
AXMOV
BX,
OFFSET
D1LOP1:MOV
CX,
COUNTMOV
DX,
0
MOV
AL,
[BX]CMP
AL,
0JGE
JUSINC
DXJUS:
INC
BXDEC
CXJNZ
LOP1MOV
RS,
DXMOV
AH,
4CHINT
21HCODEENDSEND
BEGIN例8:找出從無(wú)符號(hào)字節(jié)數(shù)據(jù)存儲(chǔ)變量VAR開始存放的N個(gè)數(shù)中的最大數(shù)放在BH中。4.3.3
循環(huán)結(jié)構(gòu)程序4.3.3
循環(huán)結(jié)構(gòu)程序DSEGSEGMENTVARNDB
5,7,19H,23H,0A0HEQU
$-VARDSEGENDSCSEGSEGMENTASSUME
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年影視制片項(xiàng)目分析評(píng)估報(bào)告
- 2023年專門零售服務(wù)項(xiàng)目調(diào)研分析報(bào)告
- 2023年高壓氧艙項(xiàng)目評(píng)估分析報(bào)告
- 服裝面料采購(gòu)簡(jiǎn)單合同范本2024年
- 2024年建筑工程一切保險(xiǎn)合同
- 2024年中標(biāo)河南南陽(yáng)摩根廣場(chǎng)GRG工程
- 肉牛購(gòu)銷合同范本2024年
- 擔(dān)保公司借款合同范文2024年
- 2024年中小學(xué)生健康體檢合同書
- 輔導(dǎo)班保密協(xié)議2024年
- 【課件收藏】幼兒園《古朗月行》教學(xué)課件
- 2024年秋新人教版八年級(jí)上冊(cè)物理教學(xué)課件 5.5 跨學(xué)科實(shí)踐:制作望遠(yuǎn)鏡
- 人教版(2024新版)一年級(jí)上冊(cè)數(shù)學(xué)第一單元《數(shù)學(xué)游戲》單元整體教學(xué)設(shè)計(jì)
- 廣元市2024年專業(yè)技術(shù)人員公需科目繼續(xù)教育試卷及參考答案
- 2024年江蘇揚(yáng)州江都區(qū)“鄉(xiāng)村振興好青年”招聘209人歷年(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
- 2022年四川省瀘州市龍馬潭區(qū)小升初數(shù)學(xué)試卷
- 人教版一年級(jí)上冊(cè)數(shù)學(xué)全冊(cè)教學(xué)課件(2024年8月新版)
- 2024年印度硫酸鉀肥行業(yè)狀況及未來(lái)發(fā)展趨勢(shì)報(bào)告
- 小學(xué)裝修項(xiàng)目完工報(bào)告范文
- 家庭養(yǎng)老床位建設(shè)和管理實(shí)施細(xì)則
- 2024年中考英語(yǔ)真題-帶答案
評(píng)論
0/150
提交評(píng)論