汇编语言实现Hello World的输出

16位的汇编语言实现 ” Hello World!“ 的难度在于

1.了解INT 21H 的9号中断调用

①   LEA DX, 字符串的开头     或       MOV  DX, OFFSET  字符串的开头 

②  MOV   AH,  09H

③  INT  21H

2. 在定义字符串的时候要在末尾加上 '$' 作为字符串的结束标志。

3.源代码:

DATA   SEGMENT                               ;定义数据段
PRINT  DB "Hello World!", 0AH, 0DH, '$'      ;定义一个字符串,以'$'结束
DATA   ENDS                                  ;定义数据段结束
STACK  SEGMENT   STACK                       ;定义堆栈段 
       DW  20  DUP(0)                        ;为堆栈段分配空间
STACK  ENDS                                  ;定义堆栈段结束
CODE   SEGMENT                               ;定义代码段
ASSUME CS:CODE, DS:DATA, SS:STACK            ;告诉编译器将段寄存器与符号对应起来
START:                                       ;程序入口
        MOV AX, DATA                         
        MOV DS, AX                           ;将段地址DATA送入DS中
        MOV DX, OFFSET  PRINT                ;将字符串地址送人DX中
        MOV AH, 09H
        INT 21H                              ;调用INT 21H的9号中断
        MOV AH, 4CH                          ;返回DOS系统
        INT 21H
CODE   ENDS                                  ;定义代码段结束
END    START                                 ;程序结束
        


4.程序输出

hello.png

5.值得注意的是在不同版本的编译器下,可能会细微的差异。

猜你喜欢

转载自blog.csdn.net/TanguanhuaD/article/details/81975519