虽然汇编课上了很久,但是我重来没真正写过一个汇编程序,今晚在网上找了很久,算是成功编译出“Hello world!”。
感觉在debug中写汇编总是不太正式,老师用只是演示程序罢了,masm还是比较适合初学者的,使用其中的masm.exe和link.exe就可以满足现在的需求了。
如下,这第一个程序“Hello world!”是如何实现的:
data segment
message db 'Hello world!$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax, data
mov ds,ax
mov dx,offset message
mov ah,9
int 21h
mov ah,01
int 21h
mov ah,4ch
int 21h
code ends
end start
db 表示字节型数据,data要先赋给ax再转给ds,不然会出错。
在cmd下,进入masm和link所在文件夹下上面的程序应该放在a.txt(名字无所谓),然后把txt改成asm,在cmd下输入masm a,敲三下回车,然后link a,再敲三下回车,如果没有错误会生成一个a.exe文件,就是这段程序生成的可执行文件。