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