我需要获取我的 char 指针,然后在屏幕上打印它以查看它是否可以正常工作。我从文件中读取文本并放入我的 char 指针 (sizeof(char*) + filesize) + 1.. 最后我放入了 '\0'。如果我 printf 我的 char* 它很好这是我的 asm 代码
; void processdata(char* filecontent);
section .text
global processdata
extern printf
section .data
FORMAT: db '%c', 10, 0 ; to break the line 10, 0
processdata:
push ebp
mov ebp, esp
mov ebx, [ebp]
push ebx
push FORMAT
call printf
add esp, 8
当我运行它时,我只是在我的变量中看到垃圾。
正如紫罗兰所说:
; void processdata(char* filecontent);
section .text
[GLOBAL processdata] ;global processdata
extern printf
section .data
FORMAT: db '%c', 0
EQUAL: db "is equal", 10, 0
processdata:
lea esi, [esp]
mov ebx, FORMAT
oook:
mov eax, [esi]
push eax
push ebx
call printf
inc esi
cmp esi, 0x0
jnz oook
谢谢