DOS调试类似于32位x86程序集的程序

Spa*_*rky 6 debugging assembly

你们许多人可能还记得旧的DOS程序 - 调试.虽然在许多方面已经过时,但其中一个好处是可以轻松找到给定指令的字节序列,而无需完成编写程序,编译,反汇编,检查文件内容的步骤. ..输入指令,然后转储指令地址.令人遗憾的是'debug'不会执行32位指令.

有没有人知道一个类似于32位x86指令的工具?我不想经历整个编译过程; 我只需要能够输入几条指令并让它显示指令的长度及其字节序列.

Gre*_*reg 5

DOSdebug是一个交互式汇编器和一个调试器,输入汇编代码会导致该行立即转换为机器代码 - 这就是你倾倒的内容。

因此,您所需要的只是使用脚本或批处理文件自动化您最喜欢的汇编程序。

这是我使用流行的nasm汇编程序在一两分钟内想出的一个 bash 函数:

opcode() {
  echo $* > tmp.S && nasm tmp.S -o tmp.o && od -x tmp.o
  rm -f tmp.o tmp.S
}
Run Code Online (Sandbox Code Playgroud)

不到一秒钟。调用如下所示:

$ opcode mov eax, [ebx]
0000000 6667 038b
0000004
$ opcode fadd st0,st1
0000000 c1d8
0000002
Run Code Online (Sandbox Code Playgroud)

不是很好,但您可以调整 od 命令行以获得更好的输出。只要您告诉它使用简单的二进制输出格式,这个想法应该适用于任何命令行汇编器。