首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >x86组件中rip寄存器和eip寄存器的区别

x86组件中rip寄存器和eip寄存器的区别
EN

Stack Overflow用户
提问于 2022-09-26 07:04:24
回答 1查看 91关注 0票数 0

我正在读一本书来学习黑客(乔恩·埃里克森( Jon )称之为“剥削的艺术”),它从编写一个打印“Hello”的C程序开始。字符串10次,然后分析其程序集(英特尔语法)。在这本书中,指令指针被称为“eip”,而在我的笔记本上,它被称为“rip”。其他许多寄存器(如“ebp、->、rbp”等)也是如此。有什么不同吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-26 23:32:10

这本书是为32位x86体系结构编写的,其中32位寄存器名为eax、ebp、eip等。您的计算机与当今大多数x86机器一样,使用64位amd64 (又名x86-64)的体系结构,该体系结构设计类似于32位x86,但在其他许多不同之处中,64位寄存器名为rax、rbp、rip等。

虽然这些体系结构在概念层次上是相似的,但是利用依赖于非常具体的细节。像调用约定中的差异这样的问题将意味着本书的大部分内容将不适用于64位系统,因此是过时的。

如果您愿意,您可以在32位模式(gcc -m32)编译的程序上测试该书的示例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73850572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档