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.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Лит. Страничка - ночная смена (окончание).
С миру по биту - обзор читательской почты: вопросы стандартизации, проблемы IS-DOS и др.
Enlight'96 - Серегей Новиков "Взгляд со Стороны", подробный обзор демок.
Железо - Automat, система внешнего управления и контроля на основе Спектрум- совместимых компьютеров, BAT FILE PROCESSOR v1.00, Robot v5.50 for Batproc v1.00.
Экзамен - окончание разбора игры "They Stole a Million".

В этот день...   12 марта