ZX-Ревю 1995 №1 1994 г.

Маленькие хитрости - Нюанс в использовании команд переброски.


МАЛЕНЬКИЕ ХИТРОСТИ

Нюанс в использовании команд переброски

Н.Новгород, 1995.

Сообщаю один интересный фактик . Команды блоковых операций микропроцессора Z80 (LDIR, LDDR, CPIR, CPDR и им подобные) считы-ваются процессором из памяти в каждом цикле выполнения, то есть так же, как и простые команды. Пример:

8000 210070 LD HL,#7000 8003 110170 LD DE,#7001 8006 01FF8F LD BC,#8FFF 8009 75 LD (HL),L

800A EDBO LDIR 800C C9 RET

Если при вызове этой программы стек установлен ниже #7000 или выше #9000, то по команде RANDO

(С) IWN,

MIZE USR 32768 выполнится очистка памяти не по адресам #8000-#FFFF, а всего лишь #7000-#800А.

Это происходит потому, что N раз процессор считывает из памяти код команды LDIR (#ED #В0), И последний раз - #00 #В0 (то есть NOP и OR В, которые и выполняет), а затем - команду RET.

При этом возникает огромное поле для экспериментов на тему защиты, ''извращенных" методов переброски блоков, когда блок при переброске накладывается на уже переброшенную свою часть, которая модифицировала команду LDIR (LDDR), заменив ее, например, на LDDR (LDIR) или на какой-нибудь ЭР (например #18 #В0).

Примечание: к сожалению, не было возможности проверить этот факт на советских аналогах Z80.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Железо - KAY: ZX Spectrum Ttransformer.
EventS Overview - Surv!v0r о событиях и фактах: Открытие Спектрумовской банерной сети, у POS появился сайт, обзор демок с СС'2000, переименование Eternity Industry, результаты Final Shoque'2k, ЧВ2 не будет, закрытие газеты Born Dead, группа LFG распалась.
Обмен опытом - gamemaking: о создание игры на примере "Full Shit".
Экспертиза - Описание игры "HERO QUEST #1".
Кап-кап - Итак, все продолжают продолжают проводить эксперимент.

В этот день...   1 июля