汇编中INT的用法

来源:百度知道 编辑:UC知道 时间:2024/05/28 10:14:21
如下一段代码,是一段实现Helloworld的代码,请详细解释一下该代码
DATAS SEGMENT
string1 db 'Jia I love you!$'
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX

lea dx,string1
mov ah,9 ;为什么要这样写?
int 21h

MOV AH,4CH
INT 21H
CODES ENDS
END START

DATAS SEGMENT
string1 db 'Jia I love you!$' ;这里是定义数据段 ,就是要显示的字符串
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS ;关联寄存器
START:
MOV AX,DATAS
MOV DS,AX

lea dx,string1 ds:dx 指向字符串 以$ 为结束符~
mov ah,9 ;为什么要这样写?
int 21h ;这里是 执行 第21号中断例程的 9号子程序 ~~就是
显示字符串 用的 子函数~
MOV AH,4CH ; 同上 调用 21号中断例程的 4C 号子程序 作用是 返回
INT 21H 常写作 MOV AX,4C00H
CODES ENDS INT 21H
END START

mov ah,0;int 21h是执行9号功能,功能是输出字符串功能,首先得把字符串地址放入DX中寄存器中.
同理,mov ah,4ch;int 21h是结束