代码如下:
DATA SEGMENT
STRING DB 'Hello World!', 0DH, 0AH, '$' 0D 0A(ascii)是回车换行,$用来结束字符串输出
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START:
MOV AX, DATA
MOV DS, AX
MOV CX, 5
LEA DX, STRING
SHOW: MOV AH, 9
INT 21H
LOOP SHOW
MOV AH, 4CH
INT 21H
CODE ENDS
END START
在dos中运行结果如下:
运行结果
SEGMENT表示把代码分成不同的段,不同的段保存在不同的地址中。DATA SEGMENT表示这是数据段用来存储数据用的,STACK 是堆栈段,CODE是代码段,MOV AX,DATA 表示将DATA的段地址传递给AX,DS是段寄存器,MOV DX,OFFSET BUF是将BUF所代表的地址传递到DX中,AX,DX是通用寄存器。INT 21H,INT 是软中断,21H是函数的入口地址,至于前面的MOV AH,9是函数的参数。你查一下INT 21H的功能就可以知道参数是9的意思就是显示DS:DX中所指向的字符串,4CH是带返回码结束。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)