ChinaUnix.net
相关文章推荐:

andl esp

编译一个最简单的c程序: //test.c int main() { int a=3,b=5; int c; c = a+b; printf("c is %d\n",c); } gcc -S -O2 test.c test.s: main: pushl %ebp movl %esp, %ebp subl $8, %esp andl $-16, %esp subl $16, %esp movl $8, 4(%esp) movl $.LC0, (%esp) call printf leave ret 我对其...

by maddrone - Linux文档专区 - 2008-01-17 11:23:30 阅读(1161) 回复(0)

相关讨论

本帖最后由 z32556601 于 2013-05-10 14:06 编辑 %esp中存放的线性地址还是物理地址...

by z32556601 - 内核源码 - 2013-05-10 16:29:38 阅读(2048) 回复(10)

写个程序调试 (gdb) disassemble main 0x0000000000400520 : push %rbp 0x0000000000400521 : mov %rsp,%rbp 0x0000000000400524 : callq 0x400508 0x0000000000400529 : mov $0x0,%eax 0x000000000040052e : leaveq 0x000000000040052f : retq 想问为什么ebp,esp,变成了rbp,rsp? 谢谢

by LaoLiulaoliu - Linux环境编程 - 2008-06-21 22:40:59 阅读(3770) 回复(8)

movl %esp 532(%ebx) 这条汇编语句是什么意思?

by xiaozhu2007 - C/C++ - 2008-04-24 14:31:28 阅读(3920) 回复(10)

处理异常的时候,在标号为error_code的代码中,有这样一段代码:[code] // 在arch/x86/kernel/entry_32.S movl PT_GS(%esp), %edi # get the function address movl PT_ORIG_EAX(%esp), %edx # get the error code movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart [/code]我查了下PT_GS和PT_ORIG_EAX的值,发现定义在arch/ia64/ia32/sys_ia32.c中,如下[code] #define PT_GS 10 #define PT_ORIG_EAX 11 [/...

by nwcfafniw - 内核源码 - 2013-12-22 20:15:55 阅读(910) 回复(2)

本帖最后由 C_H_L 于 2013-05-15 12:24 编辑 最近学习AT&T汇编,看到下面一段: function_label: pushl %ebp movl %esp, %ebp < normal function code goes here> movl %ebp, %esp popl %ebp ret 这段代码,目的是把esp放到ebp中 (1) 为什么红色部分还要把ebp压栈、出栈? (2) 没有pushl ...

by C_H_L - CPU与编译器 - 2013-08-23 16:08:38 阅读(1631) 回复(7)

看stack frame的时候老是对ebp,esp这两个弄混,请大牛讲讲:em03:

by pengjianbokobe - C/C++ - 2012-11-25 14:08:45 阅读(17943) 回复(9)

本帖最后由 dugubai 于 2010-07-31 21:17 编辑 请问在内核的kgdb调试过程中,i r esp ebp命令显示的是不是堆栈指针的真实值? 为什么其值与通过如下汇编语句传出来的值不同?二者有何区别跟联系?二者跟p $sp, p $fp显示的堆栈值又有什么关系?[code]__asm__ __volatile__ ("movl %%esp, %0\n\t" "movl %%ebp, %1\n\t" : "=m" (espt), "=m" (ebpt) : : "memory");[/code]...

printk

by dugubai - 内核源码 - 2010-07-31 21:12:01 阅读(8754) 回复(0)

esp:栈顶指针寄存器 EBP:栈基址指针寄存器 这么说对么?也就是说在一个子过程中,如果用push进行压栈操作,只会改变esp的值而不会改变EBP的值??

by Lynch2007 - Linux环境编程 - 2009-03-06 15:44:27 阅读(1784) 回复(2)