Программирование в машинных кодах и на языке ассемблера 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 .

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

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




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Миска - Тривиальное чтиво: "Декларации демократического общества сами по себе как обещания ничeго не стоят. У нас привыкли верить красивым словам, но в поступки верить почему то не принято"
Обзор новинок - NetWalk, Full Shit (demo)
Премьера - Приключения ВИННИ ПУХА.

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