ZX Review
#3-4
22 июля 1997 |
|
Этюды - Е.Волчков. Улучшение подпрограммы вычисления адреса в дисплейном файле.
(c) Волчков Евгений (Hacker Rowdy), г.Чита, 1996. В те времена, когда я еще с натугой понимал Ассемблер, мне посчастливилось купить первый том сериала книг о графике. Очень полезная программа, опуб- ликованная в книге, вычисляла адрес в дисплейном файле по координатам, заданным в знако- местах. В оригинале, как вы, ко- нечно, знаете, она выглядит так: 140. LD DE,(COORDS) LD A,E AND #18 OR #40 LD H,A LD A,E AND #07 OR A RRA RRA RRA RRA ADD A,D LD L,A 2 После того как я, не без по- мощи вашей литературы, повысил свои знания Ассемблера, я нат- кнулся как-то опять на эту прог- рамму и возле команды OR A с удивлением прочитал комментарий "Сбросим флаг CARRY". Но ведь перед OR A стоит AND #07, кото- рая, следуя книге "ZX Spectrum & TR-DOS", всегда, вне зависимос- ти от получаемого результата, СБРАСЫВАЕТ флаг CARRY, т.е. эту небольшую подпрограмму можно ис- пользовать с таким же успехом, но просто убрав OR A. Кроме то- го, длину подпрограммы можно уменьшить, если поставить 3 би- та, означающие номер ряда, на свое место при помощи команды RRCA. Таким образом 5 команд: 140. OR A RRA RRA RRA RRA заменяем на 3: RRCA RRCA RRCA 2 Мы выигрываем сразу в двух областях - уменьшаем на два бай- та подпрограмму, которая и без того мала, а также сокращаем время ее исполнения (хотя и не- намного, но для динамических игр это может оказаться полезным). ********************************
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября