PDA

View Full Version : سوال: مشکل در بوت لودر



tanzadeh7
دوشنبه 20 مرداد 1393, 19:41 عصر
سلام من وقتی این کد رو کامپایل می کنم این خطار رو میده


Bits 16
jmp main



reset_floppy:
mov ah, 0
mov dl, BYTE [BootDrive]

print:
lodsb
cmp al, 0
je Done
mov ah, 0eh
int 10h
jmp print

Done:
ret



main:
cli
mov ax, 0x0000
mov ss,ax
mov sp,0xFFFF
sti

mov ax, 07c0h
mov ds, ax
mov es, ax

mov [BootDrive] , dl

mov bx, buffer
mov cl, 2
mov ch, 0
mov dh, 1
mov ah, 2
mov al, 14
pusha
load_root:
int 13h
jnc loaded_root
call reset_floppy
jmp load_root

loaded_root:
popa
mov di, buffer
mov cx, 224
search_loop:
push cx
push di
mov si,filename
mov cx, 11
ret cmpsb
pop di
je found_file
pop cx
add di, 32
loop search_loop
int 18h
found_file:
mov ax, WORD [di+15]
mov WORD [FirstSector], ax
mov bx, buffer
mov ch , 0
mov cl, 2
mov dh, 0
mov ah, 2
mov al , 9

load_fat:
int 13h
jnc loaded_fat
call reset_floppy
jmp load_fat

loaded_fat:
mov si,msg
call print


cli
hlt

BootDrive db 0
filename db "KERNEL BIN"
msg db "welcome to IRAN_OS.", 0
FirstSector dw 0
times 510-($-$$) db 0
dw 0xAA55

buffer:


و خطا


boot.asm:56: error: symbol `cmpsb' undefined

tanzadeh7
سه شنبه 21 مرداد 1393, 12:44 عصر
کسی نمیخواد جواب ما رو بده

kernel.programmer
سه شنبه 21 مرداد 1393, 17:02 عصر
ret رو به rep تغییر بده ببین درست میشه :)

tanzadeh7
چهارشنبه 22 مرداد 1393, 11:45 صبح
ret رو rep تغییر دادم کامپایل میشه ولی بوت نمیشه