Обновить

Комментарии 17

на языке ассемблера.

Что-о-о? Что за язык ассемблера? Может, вы еще с большой буквы хотели написать "ассемблера", думая, что это имя? Нет "языка ассемблера"! Есть "язык ассемблер"!

Что за язык ассемблер? Это язык текст на котором сам что-то «ассемблит»? Нет, это язык на котором пишется код для ассемблера, который, в свою очередь, собирает ваш код. Так что «язык ассемблера»
Своевременная статья. В закладки, однозначно.

Возвращает в молодость, так сказать. 640 Кб памяти хватит на всё!

В строке 6 используем прерывание 20h для завершения программы, этот способ не совсем корректный, но он простой и хорошо подходит для .com программ.

Всегда использовал обычный ret

Да, ret тоже вполне себе допустимый способ, внутри он использует все тот же int 20h, так как возврат идет на адрес PSP:0000, по которому лежит инструкция int 20h. Мне показался этот способ избыточным для дальнейшего описания его работы. Но упомянут он, безусловно, будет, так же как и функция 4ch превывания 21h.

При всей моей любви к MS-DOS, позволю себе усомниться в какой-либо практической пользе от изучения x86 ассемблера, особенно для реального режима.

Ассемблер он и в Африке ассемблер

Эмм, ну, не совсем. Как раз для каждого процессора он разный. В этом и смысл был изобретать языки более высокого уровня.

но они не поддерживают мою рабочую операционную систему Линукс, а разрабатываться хочется все-таки в удобстве

так-так-так.. Купим раритетный Москвич, но ездить будем на Тойоте. Компилировать тоже под Linux будем?

Сама статья - это набор каких-то допущений, много умных слов, предлагается тупо набить текст программы..

используем прерывание 20h

Ах ну да. Прерывание. Чтобы прервать. Нет уж, придумайте как объяснить все связно либо просто оставьте ссылку на самую лучшую книжку: Зубков С. В.

НЛО прилетело и опубликовало эту надпись здесь
позволю себе усомниться в какой-либо практической пользе от изучения x86 ассемблера, особенно для реального режима.


Да вы оптимист. Похвально, конечно, но…

Так же как и реальный режим процессора, исключительно ради начальной загрузки до сих пор поддерживается текстовый режим экрана с возможностью из реального режима писать в видеопамять, PC Speaker, прерывание 9 для клавиатуры и много чего еще

А пацаны говорят, что js сейчас в моде.

Заграницв нам поможет: github.com/SuperIlu/jSH
/зануда вкл
Программа преобразующая исходный текст на языке ассемблера называется «транслятором», а не компилятором. Транслятор, в отличии от компилятора, не выполняет ни какой оптимизации получаемого кода. К примеру встретит транслятор 30 килобайт NOP-ов в исходнике, он их как есть перенесет в получаемый файл, а не оставит один NOP, а остальные выкинет. Проще говоря «тупо поставленная задача, тупо выполнена».
/зануда выкл
НЛО прилетело и опубликовало эту надпись здесь

Во времена, когда часто приходилось менять 75h на EBh - я тоже HEX довольно успешно читал. Хотя и HIEW'ом не брезговал. Потом навык был подутрачен. Сейчас патчу BIOS'ы для ноутов - VEN/DEV в видеомодулях ещё на глаз можно, а вот что-то посерьёзнее - без отладчика с визуализацией - никуда.

Совершенно верно, когда долго вглядываешься в бездну хекс с ассемблерным листингом, код начинает укоризненно смотреть на тебя.
Если серьезно, то во времена MSDOS хорошим тоном для наСильника было генерить файл листинга, для последующей оптимизации/ускорения узких мест.
Ну а коды 90 CD CB 9A 70-7F в подкорке сохранились.
Минутка ностальгии
image
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации