汇编语言的Hello world
dseg segment message DB 'Hello world', 0DH, 0AH, 24H dseg ends cseg segment assume cs:cseg, ds: dseg begin: mov ax, dseg mov ds,ax mov dx, offset message mov ah, 9 int 21h mov ah,4ch int 21h cseg ends end begin
在windows下使用masm进行汇编
参考文献: http://bbs.ncre.cn/viewthread.php?tid=48485 是完全的编译图解。
成功后运行 可执行文件名就可以了
0dH 0aH 24H
回车 换行 '$'符号
DS是段寄存器 一般放的是数据段的段地址
dx : 存放数据的数据寄存器
mov ax, dseg
mov ds,ax
寄存器赋值。因为8068/8088规定段寄存器不能直接赋值,必须要由寄存器给他传值,因此想初始化数据段首地址必须要由ax中转一下。
注释:
assume 最典型的用法:是指明变量与段寄存器的联系,比如 assume ds:data,它是告诉编译器以后所有在data段中定义的变量寻址时,使用ds作为段地址,但是它不对程序作任何事
offset 指令返回的是数据标号message的偏移地址
ah 9
int 21h
字符串输出
DOS功能调用(这个可参考dos功能调用表查看详细信息)
4ch
返回
视频演示:
http://player.youku.com/player.php/sid/XODY0NDI1MDA=/v.swf