I have some code. for a bootloader. And I would like it if I had some functionality in the assembly code for loading more than 512 bytes from the bias. I obviously need this because I would like to incorporate C in the near/distant future, and I wouldn't dare begin to write C code targeting a 512 byte machine
By the way... I'm sorry for the amount of comments I have in my code... its still a little difficult for me to understand such strange low level key words and understand what they mean. sorry if the sheer amount of comments hurts anybodies eyes.
By the way, I would just like to mention how I looked everywhere and couldn't find any solutions to the issue at hand. I searched for like 5 hours and didn't find any data as to how to extend the amount of data I could get.
ORG 0x7c00 ; originate from the address given to you by the BIOS
BITS 16 ; only assemble assembly instructions in 16 bits
start:
mov si, message ; source index register
call print
print:
mov bx, 0
.loop:
lodsb ; loops character loading
cmp al, 0 ; comparing al register to 0
je .done ; jumping to the done sublabel ".done "
call print_char ; calling the print char routeine
jmp .loop
.done:
ret
print_char:
mov ah, 0eh ; weird registers
int 0x10 ; calling the bias
ret ; return from subroutine
jmp $ ; insure that it will keep jumping to itself to insure that you don't execute the data, or the signature on lines 12-13
message: db "Q29ydnVz", 0
times 510- ($ - $$) db 0 ; states that program must fill at least 510 bytes of data
dw 0xAA55 ; intel machines flip the bytes