組合語言實現Hello World的輸出
阿新 • • 發佈:2019-01-23
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.程式輸出
5.值得注意的是在不同版本的編譯器下,可能會細微的差異。