fasm代码的一开始是下面的这几行代码:
我们先看看当ah=9时调用int 21h的作用。下面是一个简单的例子程序,看完就明白了。
![](http://hi.csdn.net/attachment/201107/5/0_1309881650yGmM.gif)
我们先看看当ah=9时调用int 21h的作用。下面是一个简单的例子程序,看完就明白了。
;使用masm5.0进行编译
;程序功能:在屏幕上显示一行字符串.
;注意:使用masm5.0编译asm文件的时候,文件名长度不要超过8个字符,否则会无法打开文件.
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov ah,9
mov dx,offset msg ;ah=9,ds:dx指向由美元标志($,对应于ASCII码24h)终止的字符串.
int 21h ;将字符串输出给标准输出设备(STDOUT)
mov ah,4ch
int 21h
msg db 'hello,world',24h
code ends
end start
ah=9,ds:dx指向字符串时,调用int 21h就会显示这个字符串。之所以在例子程序中给dx赋值为offset msg,而在fasm源代码中直接给dx赋值_logo。这是由于在fasm中_logo就直接代表偏移地址了,而masm5.0中必须加上offset才会被汇编器看作是偏移地址。