汇编

   本文主要为了记录masm汇编的编译、连接指令的,因为平时也不怎么用汇编但用的时候我总是想不起来。先来个示例程序:

 .386
.model flat,stdcall
option casemap:none

include    windows.inc
include    kernel32.inc
includelib kernel32.lib

.data
        sum dd 0
.code
start:
        mov eax, 0
label1:
        add sum, eax
        inc eax
        cmp eax, 10
        jb label1
label2:
        invoke ExitProcess, NULL
end start

 

这里编译的时候要注意,因为这里引用了头文件和lib文件,所以需要设置环境变量include和lib到masm32目录下的include和lib,或者直接在源文件里写绝对路径,最好设置masm32/bin到path变量。
ml /c /coff hello.asm
link /SUBSYSTEM:WINDOWS hello.obj
ml 为编译命令,/c 是仅编译不连接,/coff是编译为coff格式的目标文件。
link 为连接命令,/SUBSYSTEM:WINDOWS 指定为窗口程序

先看开头这些命令:
.386
.model flat,stdcall
option casemap:none
.386 指定处理器构架在.386以上,.model指定编译模式为flat平坦模式,casemap:none选项表明程序大小写敏感。

.data 指定数据段 .code指定代码段。
start 为程序开始指定一个符号
end start 指明程序就此结束,并指定程序入口为start

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值