flat assembler
Message board for the users of flat assembler.
Index
> DOS > 16 bit real VESA program doesnt assemble |
Author |
|
lazer1 24 Jan 2006, 05:22
Hi, I've just joined the forum
the attached program doesnt assemble, the program is determining the VESA version of the computer, anyone know why it doesnt assemble?
|
|||||||||||
24 Jan 2006, 05:22 |
|
lazer1 24 Jan 2006, 21:31
thanks for in depth reply. You anticipated some questions I was going
to ask, eg I was wondering what CS,DS were set to which you've explained I need to study the format MZ version you created, for .com what are SS:SP set to initially? is it the end of the 64K that begins at 100h? I'm confused about something else, .com has "org 100h", but I thought 16 bit real mode has an IDT starting at 0 with 256 x 4 bytes ie I thought the IDT was from 0 to 3ff so how does the code begin at 100h which is 1/4 of the way through the IDT? and the FAT12 bootloader I downloaded appears to suggest that bootcode is loaded to 7c00h, why at 7c00h? why not 100h or other? one other thing: can you explain what the difference between .com and .exe is? can both be used for bootloader code? with .exe if I want to use a stack do I need any further things or can I just directly do "call" and "ret" without initialising ss:sp? I am new to x86 though am familiar with 68k and am currently relying on internet info as the bookshops here dont sell any x86 asm books at all, I've been going in circles reading the Intel P4 documents, I've also been wondering how you do macros in fasm, so far none of the internet info I've looked at talks about x86 macros. Can you give some representative examples of macros in fasm? |
|||
24 Jan 2006, 21:31 |
|
UCM 29 Jan 2006, 20:14
the BIOS loads code from a hard disk drive or floppy drive into address 7c00h, always.
thats why all boot code in x86 starts at virtual address 7c00h. |
|||
29 Jan 2006, 20:14 |
|
lazer1 29 Jan 2006, 22:40
UCM wrote: the BIOS loads code from a hard disk drive or floppy drive into address 7c00h, always. is there any useful system data or code from 0 to 7c00? I know the real mode IDT is from 0 to 3ff, (256 interrupts x 4 bytes each) what happens from 400 to 7c00? |
|||
29 Jan 2006, 22:40 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.