2012-07-14 27 views
1

我想编写一个脚本,它以x86汇编语言代码作为输入,并生成注释以解释程序中每个语句的作用。像这样的工具已经存在了吗?此外,这是一个相对简单的程序来编写(因为每个汇编语言语句的语法是相对简单的?)为汇编语言程序中的每条语句生成说明

+8

生成评论,说*每个语句正在做什么是相对简单的。生成说*为什么*代码正在做的评论将是革命性的! – 2012-07-14 04:12:15

+0

你在找什么(例如)将'mov rax,rbx'变成“将寄存器rax中的值复制到寄存器rbx中”? – huon 2012-07-14 05:16:16

+0

@dbaupp,这正是我想要做的。 :) – 2012-07-14 14:57:33

回答

4

我从来没有听说过一个。我认为这是一个很好的理由。

如果您查看CPU文档中的说明,例如intiret指令,您将看到多页文本和伪代码。

大多数像mov这样的常规指令也有一些窍门。首先,他们可能有一些不平凡的行为细节。其次,它们可能会导致异常并完全记录发生异常后发生的情况,这是不切实际的,因为这取决于操作系统和程序的其他部分。

所以,这样的工具真的会有一个非常有限的应用。

在任何情况下,了解每条指令的最佳方式是将读取CPU文档与调试器一起播放。

0

创建程序来完成此操作可能是学习汇编语言的好方法。如果您有一些现有的汇编代码,但您不知道它的作用,请使用相关的汇编参考手册以及您最喜欢的语言中的一些相对简单的字符串解析代码来帮助学习汇编指令集。

您可能会发现只有少数指令类型构成了大部分汇编代码的大部分。在汇编层面,计算机所做的大部分工作是:复制数据,算术,重复和比较。