Boot problems with VMware Fusion
Posted: Sat Feb 01, 2014 10:23 am
Hello,
I have written a very simple boot sector, that dumps out 3 characters as a welcome message on the screen:
[org 0x7c00]
jmp 0x0000:start
start:
mov ah, 0x0e
mov al, [welcome_message]
int 0x10
mov al, [welcome_message + 1]
int 0x10
mov al, [welcome_message + 2]
int 0x10
jmp $
welcome_message:
db '123'
; Boot Sector Padding
times 510-($-$$) db 0
dw 0xaa55
When I'm compiling the code with nasm.exe to a flat binary, and running the boot sector in Bochs everything is fine and as expected.
Afterwards I have also converted the boot sector to an ISO file (with MagicISO).
I can also boot that generated ISO without any problems from VMware Fusion.
But as soon as I reference a memory location (like mov al, [welcome_message]), it seems that I'm not accessing the correct memory location, because nothing is shown on the screen (or some garbage data).
When I'm executing some like mov al, 'X', then making a int 0x10, the character "X" is shown on the screen.
So the above mentioned problem only occurs, when I'm trying to access specific memory locations.
Any ideas on that?
Thanks & nice greetings
-Klaus
I have written a very simple boot sector, that dumps out 3 characters as a welcome message on the screen:
[org 0x7c00]
jmp 0x0000:start
start:
mov ah, 0x0e
mov al, [welcome_message]
int 0x10
mov al, [welcome_message + 1]
int 0x10
mov al, [welcome_message + 2]
int 0x10
jmp $
welcome_message:
db '123'
; Boot Sector Padding
times 510-($-$$) db 0
dw 0xaa55
When I'm compiling the code with nasm.exe to a flat binary, and running the boot sector in Bochs everything is fine and as expected.
Afterwards I have also converted the boot sector to an ISO file (with MagicISO).
I can also boot that generated ISO without any problems from VMware Fusion.
But as soon as I reference a memory location (like mov al, [welcome_message]), it seems that I'm not accessing the correct memory location, because nothing is shown on the screen (or some garbage data).
When I'm executing some like mov al, 'X', then making a int 0x10, the character "X" is shown on the screen.
So the above mentioned problem only occurs, when I'm trying to access specific memory locations.
Any ideas on that?
Thanks & nice greetings
-Klaus