解释下面一个汇编程序每一行代码的意思功能.

 我来答
弘菊俎水
2019-10-12 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:815万
展开全部
DATAS
SEGMENT
;数据段定义伪指令,数据段名为DATAS
STRING
DB
'Hello
World!',13,10,'$'
;一个字符串以$结尾
DATAS
ENDS
;数据段结束
CODES
SEGMENT
;代码段定义
ASSUME
CS:CODES,DS:DATAS
;利用ASSUME伪指令指定某个段分配给哪一个寄存器,它并没有把段地址装入段寄存器,所以一般在代码段开始处,还必须把段地址装入相应的段寄存器(如DS)中。但是代码段和堆栈段不需要这样,CS、SS是由系统负责设置的
START:
MOV
AX,DATAS
;取段地址送入AX
MOV
DS,AX
;把段地址装入DS
LEA
DX,STRING
;LEA装入有效地址。将STRING的有效地址(或段内偏移量)送入DX,此时DX就指向了STRING所对应的一个存储单位
MOV
AH,9
INT
21H
;调用21H中断的9号功能。9号功能用于显示字符串,即在屏幕上显示由DX指向的字符串(即STRING指向的字符串),汇编语言规定,9号功能显示符串以'$'
结束。13,10(0DH,0AH)是回车和换行符的ASCII码。
MOV
AH,4CH
INT
21H
;调用21H中断的4CH功能,即返回到DOS
CODES
ENDS
;代码段结束
END
START
;从START处开始执行指令
总结:该程序就是将以STRING为首地址的字符串利用9号功能号输出显示在屏幕上,即在屏幕上显示Hello
World!并回车换一行。通常我们输出完一串数据或者字符串都是需要回车换一行的。
注:21H中断9号功能的使用要点
1、被显示的字符串应该以'$'作为结束符号
2、把要被显示字符串所在的首地址赋给DX
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式