String的问题是Nasm函数的返回值

时间:2014-04-18 14:38:33

标签: nasm

我创建了一个新的string.s:

section .data
  answer:DB "shit",10,0
section .text
align 16
extern printf
extern puts
global string

string:
push    ebp
mov ebp, esp    ; Entry code - set up ebp and esp
pusha           ; Save registers
;mov ecx, dword [ebp+8] ; Get argument (pointer to string)

_return:    
    popa        ; Restore registers
mov eax,[answer]
push answer
call puts
add esp,4

mov esp, ebp    ; Function exit code
pop ebp
ret

我有主文件calc.s,它调用没有参数的字符串函数。 字符串返回一个指向字符串的指针" shit" ,返回值保存在指针中 然后打印出来:

section .data
pointer: DD 0
value_pritner: DB "the value is %s",10,0
...
some other irrelevant code
...
call string
mov [pointer],eax
add esp,4

push pointer
push value_printer ;
call printf
add esp,8

在运行程序时我正在使用stdout

the value is /   / ;between there pointer value that according

id不知道为什么 eax 的值不是指向字符串的指针 我也试过

mov eax,answer

仍然没有

0 个答案:

没有答案