|
你应该使用 push dword msg, 指明字符串 msg 的内容, 应该用push dword [msg] (这只能包含 msg 的前四个字节). 因为 printf需要一个指向字符串的指针, 我们应该指明 msg 的地址。
调用 printf 非常的直接. 注意每一次调用后你必须把栈清除(见下); 所以 PUSH 了一个dword 后, 我从栈里把一个 dword POP 进一个无用的寄存器. Linux 程序只简单的用一个 RET 来返回系统, 由于每个进程都是 shell(或者是 PID)的产物, 所以程序结束后把 控制权还给它. 注意到在 Linux 下, 你是在 "API" 或中断服务的场所里使用系统带来的标准共享库.所有的外部引用由 GCC 管理, 它给 asm 程序员节省了大部分的工作. 一旦你习惯了基本的技巧, Linux 下的汇编编程实际上要比 DOS 简单的多。
C 调用的语法
页码:[1] [2] [3] [4] [5] [6] 第2页、共6页 |