我是装配和低级编程的新手 我在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程序集二进制文件?
答案 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|