-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

azeem ahmad wrote:
> hi list
> i am about to make a bootable floppy for test
> but i am being unable to get it done
> please review the code below and tell me if there is any problem with it
> ----------------------------------------------------------------------------------------------------------------------------------
> 
> .code16 #assembler directive to start 16-bit real mode for execution
> .text /*assembler directive to tell the start of 'read-only'
> code segment*/
> .org 0x00 /*assembler directive to set the origon to sector 0
> needed to copy the program to the very first sector
> of the floppy disk*/
> 
> .global _start /*assembler directive to export the start section to
> all other programs, i.e. to make it visible to programs
> like linker or other user programs*/
> 
> _start: #label of the start routine
> mov 0x07C0, %ax /*move immidiate operand 07C0 to the
> accumulator register ax, so that it can be
> transfered to data segment register*/
> mov %ax, %ds /*move contents of register ax to register ds*/
> call _boot #call the boot section
> ret #return the control to the caller routine
> 
> _boot: #label of the boot section
> mov $msg, %si /*move the address of the character string
> constant 'msg' to the source index register*/
> call _disp #call subroutine disp
> ret #return the control to the caller routine
> 
> _disp: #label of the disp routine
> cld /*clear direction flag, to permit string
> instructions to increment index registers
> by their own*/
> lodsb /*load the string pointed by ds:si in a
> byte by byte manner into the accumulator*/
> or %al, %al /*check if the entire string has been loaded
> byte-wise by oring al to al, if the result is
> zero, it shows there are no more byte to load*/
> jz ret #jump if al zero to return
> mov $0xE, %ah /*else put code for 'write a character on the
> screen and move forward' into the ah*/
> mov $7, %bh /*enable normal attribute for all the blank
> lines on the screen*/
> int $0x10 /*call interupt 0x10, which is responsible
> for the video display, it will take codes
> from ah and bh*/
> jmp _disp
> 
> msg: #label of the string definition
> .ascii "My Boot System" #definition of the string
> 
> .org 510 #set origon to 510
> .word 0xAA55 #
> --------------------------------------------------------------------------------------------------------------------------------------
> 
> 
> saved the file with the name myos.s
> then
> 
> #as myos.s -o myos.o
> #objcopy -O binary myos.o BOOT
> #dd if=./BOOT of=/dev/fd0 bs=512 count=1
> -------------------------------------------------------------------------------------------------------------------------------------
> 
> the system tries to boot from the floppy and it boots (as it doesnt give
> an error or it doesnt go to the next boot device. but it doesnt display
> the string that i had to show from the string
> 
> please check it and tell me about any possible errors in the code
> 
> Regards
> Azeem
> 
> _________________________________________________________________
> Express yourself instantly with MSN Messenger! Download today it's FREE!
> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
> 

a) Having a little difficulty reading the code...
b) You might get more help with the suse-programming list
c) I think you are assuming the string is null terminated. I am
unfamilier with this assembler but it might be worthwhile explicitly
putting a null at the end of the string.



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org

iD8DBQFGYS3BasN0sSnLmgIRAktSAKCr34HSYobLCCWudXV/S8fJc+V0qwCfQE4j
IRCq2NkLBQjoSgwlXTNJIPc=
=7jdM
-----END PGP SIGNATURE-----
-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to