現在、ブートローダーを作成しています。
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です
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/07 03:43