Variable values are lost



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)

.



Relevant Pages

  • Variable values are lost
    ... I've got some really simple code that boots the system and displays a ... jmp start ... call printChar;print the A ... mov al, ...
    (alt.lang.asm)
  • Re: Variable values are lost
    ... jmp start ... call printChar;print the A ... mov al, ... ASSume nothing, except that your code is loaded at 7C00h, and the boot drive is in dl. ...
    (alt.lang.asm)
  • Re: Variable values are lost
    ... jmp start ... helloMsg db 'A' ... call printChar;print the A ... mov al, ...
    (alt.lang.asm)
  • [2] Lock-free questions ...
    ... {$IFDEF FreePascal} ... MOV EDI, sNum32 ... JMP @@EXIT; ... JMP @@EXIT ...
    (comp.programming.threads)
  • Re: 8031 question
    ... AUXBUF EQU 0; TRICK - BAFER ... BUFFER EQU 100H; PREPARE FOR OUTPUT ... MOV R0,#TEMPDIV; TEMPERATURU CITA SAMO U KRUGU 1 ... JMP EQSEC; ...
    (sci.electronics.design)