怎么编译,Link,成.exe文件.
2求masm一个HelloWorld的示例程序
.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
我说怎么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