在程序集中将缓冲区推入堆栈并在C中获取

时间:2016-02-07 19:41:59

标签: c assembly x86 calling-convention

我在C和Assembly中创建一个项目,我需要从C中的汇编代码中获取一个字符串,所以我使用push将它放入堆栈中,我不能在C中使用它。

这是我的汇编代码:

_continue:
     in al, dx
     test al, 8
     jz _continue

     mov cx, 512/2
     mov di, [buffer]
     mov dx, 1f0h
     rep insw
     push buffer
     ret

这是我的C代码:

extern STRING _readd();

void main()
{
     STRING recv = _readd();
     PrintString(recv);
     PrintChar('\n');
     PrintString("Done!");
     readStr();
}

可能我在C代码中根本没有访问堆栈是问题吗?

0 个答案:

没有答案