Вывод на экран средствами биоса - Assembler
Формулировка задачи:
есть мини функция которая выводит строку на экран:
Дело в том что при вызове функции вместе с ней печатается +3 символа разной фигни(рожица и еще что-то).Есть мысли?
proc printstr push ax ; store registers... push si ; next_char: mov al, [si] cmp al, 0 jz printed inc si mov ah, 0eh ; teletype function. int 10h jmp next_char printed: pop si ; re-store registers... pop ax ; endp
А сама строка выводится
Решение задачи: «Вывод на экран средствами биоса»
textual
Листинг программы
org 0x7C00 mov ah,02h mov dl,0 mov dh,0, mov ch,0 mov cl,3 mov al,2 mov krnl,bx mov 0x7c00,krnl krnl: db 65h
Объяснение кода листинга программы
Список элементов:
- Переменная
ah
содержит значение 02h (код функции вывода на экран). - Переменная
dl
содержит значение 0 (определяет номер строки, начиная с 0). - Переменная
dh
содержит значение 0 (определяет номер столбца, начиная с 0). - Переменная
ch
содержит значение 0 (определяет номер страницы, начиная с 0). - Переменная
cl
содержит значение 3 (количество символов, которые будут выведены). - Переменная
al
содержит значение 2 (тип символов, которые будут выводиться). - Переменная
bx
содержит адрес начала строки, которую необходимо вывести. - Переменная
krnl
содержит адрес начала строки, которую необходимо вывести. - Переменная
0x7c00
содержит адрес начала строки, которую необходимо вывести. - Значение
65h
является первым символом строки, которую необходимо вывести.