Hi!
I've got some really simple code that boots the system and displays a
string. I've looked at a couple of examples and I'm aware of the load
to 0x7c00. My jump references are fine but when I try to access
variables, I get nulls instead of the actual data.
Here's the source code:
bits 16
org 0x7c00
jmp start
helloMsg db 'A'
start:
mov al, [helloMsg] ;copy the A
cmp al, 65
jne wrongChar
call printChar ;print the A
jmp end
wrongChar:
mov al, 66 ;print B if wrong character
call printChar
end:
jmp $
printChar:
mov ah, 0eh
;mov al, 65
mov bh, 0h
mov bl, 7h
int 10h
ret
;510 bytes plus the 2 byte signature
zero_padding: times 510 - ($ - $$) db 0
;boot signature
boot_sig: dw 0xaa55
The output I get on running this code is 'B' when it should be 'A'. I
must be missing something.
My setup is VMWare running on Windows, and an NASM compiler.
Any help is appreciated.
Regards,
Nitin


|