程序荟萃.docx
- 文档编号:9062765
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:8
- 大小:15.40KB
程序荟萃.docx
《程序荟萃.docx》由会员分享,可在线阅读,更多相关《程序荟萃.docx(8页珍藏版)》请在冰豆网上搜索。
程序荟萃
显示字符串程序
DATASSEGMENT
STRINGDB0ah,0dh,10,13,'Helloworld!
',13,10,'$'
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDX,AX
LEADX,offsetSTRING
MOVAH,9
INT21H
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
注:
13,10起换行的作用。
要显示字符,先将首地址给DX。
再movah,9int21h
窗口不关闭,movah,7int21h或mov0,ahint16h
求两个数的和,显示其结果
DATASSEGMENT
FIVEDB5
DATASENDS
STACKSSEGMENT
DB128DUP(?
)
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
MOVAL,FIVE
ADDAL,3
ADDAL,30H
MOVDL,AL
MOVAH,2
INT21H
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
注,只能显示一位数字。
读一个多位数。
这个数在ax中,除十求余,再化成一个八位asc码,是通过dl传送的。
datasegment
data1db5dup(?
)
db'$'
dataends
codesegment
assumecs:
code,ds:
data;,ss:
stack1;es:
extra
start:
movax,data
movds,ax
movax,135
movsi,offsetdata1
movbx,10
addsi,4
loop1:
subdx,dx
divbx
ordl,30h;将余数转换为ascii码。
mov[si],dl
decsi
cmpax,0;AX大于0时继续相除求余。
jaloop1
movdx,offsetdata1
movah,09h
int21h
movah,7
int21h
codeends
endstart
子过程的运用,先注意格式。
逐步理解各指令的运用。
datasegment
data1db5dup(?
)
db'$'
dataends
;extrasegment
;ddb200dup(?
)
;extraends
stack1segment
db20dup(?
)
stack1ends
codesegment
assumecs:
code,ds:
data,ss:
stack1;es:
extra
start:
movax,data
movds,ax
;movax,extra
;moves,ax
movax,stack1
movss,ax
;;
movax,888
;;
callhtd
;;
movdx,offsetdata1
movah,09h
int21h
movah,7h
int21h
htdprocnear
movsi,offsetdata1
movbx,10
addsi,4
loop1:
subdx,dx
divbx
ordl,30h;将余数转换为ascii码。
mov[si],dl
decsi
cmpax,0;AX大于0时继续相除求余。
jaloop1
ret
htdendp
codeends
endstart
求二个数的和,可依次编写下列各程序。
1)将二个立即数相加,并显示。
程序只要使用代码段,没有数据段。
CODESSEGMENT
ASSUMECS:
CODES
START:
MOVAL,5
ADDAL,3
ADDAL,30H
MOVDL,AL
MOVAH,2;输出一个字符。
字符值在DL中。
INT21H
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
2)将二个存储数相加,并显示。
程序必须有数据段。
DATASSEGMENT
oneDB5
twodb3
DATASENDS
STACKSSEGMENT
DB128DUP(?
)
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
MOVAL,one
ADDAL,two
ADDAL,30H
MOVDL,AL
MOVAH,2
INT21H
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
3)将上面的加指令换成减指令。
即将add换成sub,观看结果。
4)多位数的加法
datasegment
data1db5dup(?
)
db'$'
dataends
CODESSEGMENT
ASSUMECS:
CODES,ds:
data
START:
movax,data
movds,ax
MOVAx,15
ADDAx,23
;;;;;;;;;;;;;;;;;;;;
callhtd;用于表示为五位数字
;;;;;;;;;;;;;;;;;;;;
movdx,offsetdata1
movah,09h
int21h用于显示出数字
;;;;;;;;;;;;;;;;;;;
MOVAH,4CH
INT21H
;;;;;;;;;;;;;;;;;;;
htdprocnear
movsi,offsetdata1
movbx,10
addsi,4
loop1:
subdx,dx
divbx
ordl,30h;将余数转换为ascii码。
mov[si],dl
decsi
cmpax,0;AX大于0时继续相除求余。
jaloop1
ret
htdendp
CODESENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 荟萃