输出Hello world
首先我们尝试用C语言来实现该功能:
#include <stdio.h>int main() {printf("Hello World!"); // 输出“Hello World!”return 0;
}将这行代码翻译成汇编语言...
; DS 数据段定义
DATA SEGMENTZIFU DB 'Hello World!','$'  ;字符串定义
DATA ENDS; SS 堆栈段定义
STACK SEGMENTDW 20 DUP(0)
STACK ENDS; CS 代码段定义
CODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART:  MOV AX, DATAMOV DS, AXMOV DX, OFFSET ZIFUMOV AH, 09H ;DOSINT 21HMOV AH, 4CHINT 21HCODE ENDS
END  START
运行试试



看不懂,那加个注释
DATA    SEGMENT    ;定义数据段ZIFU    DB "Hello World!",' $'    ;定义一个字符串,以'$"结束
DATA    ENDS STACK    SEGMENT    ;定义堆栈段DW 20 DUP(0)    ;为堆栈段分配空间
STACK    ENDS    ;定义堆栈段结束CODE   SEGMENT    ;定义代码段;将段寄存器与符号对应起来ASSUME CS:CODE, DS:DATA, SS:STACK START:;程序入口MOV AX, DATAMOV DS, AX    ;将段地址DATA送入DS中MOV DX, OFFSET ZIFU    ;将字符串地址送入DX中MOV AH, 09HINT 21H    ;调用INT 21H的9号中断MOV AH, 4CH    ;返回DOS系统INT 21H
CODE    ENDS    ;定义代码段结束END    START    ;程序结束
本程序用到了 INT 21H 的9号中断调用(显示字符串 )
模拟 - 运行

现在可以用emu8086愉快地学习汇编语言了!