一个C语言调用内嵌汇编实现的函数的例子。 // 比较两个字符串。其实这就是0.11版本linux内核的strncmpexterninlineintmy_strncmp(constchar*cs,constchar*ct,intcount){registerint__res;__asm__("cld\n""1:\tdecl %3\n\t""js 2f\n\t""lodsb\n\t""scasb\n\t""jne 3f\n\t""testb %%al,%%al\...
cdecl(C declaration,即C声明)是源起C语言的一种调用约定,也是C语言的事实上的标准。 1.函数实参在线程栈上按照从右至左的顺序依次压栈 2.函数结果保存在寄存器EAX/AX/AL中 3.浮点型结果存放在寄存器ST0中 4.编译后的函数名前缀以一个下划线字符 例:sumExample编译后:_sumExample 5.调用者负责从线程栈中弹出...
2、参数在调用函数前就已经存入堆栈,从[EBP+8]、[EBP+C]、……开始。 3、局部变量是在调用函数后,存入缓冲区里,从[EBP-4]、[EBP-8]、……开始 4、函数运算得到的结果,通常存在EAX里。 第一节 1.2逆向汇编 第一节 1.3练习1 练习1:编写一个函数能够对任意2个整数实现加法,并分析函数的反汇编. int Plu...