Рассылка закрыта
При закрытии подписчики были переданы в рассылку "О карьере и профессиональном развитии IT-специалистов" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Низкоуровневое программирование для дZeнствующих #11
НИЗКОУРОВНЕВОЕ
ПРОГРАММИРОВАНИЕ
ДЛЯ ДZЕНТСВУЮЩИХ #10 |
ПРЕДУПРЕЖДЕНИЯ:
|
ПРИГЛАШАЮТСЯ:
|
САЙТ
HI-TECH:
|
>
В связи с присутствием в рассылке графики настоятельно рекомендуем подписываться
на HTML-версию. > Текстовая версия рассылки генерится автоматически из HTML-ной. А что? Весьма удобный сервис :) |
>
авторы. > корректоры. > художники/дизайнеры. > владельцы сайтов, авторы рассылок (для взаимной рекламы) > (хм) спонсоры и рекламодатели. |
> архив
рассылки > коллекция инструментов > исходные тексты > документация > учебники, статьи > форум и хм... гостевая книга |
ПРИВЕТСТВУЮ ВАС, 4009 ШТ. ДZЕНСТВУЮЩИХ БРАТЬЕВ И СЕСТЕР! |
Прошлый
выпуск "лабал" NYRON. Дело было перед Новым Годом и он спешил.
Теперь он горько жалеет об этом. И дело вовсе не в том, что он допустил
кучу ляпов в #10, а в том, что он напился-таки и, нарядившись Дедом
Морозом... короче: наш малолетний "мегахакер" получил по морде
:(. |
СПИСОК ЛЯПОВ, СДЕЛАННЫХ NYRON'ОМ В ПРОШЛОМ НОМЕРЕ |
ПОИСК
БАЙТОВ:
Ляпы найдены by ДZЕНСТВУЮЩИЙ Sashok, |
ПИСЬМО ЧИТАТЕЛЯ (И ЭТО ПРАВИЛЬНО!) |
"Захотелось
черкануть пару строк по поводу оптимизации исходного кода (№8). Sergey Kondratenko |
ПРЕДЫДУЩИЕ ВЫПУСКИ РАССЫЛКИ |
По
идее, ну не то, чтобы повторение - мать учения... просто не проштудировав
материал прыдыдущих номеров, вам будет весьма затруднительно "въехать"
в номер текущий... (C) Serrgio (из NYRON'овского выпуска скопировано правильно) |
КРАТКОЕ СОДЕРЖАНИЕ ПРЕДЫДУЩЕЙ ЧАСТИ |
"...
В 945-ом году отправился князь Игорь к программистам за данью. Когда
программисты узнали размеры дани, их лица сразу стали озабоченными,
и они побили Игоря и его дружину. Тогда жена Игоря Ольга с огнем и мечом
пошла на программистов. Отдавайте, говорит, законную дань, а не желаете,
так поставте на каждую тачку нашу новую навороченную ОСь. Обрадовались
программисты, что могут отделаться малым, и их лица опять стали веселыми.
А Ольга приказала в каждую ОСь зашить BUG. Программисты инсталлировали
ОСь, и BUG уничтожил все ихние данные. И дело даже не в том, что жалко
программистов, а в том, что история учит, какими б не казались крутыми
ОСы, нужно уметь работать не зависимо от програмного обеспечения. Ведь
сила не в мегагерцах и гигабайтах, и даже не в DZеньгах, сила - она
в ньютонах..." |
ПЕРЕМЕЩЕНИЕ ДАННЫХ |
Команда
MOVE перемещает данные "внутри компьютера". Она берет данные,
расположенные по одному адресу, и копирует их "в другой" адрес.
|
АССЕМБЛИРОВАНИЕ!! |
А
вот теперь начинается самое интересное! Мы
использовали прерывание BIOS 10h, которое предназначено для работы с
экраном. Мы обращаемся к BIOS с AX=600, BH=7, CX=0, and DX=184Fh. Сначала
необходимо установить регистры, что мы и сделали, введя первые четыре
инструкции. Команда по адресу 15A3:010B - команда обращения к BIOS.
INT 20 (по адресу 010D) служит для безопасности. Нам эта команда практически
не нужна, но когда она есть, программа остановится автоматически. Без
INT 20, и если мы сами не остановим программу, DEBUG продолжит выполнение
программы (от 010F и дальше). А так как после 010D начинается неопределенная
область, то скорее всего система зависнет. Теперь поможет только ctrl-alt-del
(может быть) или же выключение и включение питания. Будьте осторожны
и дважды проверяйте, прежде чем что-нибудь делать. А еще лучше - трижды... |
ИМЯ, СЕСТRА, ИМЯ |
Команда
NAME служит долько для одной цели - определить имя файла, который DZEBUG
должен загрузить или сохранить. Она не изменяет память и не выполняет
программу, она только формирует "блок контроля" для файла,
с которым будет работать DZEBUG. Если вы хотите загрузить программу,
то можете указать это в этой же строчке параметры, как при работе с
ДОС. Единственное отличие - должно быть задано расширение. |
ГРУЗИТЬ! |
Команда
LOAD имеет два формата. Первый загружает программу, которая была определена
командой NAME, устанавливает все регистры, готовит все необходимое для
исполнения. Все заданные параметры программы будут помещены в PSP, и
программа "приготовится" к выполнению. |
ПИСАТЬ (УДАРЕНИЕ НА "А") |
Команда
WRITE очень похожа на команду LOAD. Обе имеют два режима работы, и обе
могут работать как с файлами, так и с физическими секторами. Как вы
наверное уже поняли, WRITE производит запись на диск. Поскольку все
параметры такие же, как и в LOADе, мы не будем их опять описывать. |
ЧТЕНИЕ ДАННЫХ ИЗ ПОРТА |
Команда
INPUT предназначена для чтения данных из любого I/O порта PC. Адрес
порта может быть как однобайтовым, так и двухбайтовым. DZEBUG произведет
чтение из порта и отобразит на экране его содержимое. |
ЗАПИСЬ ДАННЫХ В ПОРТ |
Вы
можете использовать команду OUTPUT для того, чтобы послать один байт
или последовательность данных в порт. Помните, что запись в некоторые
порты может привести к непредсказуемым последствиям. Будьте осторожны
при работе с этой командой! |
GO! GO! GO! АЛЕ-АЛЕ-АЛЕ... |
Команда
GO начинает выполнение программы. Она позволяет запускать программу
с любой точки и останавливать ее в любой из десяти брекпоинтов программы.
Если брекпоинты не установлены (или не выполнены), выполнение программы
будет продолжаться до конца, после чего будет выведено сообщение "Program
terminated normally". (Именно последнее, кстати и переводится на русский
как "але-але-але" ). Данной
командой мы запускаем программу и устанавливаем брекпоинты по адресам
CS:176, CS:47D, CS:537 и CS:647. |
"ТРРРАССИРРРОВКА" - СКАЗАЛ ПУЛЕМЕТЧИК |
Команда
TRACE имеет сходство с командой GO. Различие между ними заключается
в том, что GO выполняет целый блок кода за один раз, а TRACE выполняет
инструкции по одной, каждый раз отображая содержимое регистров. |
ПЛЮС-МИНУС |
С
помощью команды с завернутым названием HEXARITHMETIC можно складывать
(+) и вычитать (-) шестнадцатеричные числа. Она имеет два параметра:
два числа, которые нужно сложить или вычесть. Числа должны иметь длину
не более четырех шестнадцатеричных цифр. Сложение и вычитание беззнаковое,
не учитывается переполнение старшего разряда. |
НИРВАНА!!! |
Имею
счастие заявить: я кончил. |
ЭТОТ НОМЕР ДОЛГО И УПОРНО ЛАБАЛ NYRON,
ПОКА SERRGIO С АЛИСКОЙ
|
http://subscribe.ru/
E-mail: ask@subscribe.ru |
|
В избранное | ||