ZX Magazine #01
08 октября 1995

────────────────────────────────────────────────────────────────
°∙····∙▒▓█·█▓▒······∙∙······∙∙······∙∙······∙∙······∙∙······∙∙··
░°∙··∙°▒▓█·█▓▒∙▒▓█·█▓▒∙▒▓█·█▓▒∙··███▓▒∙▒▓█·█▓▒∙▒▓███▓▒∙····∙°°∙·
░░°∙∙°░▒▓███▓▒°▒▓█∙█▓▒°▒▓█∙█▓▒°∙▓███▓▒°▒▓███░░°▒▓█°█▓▒°∙··∙°░░°∙
░░░°°░░░░°°█▓▒░▒▓███▓▒░▒▓█°█▓▒░▒▓█°█▓▒░▒▓███▓░░▒▓███▓▒░°∙∙°░░░░░
░░░░░░░▒▓███▓▒░░°° █▓▒░░▓███▓▒░▒▓█░█▓▒░▒▓█░█▓▒░▒▓█░█▓▒░░°°░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
────────────────────────────────────────────────────────────────

                        ПРИВЕТ ДРУЗЬЯ!!!


В ЭТОЙ РУБРИКЕ С ВАМИ СЕГОДНЯ  WASQUEZ.

СЕГОДНЯ МЫ ПОГОВОРИМ О ПРОГРАММИРОВАНИИ .

ПРОСЬБА ЭКРАН МОНИТОРА СРАЗУ НЕ ЗАПЛЕВЫВАТЬ, ТАК КАК

НАЧИНАТЬ Я БУДУ СОВСЕМ С АЗОВ ПРОГРАММИРОВАНИЯ.

НУ И , ЕСТЕВСТВЕННО , ДАЛЬШЕ БУДЕТ БОЛЬШЕ.

( МАТЕРИАЛ РАСЧИТАН НА ЧЕЛОВЕКА ИМЕЮШЕГО ХОТЬ КАКУЮ-ТО

ЛИТЕРАТУРУ ПО АССЕМБЛЕРУ )


НАЧНЕМ С САМОГО ПРОСТОГО:

-КОПИРОВАНИЕ БЛОКОВ ПАМЯТИ-

10   LD   HL, АДРЕС (ОТКУДА )
20   LD   BC, АДРЕС (КУДА   )
30   LD   DE, АДРЕС (СКОЛЬКО)
40   LDIR     КОМАНДА ПЕРЕБРОСКИ
50   RET

НУ НАПРИМЕР ЗАГРУЗИЛИ ВЫ КАРТИНКУ ПОД АДРЕС 40000.

И ХОТИТЕ БРОСИТЬ ЕЕ НА ЭКРАН, ТО ПРОГРАММА 

ПЕРЕБРОСКИ КАРТИНКИ БУДЕТ ТАКАЯ :

10     LD   HL,40000  ИЗ ЭТОГО АДРЕСА
20     LD   BC,16384  B ЭКРАН 
30     LD   DE,6912   ДЛИНА КАРТИНКИ (стандарт для непакованной)
40     LDIR           ПЕРЕБРОСИТЬ ИЗ 40000 В 16384 , 6912 БАЙТ
50     RET            ВОЗВРАТ ИЗ ЭТОЙ ПРОГРАММЫ

ПОПРОБУЙТЕ САМИ !



СЛЕДУЮЩА ПРОГРАМКА ОРГАНИЗУЕТ МАЛЕНЬКИЙ ЦИКЛ (FOR......NEXT)

С КОЛИЧЕСТВОМ ПОВТОРЕНИЙ НЕ БОЛЕЕ 255 РАЗ.

10     LD   B, СКОЛЬКО РАЗ ( ОТ 1 И ДО 255)
20 М1  PUSH BC СОХРАНИМ РЕГИСТОВУЮ ПАРУ НА СТЕКЕ 
30     CALL ---||---  ЗАПУСК ПОДПРОГРАММЫ 
40     POP  BC ВОЗЬМЕМ РЕГИСТРОВУЮ ПАРУ СО СТЕКА
50     DJNZ M1 УМЕНЬШИЛИ РЕГИСТР Б НА 1, И ПЕРЕШЛИ ОБРАТНО НА М1
60     RET     ВОЗВРАТ ИЗ ПРОГРАММЫ.


ПРИМЕР ИСПОЛЬЗОВАНИЯ ЭТИХ ПРОЦЕДУР В ПАРЕ.

Например у вас есть 2 картинки и вы хотите выбрасывать их на
экран некоторое количество раз.Программа будет такой:

1 картинка находиться по адресу 40000
2 картинка находиться по адресу 50000
вы хотите выбрисить картинки на экран 100 раз подряд
одна за другой.

         ORG 30000   -Внутренняя директива компилятора. 
05     EI            Разрешили прерывания.
10     LD   B,100    For a=0 to 100 (кол-во повторов 100 раз)
20 M1  PUSH BC       Сохранили BC так-как он будет задействован
30     HALT          подождем прерывание
40     LD   HL,40000 Адрес 1 картинки в HL
50     LD   BC,6912  Длина 1 картинки в BC
60     LD   DE,16384 Адрес куда бросаем ( в экран ) в DE
70     LDIR          Бросить!
80     HALT          Подождем прерывание
90     LD   HL,50000 Адрес 2 картинки в HL
100    LD   BC,6912  Длина 2 картинки в BC
110    LD   DE,16384 Адрес переброски в DE
120    LDIR          Бросить!
130    POP  BC       Сняли со стека ранее сохраненный BC
140    DJNZ M1       Отняли от "В" еденицу и перешли на М1
150    RET           Как только "В" стал 0 то возврат .


НУ ВОТ НА СЕГОДНЯ СОБСТВЕННО ГОВОРЯ И ВСЕ.

ПРОБУЙТЕ , ЭКСПЕРЕМЕНТИРУЙТЕ.

КСТАТИ ДЛЯ ЗАМЕДЛЕНИЯ ВЫВОДА НАДО ПОСЛЕ КОМАНДЫ  "HALT"

ПОСТАВИТЬ ЕЩЕ НЕСКОЛЬКО ТАКИХ КОМАНД.

ТЕМ КОМУ БЫЛО НЕ ИНТЕРЕСНО:-НЕ БЕСПОКОЙТЕСЬ 

В СЛЕДУЮЩИХ НОМЕРАХ ЖУРНАЛА БУДУТ БОЛЕЕ СЛОЖНЫЕ ПРОГРАММЫ.


════════════════════════════════════════════════════════════════                             
                                            9.10.95
                                            WASQUEZ.



Other articles:


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

Similar articles:
Visitors - the guest list first Izhevsk demopati ASCII 2001.
From the Editor - I made a few orders by mail. That is the pe.pvyy GENERAL SOUND at NEMO.
ZX-Net - A list of the owners of modems in Minsk, Bobruisk, Brest.

В этот день...   21 November