我一直在阅读组装。从我对编程语言的理解来看,编译器(汇编器......我知道在其他地方争论的两者之间存在细微的差异),生成目标代码。大量没有指令的不友好的机器语言。该目标代码由处理器解释,然后链接器使其成为可执行文件。我知道每个处理器都必须在其正确的组装中进行交谈。IE。.386, .486, .586 令我困惑的是通过 MASM 运行 DOS 程序和通过没有 NASM 或 GAS 的 Linux 运行相同程序之间的差异。如果源代码编译成目标代码,此时不是跨平台吗?我可以像 Linux 一样简单地从我的戴尔双启动 Windows。我在这里想念什么?
另外我一直在寻找一种查看目标代码的方法,这样我就不必通过 Immunity Debugger 来破译执行。只是我编写的源代码的指令机器代码指令。有没有办法在 Linux 中产生像 objdump 这样的结果?