Рассылка закрыта
При закрытии подписчики были переданы в рассылку "О карьере и профессиональном развитии 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 |
|
| В избранное | ||

