注册 登录
编程论坛 汇编论坛

初学汇编烦请大家帮忙解决这个hello world的问题!

zengraoli 发布于 2010-07-15 17:54, 949 次点击
.model tiny
.code

org 0100h

ok: mov dx,offset msgstr
mov ah,09h
int 21h

mov ax,4ch
int 21h
ret

msgstr db "hello world!!",0dh,0ah,'$'
end ok

这段程序为什么在Masm for Windows 集成实验环境 2010种不能够正常显示出来?

还有啊?这种方式和我以前写的:

assume cs:code

code segment
start:
mov ax,1000h
mov bh,1
div bh

code ends
end start

这种形式有什么区别啊?怎么好像很乱啊?也不是.386模式啊?
5 回复
#2
东海一鱼2010-07-16 11:21
两者是完全一样的。

上面的写法是MASM6.0以后支持的简化段声明方式的写法。如 .code .data 就是完全段声明的 code segment code ends和data segment  data ends。
.model指示内存使用模式,上面的tiny就表示微型模式,用于生成com文件。windows程序一般用flat模式(平坦内存模式,段空间为4G);

.386不是模式,是指你的程序使用的指令集。

需要注意的是在WINDOWS下,编写DOS程序和编写windows程序用的汇编器是一样的,差别在于link程序。DOS必须用16位的连接程序才行。你上面说的
集成环境没用过,你可以好好看看它的使用帮助。



[ 本帖最后由 东海一鱼 于 2010-7-16 11:26 编辑 ]
#3
zengraoli2010-07-16 13:04
回复 2楼 东海一鱼
虽然已经 知道了 不过还是谢谢你
在csdn上面问到了
#4
zengraoli2010-07-16 13:04
没注意啊 比csdn上面写得要仔细 呵呵 再谢
#5
yuyuhongss2010-08-13 14:04
我喜欢后面一种
#6
Alar302010-08-14 10:16
2#貌似比俺尽责哈
1