[ glupi @ 24.12.2004. 21:09 ] @
Imam jedan problem koji vjerujem da nije kompliciran za rijesit ali meni predstavlja problem. Imam loader koji ide na prvi sektor diskete i koji ispise nesto i ucita kernel koji se isto nalazi na disketi iza loadera. On ljepo ucita taj kernel (dobro nije to kernel ali ce valjda postat jednog dana) i mogu iz njega ispisivat karaktere ali ne i stringove. Zasto i kako? Probao sam i sa forom call pa pop adresu stringa ali isto nije htio ispisat string. loader Code: [ORG 0] jmp 07C0h:start banner db '_______ Loader',13,10,0 start: mov ax, cs mov ds, ax mov es, ax mov si, banner stat: lodsb cmp al, 0 je reset_floppy mov ah, 0Eh mov bx, 7 int 0x10 jmp stat reset_floppy: mov ax, 0 mov dl, 0 int 13h jc reset_floppy read_floppy: mov ax, 1000h mov es, ax mov bx, 0 mov ah, 2 ; Load disk data to ES:BX mov al, 12 ; Load 5 sectors mov ch, 0 ; Cylinder=0 mov cl, 2 ; Sector=2 mov dh, 0 ; Head=0 mov dl, 0 ; Drive=0 int 13h ; Read! jc read_floppy mov ah,0eh mov al, 41h mov bx, 7 int 0x10 jmp 1000h:0000 ; Jump to the program times 510-($-$$) db 0 dw 0AA55h kernel Code: [ORG 0] jmp main s_mesg db 'kernel v0.1 LOADED',13,0 s_help db 'H - help',13,10,'R - reboot',13,10,0 main: mov si, s_mesg call prints mov si, s_help call prints jmp read prints: lodsb cmp al, 0 je read mov ah, 0Eh mov bx, 7 int 0x10 jmp prints ret read: xor ah,ah ;u al slovo int 0x16 cmp al, 48h call help cmp al, 52h jmp reboot call printc jmp read help: mov si, s_help call prints ret printc: mov ah, 0Eh mov bx, 7 int 0x10 ret reboot: int 0x19 |