3

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デバッグコマンドを使用して各コマンドの値とアドレスを確認していますが、デバッグを使用すると別のものが表示されます

私の質問は、これらのファイルをデバッグできるアプリケーションはありますか? ブートローダー アセンブリ バイナリでさえ?

4

1 に答える 1

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.3および2.2.4を読む必要があります。

于 2013-04-13T09:00:40.167 に答える