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

Училка - уроки программрования: копирование блоков памяти, циклы.

<b>Училка</b> - уроки программрования: копирование блоков памяти, циклы.
────────────────────────────────────────────────────────────────
°∙····∙▒▓█·█▓▒······∙∙······∙∙······∙∙······∙∙······∙∙······∙∙··
░°∙··∙°▒▓█·█▓▒∙▒▓█·█▓▒∙▒▓█·█▓▒∙··███▓▒∙▒▓█·█▓▒∙▒▓███▓▒∙····∙°°∙·
░░°∙∙°░▒▓███▓▒°▒▓█∙█▓▒°▒▓█∙█▓▒°∙▓███▓▒°▒▓███░░°▒▓█°█▓▒°∙··∙°░░°∙
░░░°°░░░░°°█▓▒░▒▓███▓▒░▒▓█°█▓▒░▒▓█°█▓▒░▒▓███▓░░▒▓███▓▒░°∙∙°░░░░░
░░░░░░░▒▓███▓▒░░°° █▓▒░░▓███▓▒░▒▓█░█▓▒░▒▓█░█▓▒░▒▓█░█▓▒░░°°░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
────────────────────────────────────────────────────────────────

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


В ЭТОЙ РУБРИКЕ С ВАМИ СЕГОДНЯ  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.



Другие статьи номера:

Введение - Не секрет, что мы далеко не первые из тех, кто решил посвятить свои силы компьютерной журналистике.

Вести - на рынок был выпущен новый редактор для музыки на отцифрованных инструментах - "DIGITAL STUDIO", TECHNOTIME SOFTWARE распались, Magic soft готовит Prince of Persia.

Железо - схема LPT Covox'a.

Gametrack - обзор игрушек: Galaxians, "Драки" на ZX, Между нами,мальчиками, Проблемы игрового програмирования.

Училка - уроки программрования: копирование блоков памяти, циклы.

На связи - открытое письмо Stever'a о судьбе газеты Online.

IBM - 9600 бод и все-все-все...

Коробочка - мы предстваляем вашему вниманию следующие программы : Double Gifx, Lpt Covox, Cyber Zone, Mega Phoenix.


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

Похожие статьи:
Чемпионат - Результаты сыгранных матчей по футболу.
Разное - глюкотня!
BBS - список станций BBS ZXNet.
Программирование - очень эффективный способ повысить производительность интерпретатора бейсика (48 Basic), встроенного в ZX-Spectrum, при обработке больших массивов данных.
Interface - Nik-O interview.

В этот день...   14 декабря