简单的nasm和cl互操作

本文介绍了如何进行nasm汇编模块和cl编译器的互操作,通过一个包含m.asm汇编模块、test.c C调用模块和bd.cmd批处理编译模块的实例,展示了编译与执行流程。在编译时需配置好nasm和cl的相关环境变量。文章提到nasm的简洁性是其优势之一,并引用了《PCASM简化版》中文译本作为参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一共三个文件:

m.asm 汇编模块

test.c c调用模块

bd.cmd 批处理编译模块

编译的时候要设置好nasm和cl相关的环境变量。


m.asm内容:

segment .bss

global _buf
global _buf1
_buf    resb 16
_buf1   rest 1


segment .data

global _v1
global _pv2
global _v3
global _v4
my_size equ 7
%define my_size 7 + 1
_v1 dd -1
_pv2 dd _v1
_v3 db "1Hello World1",0
_v4 times 4 dd 3
msg db "in func 'Return1'",0ah,0


segment .text

global _Return1
_Return1:
push    ebp
mov     ebp,esp

push    ecx

extern _printf
push    msg
call    _printf
add     esp,4

mov     eax,[ebp + my_size]
add     eax,[ebp + 12]
mov     [ebp - 4],eax

mov     dword [_v4],1
mov     dword [_v4 + 4],2
mov     dword [_v4 + 8],3
mov     dword [_v4 + 12],4
inc     dword [_v4 + 12]
dec     dword [_v4 + 12]


mov     byte [_buf1],11
mov     byte [_buf1 + 1],12
mo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值