Давайте перейдем к самому языку для понимания сущности асма.
напишем "ОС", которая напишет на экран "В":
org 7C00h
mov al, "B" mov ah, 0Eh int 10h
cli hlt jmp $-2
times 510-$+$ db 00h dw 0AA55h
Давайте разберем данный код.
org 07C00h
Подробно поговорим об этом позже, сейчас просто запомните,
что это нужно для такой "ОС" в начале кода.
mov al, "B"
Положим в регистр АL букву В, храниться она, само собой,
будет как число.
mov ah, 0Eh
Положим в регистр АH число 14, это номер команды.
int 10h
возбудим прерывание БИОСа. это прерывание(№10)
работает с экраном и называется "Видеосервис БИОС"
прерывание №10, с командой №14 выводит букву из AL
на экран после последней написанной на экран буквы
и возвращает управление.
cli
Поговорим об этом позже. Просто запомните, что это нужно
для следующей команды.
hlt
Говорим процессору зависнуть.
jmp $-2
Говорим процессору прыгнуть в строку где написано cli,
чтобы снова зависнуть. Требуется, если процессор
каким-то чудом развиснет.
times 510-$+$$ db 00h
Поговорим об этом позже. Запомните, что эта и следующая
строка требуются для такого рода "ОС".
Можете попробовать поиграть с кодом и попробовать
написать "Hello, world!". У вас все получится!
Предыдущий урок: https://habr.com/ru/post/666450/
Следующий урок: https://habr.com/ru/post/666458/
Комментарии (9)
staticmain
18.05.2022 18:14В чем смысл статей из 10ти строчек без подробного объяснения работы процессора\кешей\памяти\прерываний?
CrashLogger
Вы же сами писали в прошлой статье, что DOS и 16-битный режим никому не нужны, а теперь именно про них и рассказываете. Кому это интересно в 2022 году ?
TalismanChet Автор
Это только начало. Это не значит, что не будет перехода в защищенный режим и т.д.