我注意到在使用时objdump -d
,它会输出程序集(intel 语法或 AT&T 语法)、二进制操作码编码和地址编号。就我而言,我只希望反汇编程序只输出 AT&T 程序集,因为删除前 18-24 个字符(是的,没有计算在内)将程序集从一个目标文件复制到程序集文件是令人讨厌的。谁能帮忙?
Andriy Makukha
Asked:
2019-07-02 23:00:02 +0800 CST
Unix 的早期版本包括 Doug McIlroy 的工具tmg
(“transmogrifier”),一个早期的编译器-编译器。TMG 是用 Dennis Ritchie 的汇编语言以及 TMGL 本身(TMG 翻译成汇编的语言)实现的。这是TMG 的手册(1972 年)。这是来自版本 6 Unix 的完整源代码。
由于我试图了解 McIlroy 的 TMG 实现是如何工作的,因此我正在阅读该文件,该文件是由 TMG 完成tmgl.s
的翻译。tmgl.t
我对以下摘录感到困惑:
.1=.
1
.2=.
2
.3=.
和:
goto;..2
..3:null
..2:
我阅读了PAL-11R和Unix 汇编手册,但不记得有任何解释。
特别:
.
意思是“位置计数器”,但什么是.3=.
?..
意思是“重定位计数器”,但什么是..3
?
(更糟糕的是,这种语法似乎只在 TMG 实现中遇到,而不是在 Unix V6 的任何其他源文件中遇到。并且,为了排除损坏代码或逐步淘汰语法的可能性,TMG 源代码实际上是在Python中编译的运行 Unix V6的 PDP-11 模拟器。)
Evan Carroll
Asked:
2018-10-02 15:04:35 +0800 CST
我有一个可执行文件,但是当我运行它时,我得到“没有这样的文件或目录”
$ chmod a+x bin
$ file bin
bin: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, not stripped
$ ./bin
bash: ./bin: No such file or directory
请注意,这个可执行文件实际上是 ELF 64 位,操作系统也是如此。
masec
Asked:
2018-07-12 08:08:25 +0800 CST