一共三个文件:
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 &nb

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

被折叠的 条评论
为什么被折叠?



