質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
アセンブリ言語

アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

Q&A

解決済

1回答

767閲覧

nasmでのorg命令の問題

yukkuri

総合スコア624

アセンブリ言語

アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

0グッド

0クリップ

投稿2020/04/07 01:11

現在、ブートローダーを作成しています。
nasmを使用して、このようなソースを書いていました。

nasm

1bits 16 2org 0x7c00 3 4entry: 5 mov ax, 0 6 mov cs, ax 7 mov ds, ax 8 mov es, ax 9 mov ss, ax 10 11 mov si, msg 12 mov al, [si] 13 14; al:character 15put_msg: 16 mov bx, 0x15 17 mov ah, 0x0e 18 int 0x10 19 inc si 20 mov al, [si] 21 cmp al, 0 22 jne put_msg 23 24loop: 25 hlt 26 jmp loop 27 28msg: 29 db 0x0a 30 db "Loading..." 31 db 0x0a, 0 32 33skip: 34 times 0x1fe - ($ - $$) db 0 35 36bootflag: 37 dw 0x55AA 38

その際、org命令でうまく指定された位置に設定されていないようでした。

list

1 1 bits 16 2 2 org 0x7c00 3 3 4 4 entry: 5 5 00000000 B80000 mov ax, 0 6 6 00000003 8EC8 mov cs, ax 7 7 00000005 8ED8 mov ds, ax 8 8 00000007 8EC0 mov es, ax 9 9 00000009 8ED0 mov ss, ax 10 10 11 11 0000000B BE[2100] mov si, msg 12 12 0000000E 8A04 mov al, [si] 13 13 14 14 ; al:character 15 15 put_msg: 16 16 00000010 BB1500 mov bx, 0x15 17 17 00000013 B40E mov ah, 0x0e 18 18 00000015 CD10 int 0x10 19 19 00000017 46 inc si 20 20 00000018 8A04 mov al, [si] 21 21 0000001A 3C00 cmp al, 0 22 22 0000001C 75F2 jne put_msg 23 23 24 24 loop: 25 25 0000001E F4 hlt 26 26 0000001F EBFD jmp loop 27 27 28 28 msg: 29 29 00000021 0A db 0x0a 30 30 00000022 4C6F6164696E672E2E- db "Loading..." 31 30 0000002B 2E 32 31 0000002C 0A00 db 0x0a, 0 33 32 34 33 skip: 35 34 0000002E 00<rept> times 0x1fe - ($ - $$) db 0 36 35 37 36 bootflag: 38 37 000001FE AA55 dw 0x55AA

どうしてなのでしょうか。

ちなみに、バージョンは2.14.02です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

リロケータブルアセンブラなので、リスト出力には実際のアドレスはでません。
リンクも済ませ、mapファイルを出力させて確認する必要があります

投稿2020/04/07 01:35

編集2020/04/07 01:36
y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukkuri

2020/04/07 03:43

そうなんですね。nasmはあまり使ったことがなかったので、知りませんでした。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問