回 帖 发 新 帖 刷新版面

主题:[求助]请问传递指针的代码怎样写?

比如:
int i
scanf("%d",&i);
在nasm的汇编语言里怎么写调用代码?

---
a : dd 12h
str : db "%d",0
...
...
lea edx,[a]
push edx
push str
call scanf
add esp,8h
---------------
如果没有%d这样的指针操作就一切正常,但是如果传了这样有指针就会提示段错误,我应该怎样传递指针呢??

回复列表 (共4个回复)

沙发

nasm没用过,

但这样 把指针参数入栈没问题啊,是不是调用设置的问题

板凳


如果scanf是不带%d的就没错,就是指针操作的问题,但是看不懂,要不要设置什么段寄存器?

3 楼

《intel汇编语言程序设计》:
要调用标准库函数,得从c/c++的主模块启动以运行库的初始化代码

4 楼

原来是段定义错误了,全定义在text段了。应该是data段才能写~

我来回复

您尚未登录,请登录后再回复。点此登录或注册