【问题标题】:equivalent x86_64 instructions to ARMv7 ones与 ARMv7 等效的 x86_64 指令
【发布时间】:2013-10-27 15:40:26
【问题描述】:

我正在尝试在 C 和 ASM 的源代码中移植一些 ASM 指令。 谁能帮我找到一个指令集并了解ARMv7指令的用途? 实际上我正在处理中断,所以我想“翻译”:

iretq
int $0x80
int $0x04

我从来没有在 ARMv7 ASM 中编程过。

谢谢!

【问题讨论】:

  • 问“这些说明做什么”不是更有效率吗?然后你会学到一些东西,也许可以自己移植代码,而不是仅仅要求别人为你做翻译工作
  • iretq = 从中断返回; int = 调用中断,第一个参数是 IDT 上的中断号。无论如何谢谢... ;)
  • movs pc, lrsvc #0。我不确定答案是否有帮助。

标签: assembly x86 x86-64 armv7 instructions


【解决方案1】:

对应的英特尔指令分别为iretint。也就是说,中断处理是高度特定于 CPU 和平台的。一对一地翻译命令很可能不会产生一个工作程序。如果您正在开发应用程序,则不应弄乱中断(即使是 int 80h - 有更好的方法来执行系统调用)。如果你正在开发驱动程序或操作系统内核,你应该系统地学习汇编,而不是逐行翻译。

int 命令理论上可能存在于应用程序代码中——它调用一个中断,这是一种与操作系统交互的奇特但合法的方式。另一方面,iret 命令只能在中断处理程序中使用。它从未在内核空间之外使用过。

【讨论】:

  • 平台是 Android,CPU 是 ARMv7 Processor rev 0 (v7l)。我还想知道该配置的操作 ASM。如果仅凭这些信息很难做到,我并没有要求翻译。我想学习。问题不是人们认为他们不知道,而是我以前从未使用过 ARM ;)
  • 如果你正在开发一个应用程序,你不应该搞乱中断(即使int 80h - 有更好的方法来执行系统调用)。如果你正在开发驱动程序或操作系统内核,你应该系统地学习汇编,而不是逐行翻译。
猜你喜欢
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 2011-07-22
相关资源
最近更新 更多