Variable values are lost
- From: NiTiN <spamtrap@xxxxxxxxxx>
- Date: Thu, 24 Jul 2008 03:08:35 -0700 (PDT)
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
(Nitin: 'x' post to alt.lang.asm)
.
- Prev by Date: Re: Problem Linking (win32)
- Next by Date: Re: Atomic operations in 32 and 64 bit platforms
- Previous by thread: Problem Linking (win32)
- Next by thread: Disassembler questions
- Index(es):
Relevant Pages
|