调试平面汇编二进制文件

时间:2013-04-01 22:35:50

标签: assembly x86

我是装配和低级编程的新手 我在windows xp中使用FASM。当我汇编波纹管代码时,它会给我一个.bin文件。

data1 db 25
data2 db 10001001b
data3 db 12h
      org 0x10
data4 db '2367'
      org 0x18
data5 db ?
      org 0x20
data6 db 'Hello there'

我正在学习的书是使用windows debug命令查看每个命令的值和地址,但是当我使用debug时它会显示其他内容

我的问题是有没有可以调试这些文件的应用程序?甚至是bootloader程序集二进制文件?

1 个答案:

答案 0 :(得分:0)

使用'org'指令将变量放在特定位置可以在MASM中使用,但不能在FASM或NASM中使用。

使用FASM和NASM,您必须这样做:

data1 db 25                       // 0x00
data2 db 10001001b                // 0x01
data3 db 12h                      // 0x02
      times 0x10 - ($-$$) db 0
data4 db '2367'                   // 0x10
      times 0x18 - ($-$$) db 0
data5 db '?'                      // 0x18
      times 0x20 - ($-$$) db 0
data6 db 'Hello there'            // 0x20

然后您可以组装为平面二进制文件并使用hexdump检查结果:

00000000  19 89 12 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000010  32 33 36 37 00 00 00 00  3f 00 00 00 00 00 00 00  |2367....?.......|
00000020  48 65 6c 6c 6f 20 74 68  65 72 65                 |Hello there|

您应该阅读FASM手册的2.2.32.2.4部分。