Win32 MASM汇编程序基本结构

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;模式和源程序格式定义段
;
.386	;伪指令.386,用于告诉编译器本程序中使用的指令集,如果后面带有字母p, 则表示程序中可以使用特权指令
		;
.model	flat, stdcall	;用于定程序的工作模式,使用方法位:
					;	.model	内存模式[,语言模式][,其他模式]
					;flat 位WIN32程序是用的内存模式,代码和数据段使用同一个4GB段
					;如果定义了 .model flat, MASM自动为各段寄存器做如下定义:
					;ASSUME	cs:FLAT, ds:FLAT, ss:FLAT, es:FLAT, fs:ERROR, gs:ERROR, 也就是说CS、DS、SS、ES默认使用平坦模式,
					;而FS、GS默认不使用。如果需要使用它们,只需在使用前声明一下即可:
					;ASSUME	fs:nothing, gs:nothing 或者 fs:FLAT, gs:FLAT
					;	stdcall 为语言模式,表示:
					;	1. 参数从右向左压入堆栈
					;	2. 由被调用函数负责清理堆栈

option	casemap:none	;这个选项定义了程序中的变量和子程序名是否对大小写敏感。由于Win32 API 名称区分大小写,所以必须制定这个选项。

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;Include
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include		windows.inc
include 	user32.inc
includelib	user32.lib
include		kernel32.inc
includelib	kernel32.lib

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;data segment
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data
szCaption	db	"A message Bos", 0
szMessage	db	"Hello world!",0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;stack
;在Win32 程序中不必定义堆栈段,系统会自动分配堆栈空间
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;code segment
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
start:
	invoke	MessageBox, NULL, offset szMessage, offset szCaption, MB_OK
	invoke	ExitProcess, NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值