1. 程式人生 > >組合語言實現Hello World的輸出

組合語言實現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.值得注意的是在不同版本的編譯器下,可能會細微的差異。