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
[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
[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