如何从版本6 Unix理解此TMG的汇编代码?

安德烈·马库卡(Andriy Makukha)

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-11RUnix Assembly手册,但是不记得有任何解释。

特别:

  • .意思是“位置计数器”,但这是什么.3=.
  • ..意思是“搬迁柜台”,那是..3什么?

(更糟糕的是,这种语法似乎只在TMG实现中遇到,而在Unix V6的任何其他源文件中都没有。而且,为排除代码损坏或逐步淘汰语法的可能性,TMG源实际上是在Python中编译的运行Unix V6的PDP-11仿真器。)

满天星

.1..1没有特殊含义。它们是简单的标识符(标签,变量等)。除非使用声明.globl否则默认情况下它们将是本地的。

那时就是这种情况,现在仍然如此。例如,gcc使用.以防止静态变量从与由用户定义的符号冲突。

什么是.3=.

它将指定给本地符号.3的位置计数器的值(当前段内的偏移量)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何执行此汇编代码?

来自分类Dev

如何理解这个嵌入式汇编代码?

来自分类Dev

如何理解这个嵌入式汇编代码?

来自分类Dev

此MOVSB汇编语言代码如何工作?

来自分类Dev

如何通过汇编提高此代码段的性能?

来自分类Dev

如何重写此代码以列表理解

来自分类Dev

这段代码的非列表理解版本如何?

来自分类Dev

如何从 Random Waypoint 模型中理解此代码

来自分类Dev

此x86汇编代码如何创建字符串?

来自分类Dev

如何组织汇编代码?

来自分类Dev

如何在XE6上解决“此操作系统版本不支持ITaskbarList3接口”

来自分类Dev

汇编代码生成如何工作?

来自分类Dev

如何反汇编 .NET 代码?

来自分类Dev

如何确保PHP版本高于某个版本才能运行代码?

来自分类Dev

如何查看代码块中的汇编代码?

来自分类Dev

如何在Qt6 beta中修复“没有编译器可以为该qt版本生成代码”?

来自分类Dev

我无法理解这个代码结构。有人可以解释如何执行此代码吗?

来自分类Dev

如何在nvd3中对齐饼图?代码:http://plnkr.co/edit/w0LewO7TmG6Lx3ALfwj8?p = preview

来自分类Dev

如何定义基于.NET Framework版本的代码?

来自分类Dev

如何为不同的iOS版本定义代码

来自分类Dev

如何从外部版本中删除代码

来自分类Dev

如何避免函数const版本的代码重复

来自分类Dev

如何编写我的代码的重构版本?

来自分类Dev

如何从源代码生成API版本?

来自分类Dev

如何使用PHP代码获取UberCart版本

来自分类Dev

如何识别PHP源代码的CodeIgniter版本?

来自分类Dev

如何从 git 获取特定版本的代码?

来自分类Dev

如何重写此匿名函数代码以与5.3之前的PHP版本一起使用?

来自分类Dev

如何在MATLAB中实现此代码段的矢量化版本?

Related 相关文章

  1. 1

    如何执行此汇编代码?

  2. 2

    如何理解这个嵌入式汇编代码?

  3. 3

    如何理解这个嵌入式汇编代码?

  4. 4

    此MOVSB汇编语言代码如何工作?

  5. 5

    如何通过汇编提高此代码段的性能?

  6. 6

    如何重写此代码以列表理解

  7. 7

    这段代码的非列表理解版本如何?

  8. 8

    如何从 Random Waypoint 模型中理解此代码

  9. 9

    此x86汇编代码如何创建字符串?

  10. 10

    如何组织汇编代码?

  11. 11

    如何在XE6上解决“此操作系统版本不支持ITaskbarList3接口”

  12. 12

    汇编代码生成如何工作?

  13. 13

    如何反汇编 .NET 代码?

  14. 14

    如何确保PHP版本高于某个版本才能运行代码?

  15. 15

    如何查看代码块中的汇编代码?

  16. 16

    如何在Qt6 beta中修复“没有编译器可以为该qt版本生成代码”?

  17. 17

    我无法理解这个代码结构。有人可以解释如何执行此代码吗?

  18. 18

    如何在nvd3中对齐饼图?代码:http://plnkr.co/edit/w0LewO7TmG6Lx3ALfwj8?p = preview

  19. 19

    如何定义基于.NET Framework版本的代码?

  20. 20

    如何为不同的iOS版本定义代码

  21. 21

    如何从外部版本中删除代码

  22. 22

    如何避免函数const版本的代码重复

  23. 23

    如何编写我的代码的重构版本?

  24. 24

    如何从源代码生成API版本?

  25. 25

    如何使用PHP代码获取UberCart版本

  26. 26

    如何识别PHP源代码的CodeIgniter版本?

  27. 27

    如何从 git 获取特定版本的代码?

  28. 28

    如何重写此匿名函数代码以与5.3之前的PHP版本一起使用?

  29. 29

    如何在MATLAB中实现此代码段的矢量化版本?

热门标签

归档