2008年3月26日 星期三

Hello world by Assembly

Hello world by Assembly

March 25th, 2008 by Chuan-Hsien Lin
Last Modified on March 25th, 2008

不免俗地,也要來寫個 Hello world 組合語言版本,本範例是使用 DOS INT 21h/AH=09h 去顯示字串,只要將字串的 offset 帶給 dx,將 09h 帶給 ah,再呼叫 DOS INT 21h 即可,要注意的是,字串要用 $ 符號來表示字串結尾,完整程式如下,

       .MODEL TINY
       .CODE       
       ORG 100h       
begin: jmp show
message  db 'Hello, world!$'
show:  mov dx, offset message
       mov ah, 09h
       int 21h
       mov ah, 4ch
       int 21h
       END begin  

執行 ml /AT hello.asm 編譯後,執行程式結果如下,

C:\masm>hello
Hello, world!
C:\masm>

關於 DOS INT 21h/AH=09h 的介紹,可以參考 Ralf Brown's Interrupt List 裡的 http://www.ctyme.com/intr/rb-2562.htm 這篇文章。

沒有留言: