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

求masm一个HelloWorld的示例程序

ff_ff 发布于 2006-02-20 23:39, 2288 次点击
1刚学,我用的是masm50,
怎么编译,Link,成.exe文件.
2求masm一个HelloWorld的示例程序
8 回复
#2
wy_52033452006-02-21 16:50

.386
.model flat,stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data

szCaption db 'A MessageBox !',0
szText db 'Hello, World !',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
start:
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start



这是在WINDOWS下的一个HelloWorld

#3
lg25122006-03-01 00:45

我说怎么2楼的代码和我看的书上的一点都不一样呢,
原来是WINDOWS下的汇编,我给一个DOS下的(.asm):

TITLE EG_HELLOWORLD
STACKSG SEGMENT STACK 'STACK'
DW 32 DUP(?)
STACKSG ENDS

DATASG SEGMENT
STR DB 'HELLO WORLD!','$' ;以"$"结束
DATASG ENDS

CODESG SEGMENT
MAIN PROC FAR
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
MOV AX,DATASG
MOV DS,AX


;调用DOS中断,显示字符串'HELLO WORLD!'
LEA DX,STR
MOV AH,9 ;显示一个字符串:DS:DX=字符串的首地址
INT 21H

MOV AX,4C00H
INT 21H

MAIN ENDP
CODESG ENDS
END MAIN

#4
Fudan_Men2006-03-04 14:09

现在对这些东西稍微有些了解,但还没有真正的动手编过……cft……

#5
leoncuiyi2006-03-09 15:27
大个,你也来啦
大个,你也来啦
#6
chengiant2006-03-17 23:47

#7
Fudan_Men2006-03-19 23:54
你怎么知道是我啊?怎么知道我得ID的?看来浪子回头啦,要好好学习啦,^_^哈哈……
#8
钢燃2006-03-26 15:11
请教lg2512:
1.你使用一个 MAIN PROC FAR 有什么好处吗?
2.加一个stack segment 除了消除那个warning,还有别的用意吗?
#9
民大罗瑞2006-04-04 23:57

我自己弄懂了啊
现在学到别的地方去了
谢谢你们啊
让我们共同搞死MICROSOFT啊

[IMG]http://lovekissxu.go3.icpcn.com/0331zhizuo%20.gif[/IMG]
1