Программирование в машинных кодах и на языке ассемблера 1993 г.

Часть II - "Практикум по программированию в машинных кодах". Введение.


ЧАСТЬ II.

ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ В МАШИННЫХ КОДАХ

ВВЕДЕНИЕ

Вы перешли ко второй части нашего учебного пособия, что безусловно свидетельствует о серьезности Ваших намерений изучить программирование в машинных кодах и на языке АССЕМБЛЕРа для бытовых персональных ЭВМ типа "ZX-Спектрум" и других, совместимых с системой СИНКЛЕР.

Вы познакомились с архитектурой процессора, с системой команд Z-8 0, мы дали Вам первичную информацию, позволяющую преодолеть психологический барьер при переходе к программированию в машинном коде. Работая с материалом второй части, Вы приобретете навыки практической работы и узнаете те приемы и "маленькие хитрости", которые широко используют опытные программисты, но перед которыми встают в тупик начинающие.

Приведем пример. Что Вы подумаете, если встретите в программе две команды, следующие одна за другой?

INC D - увеличить на единицу содержимое регистра D.

DEC D - уменьшить на единицу содержимое регистра D.

На первый взгляд, программист бесполезно истратил 2 байта памяти, потому что эти две команды взаимно противоположны и никак не изменяют содержимое регистра D. Это верно, но не совсем. Дело в том, что обе команды имеют еще и косвенный эффект, связанный с тем, что в соответствии с их результатом выставляются флаги регистра F. Поэтому результат действия этих команд эквивалентен как бы действию команды: "Проверить

содержимое регистра D и, не изменяя его, установить флаги регистра F в соответствии с ним". Такой команды процессор Z-80 не имеет, вот почему приходится прибегать к обходному маневру.

Вот таким конкретным приемам мы и обучим тех читателей, у которых хватит бодрости прочитать и вторую часть книги.

В рамках глав второй части мы для упрощения подачи материала будем пользоваться следующими условными обозначениями:

N - целое число от 0 до 255 (байт) ;

NN - целое число от 0 до 65535 (слово) ;

reg - регистр общего назначения (регистр B,C,D,E,H или L) ; rp - регистровая пара (шестнадцатиразрядные регистры

HL,BC,DE) ; xy - индексный регистр (IX или IY) ;

ADDR - шестнадцатиричный адрес в поле памяти компьютера; rph - старший регистр регистров ой пары ( B, D, H) ; rpl - младший регистр регистровой пары (C,E,L); В тех случаях, когда в процедурах будут участвовать несколько регистров, будут применяться обозначения reg1, reg2 или rp1, rp2, а также rph1, rph2, rpl1, rpl2 .

На всех этапах работы Вам может быть полезна информация, приведенная в третьей части книги - "Справочник...". В

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




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Контакты - адреса для связи.
Пятдесят три карты - Был тихий июльский вечер 1948 года. Мне нарочно приходится указывать год, чтобы вы не подумали, что все, мною приведеное, вымысел, но об этом потом.
Doors kick start - новая ОС для Спектрума - DoorsAQUA 7.1, быть или не быть? Breeze разьясняет.
Информация - халявные разговоры по межгороду.
Репортаж - Chaos Constructions 2005 глазами Newart

В этот день...   23 ноября