نکته اصلی همانطور که دوستان گفتن جداولی است که باید به درستی بارگذاری بشه . اگه نمونه کد خودت رو بذاری بهتر می شود کمک کرد. کد پایین رو بخشی رو خودم نوشتم بخشی هم کپی کردم.
macro m_proc proc_name
{
proc_name:
push ebp
mov ebp,esp
pushad
}
macro m_ret
{
popad
mov esp,ebp
pop ebp
ret
}
m_proc putc
mov ebx,0xb8000
mov ecx,[char_ptr]
mov [ebx+ecx],al
call inccursor
m_ret
m_proc inccursor
call getcursor
inc bx
call setcursor
inc [char_ptr]
inc [char_ptr]
m_ret
;-------------------------------;
; get the cursor pos ;
; out: bx = offset ;
;-------------------------------;
getcursor:
push ax
push dx
mov dx, 0x3D4
mov al, 0x0E
out dx, al
inc dx
in al, dx
mov bh, al
mov al, 0x0F
dec dx
out dx, al
inc dx
in al, dx
mov bl, al
pop dx
pop ax
ret
;--------------------------;
; set the cursor to: ;
; bx = offset ;
;--------------------------;
setcursor:
push ax
push bx
push dx
mov al, 0x0E
mov ah, bh
mov dx, 0x3D4
out dx, ax
inc ax
mov ah, bl
out dx, ax
pop dx
pop bx
pop ax
ret