ASNOKE » 05 апр 2017, 03:58
вот простейшая
Код: Выделить всё
; #make_boot#
use16
org 7c00h
main:
jmp far 00:entry1
entry1:
cli
mov ax,cs
mov ds,ax
sti
mov ah,14
xor bl,bl
mov bx,clr
strt0:
mov al,[bx]
test al,al
jz exit0_
inc bx
int 10h
jmp strt0
exit0_:
mov bh,1
mov bl,0
int 10h
mov ah,14
xor bl,bl
mov bx,tex
strt:
mov al,[bx]
test al,al
jz exit_
inc bx
int 10h
jmp strt
exit_:
mov ah,14
xor bl,bl
mov bx,b
strt1:
mov al,[bx]
test al,al
jz exit1_
inc bx
int 10h
jmp strt1
exit1_:
mov ah,14
xor bl,bl
mov bx,d
strt2:
mov al,[bx]
test al,al
jz exit2_
inc bx
int 10h
jmp strt2
exit2_:
mov ah,0
int 16h
cmp ah,0Eh
jz back_space
cmp ah, 1Ch
jz Enter_Press
mov ah,0x0E
mov bh,0
mov [text1],al
int 10h
call exit2_
back_space:
mov ah,0x0E
mov bh,0
mov al,8
int 10h
mov ah,0x0E
mov bh,0
mov al,0
int 10h
mov ah,0x0E
mov bh,0
mov al,8
int 10h
call exit2_
Enter_Press:
mov al,[text1]
cmp al, '1'
jz com_1
cmp al, '2'
jz com_2
cmp al, '3'
jz com_3
cmp al, '4'
jz com_4
cmp al, '5'
jz com_5
mov ah,14
xor bl,bl
mov bx,ad
strt5:
mov al,[bx]
test al,al
jz exit1_
inc bx
int 10h
jmp strt5
com_1:
mov ah,14
xor bl,bl
mov bx,clr
strt3:
mov al,[bx]
test al,al
jz exit3_
inc bx
int 10h
jmp strt3
exit3_:
call exit1_
com_2:
mov ah,14
xor bl,bl
mov bx,ad
strt4:
mov al,[bx]
test al,al
jz exit4_
inc bx
int 10h
jmp strt4
exit4_:
call exit1_
com_3:
cli
hlt
com_4:
mov ah,14
xor bl,bl
mov bx,cre
strt6:
mov al,[bx]
test al,al
jz exit1_
inc bx
int 10h
jmp strt6
com_5:
mov [text2],al
mov ah,14
xor bl,bl
mov bx,text2
strt11:
mov al,[bx]
test al,al
jz exit11_
inc bx
int 10h
jmp strt11
exit11_:
mov [text2],ah
mov ah,14
xor bl,bl
mov bx,text2
strt12:
mov al,[bx]
test al,al
jz exit12_
inc bx
int 10h
jmp strt12
exit12_:
mov [text2],bl
mov ah,14
xor bl,bl
mov bx,text2
strt13:
mov al,[bx]
test al,al
jz exit13_
inc bx
int 10h
jmp strt13
exit13_:
call exit1_
tex db 0Dh,0Ah,'Loading, kernal file...',0
b db 0Dh,0Ah,'Well done',0Ah,0
d db 0Dh,0Ah,'Print command : ',0
ad db 0Dh,0Ah,'1) Clear Screen',0Dh,0Ah,'2) Help of OS',0Dh,0Ah,'3) Kill processor',0Dh,0Ah,'4) Creators',0Ah,0Dh,'5) Registry of processor',0Ah,0Ah,0
cre db 0Dh,0Ah,'ASMcoder or MegaCraZy6',0Dh,0Ah,0
text1 db 0
text2 db 0
clr db 0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0
db 0xAA, 0x55
INT 19h
вот простейшая
[code]
; #make_boot#
use16
org 7c00h
main:
jmp far 00:entry1
entry1:
cli
mov ax,cs
mov ds,ax
sti
mov ah,14
xor bl,bl
mov bx,clr
strt0:
mov al,[bx]
test al,al
jz exit0_
inc bx
int 10h
jmp strt0
exit0_:
mov bh,1
mov bl,0
int 10h
mov ah,14
xor bl,bl
mov bx,tex
strt:
mov al,[bx]
test al,al
jz exit_
inc bx
int 10h
jmp strt
exit_:
mov ah,14
xor bl,bl
mov bx,b
strt1:
mov al,[bx]
test al,al
jz exit1_
inc bx
int 10h
jmp strt1
exit1_:
mov ah,14
xor bl,bl
mov bx,d
strt2:
mov al,[bx]
test al,al
jz exit2_
inc bx
int 10h
jmp strt2
exit2_:
mov ah,0
int 16h
cmp ah,0Eh
jz back_space
cmp ah, 1Ch
jz Enter_Press
mov ah,0x0E
mov bh,0
mov [text1],al
int 10h
call exit2_
back_space:
mov ah,0x0E
mov bh,0
mov al,8
int 10h
mov ah,0x0E
mov bh,0
mov al,0
int 10h
mov ah,0x0E
mov bh,0
mov al,8
int 10h
call exit2_
Enter_Press:
mov al,[text1]
cmp al, '1'
jz com_1
cmp al, '2'
jz com_2
cmp al, '3'
jz com_3
cmp al, '4'
jz com_4
cmp al, '5'
jz com_5
mov ah,14
xor bl,bl
mov bx,ad
strt5:
mov al,[bx]
test al,al
jz exit1_
inc bx
int 10h
jmp strt5
com_1:
mov ah,14
xor bl,bl
mov bx,clr
strt3:
mov al,[bx]
test al,al
jz exit3_
inc bx
int 10h
jmp strt3
exit3_:
call exit1_
com_2:
mov ah,14
xor bl,bl
mov bx,ad
strt4:
mov al,[bx]
test al,al
jz exit4_
inc bx
int 10h
jmp strt4
exit4_:
call exit1_
com_3:
cli
hlt
com_4:
mov ah,14
xor bl,bl
mov bx,cre
strt6:
mov al,[bx]
test al,al
jz exit1_
inc bx
int 10h
jmp strt6
com_5:
mov [text2],al
mov ah,14
xor bl,bl
mov bx,text2
strt11:
mov al,[bx]
test al,al
jz exit11_
inc bx
int 10h
jmp strt11
exit11_:
mov [text2],ah
mov ah,14
xor bl,bl
mov bx,text2
strt12:
mov al,[bx]
test al,al
jz exit12_
inc bx
int 10h
jmp strt12
exit12_:
mov [text2],bl
mov ah,14
xor bl,bl
mov bx,text2
strt13:
mov al,[bx]
test al,al
jz exit13_
inc bx
int 10h
jmp strt13
exit13_:
call exit1_
tex db 0Dh,0Ah,'Loading, kernal file...',0
b db 0Dh,0Ah,'Well done',0Ah,0
d db 0Dh,0Ah,'Print command : ',0
ad db 0Dh,0Ah,'1) Clear Screen',0Dh,0Ah,'2) Help of OS',0Dh,0Ah,'3) Kill processor',0Dh,0Ah,'4) Creators',0Ah,0Dh,'5) Registry of processor',0Ah,0Ah,0
cre db 0Dh,0Ah,'ASMcoder or MegaCraZy6',0Dh,0Ah,0
text1 db 0
text2 db 0
clr db 0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0
db 0xAA, 0x55
INT 19h
[/code]