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

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

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




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Scream - help: "описание оболочки screwdriver v0.0".
Обзор - Спектрум в Калининграде; цены и места продажи.
Авторы - авторы газеты.
Кодерам - вариант организации работы с Дисководом.
Реклама - ПРОДАЕТСЯ ZX -Spectrum 48 Kb.

В этот день...   1 января

SibNews #08, Woot! #01, Spectrum Magazine #01, ACNews #25, Psychoz #14, ACNews #14, Last 128 #08, Last 128 #06, Last 128 #05, Last 128 #04, Last 128 #03, Last 128 #02, Last 128 #09, Last 128 #3.5, Last 128 #8.025, Sinclair Club #05, Last 128 #M!R 01, Fantadrom #01, Buzz #20, Last 128 #01, DonNews #13, Nicron #120, Promised Land #01, Inferno #01, Marazm #25, Ultimathum #01, Marazm #21, Hooy Mag #02, KrNews #11, Marazm #22, Marazm #23, ZX Football 2000 #01, Codemania #01, Always #03, Bugs #02, IzhNews #08, Virtual Worlds #01, Listok #04, Scenergy #02, Flash Info #18, Marazm #16, Marazm #17, Zed #01, Balagan #02, ZX Format #08, ZX Power #03, Shock #01, Impulse #02, Deja Vu #03, ZX Club #08, ZX Club #06, Numberology #01, Marazm #13, Marazm #12, Marazm #14, Gorodok #02, Zodiac #01, Marazm #15, Deja Vu #07, Marazm #11, Deja Vu #07, Playboy #03, Crazy News #2, Crazy News #4, ZX Light #01, Crazy News #5, Playboy #02, ZX News #03, ZX Review #1-2, Read Me #02, Crazy News #3, Nicron #13, Read Me #01, Public Spirit #01, Faultless #06, Faultless #05, ZX Software #01, Stump #04, Speccy #07, Возраждение #0, Speccy #03, On-Line #17, Scene+ #01, Welcome Press #01, ZX Konig #04, Adventurer #01, Faultless #05, Faultless #04, Di Halt #01, Faultless #01, Playboy #01, Crazy News #1, Faultless #03, Pioneer #03, Sinclair Town #02, ZX Magazine #01, Eldorado #01, ZX Magazine #02, Spectron #01, ZX News #01, ZX Konig #02, 200 #W, Welcome Press #00, Dune #07, Subliminal Extacy #01, Subliminal Extacy #02, ZX Konig #01, Subliminal Extacy #00, Muchomor #01, Spectrofon #01, ZX Revija #02, Outlet #01, Outlet #1-3