Световая реклама (курсовая по ассемблеру), страница 7

              SHLD       PUST       ;(**16)  

              SHLD       PUST       ;(**16)    

              SHLD       PUST       ;(**16)  

              DCX        H          ;(**5)уменьшение на 1 постоянной времени

              MOV        A,H        ;(**5)проверка на =0 содержимого рег. пары

              ORA        L          ;(**4)

              JNZ        ZADER1     ;(**10)нет, пост времени еще не равна 0

              RET                   ;(*10)возврат из подпрограммы задержки

KLAV:         DB        0           ;ячейка памяти, в кот. хранится код нажатой кл.

RAB:          DB        0           ;текущее состояние: ”0”-стоит,“1”-работает

REJIM:        DB        0           ;режим работы: “0”-клавиша 4,”1”-клавиша 3

PUST:         DB        0           ;ячейка памяти 

              DB        0

              END

 3. Расчет временной задержки.

Составим уравнение Од + Мн * Pov = 2220000

где Од - суммарное количество тактов команд, выполняющихся однократно при формировании временной задержки (помечены знаком *)

Мн - суммарное количество тактов команд, выполняющихся в цикле (помечены знаком **)

Pov- количество повторений цикла

2220000 - количество тактов в 1 секунде (для тактовой частоты 2,22МГц)

Од = 17+10+10=37 тактов

Мн = 10+7+10+5+5+4+10=51 такт

Pvs = (2220000-Од)/Мн

Pvs=(2220000-37)/51=  43528,68627

В качестве Pov берется целое число проходов 43528.

4. Листинг программы.

     Кросс-ассемблер 80/85 ### Файл листинга reclama.lst

Входной файл   > reclama.asm

Объектный файл > reclama.obj

1 проход

2 проход

  1                     PORTB         EQU        81H

  2                     PORTA         EQU        80H     

  3                     PORTC         EQU        82H     

  4                     PORCRL        EQU        83H         

  5                     PVS           EQU        39 

  6                     PVSD          EQU        25      

  7                     KODKL         EQU        25      

  8                     KODKL1        EQU        26      

  9                     ;---------------------------------

 10                                   ORG        800H        

 11  0800   31 70 09                  LXI        SP,970H 

 12  0803   3E 89                     MVI        A,89H                        

 13  0805   D3 83                     OUT        PORCRL  

 14  0807   1E 00                     MVI        E,0

 15  0809   0E 19       ASDF:         MVI        C,PVSD  

 16  080B   DB 82       EFJ:          IN         PORTC   

 17  080D   E6 19                     ANI        KODKL   

 18  080F   CA 09 08                  JZ         ASDF        

 19  0812   0D          ZXC:          DCR        C       

 20  0813   C2 0B 08                  JNZ        EFJ     

 21  0816   DB 82                     IN         PORTC   

 22  0818   21 44 09                  LXI        H,KLAV  

 23  081B   77                        MOV        M,A     

 24  081C   0E 19       OTPSK:        MVI        C,PVSD  

 25  081E   DB 82       QWE:          IN         PORTC

 26  0820   A7                        ANA        A

 27  0821   C2 1C 08                  JNZ        OTPSK

 28  0824   0D                        DCR        C

 29  0825   C2 1E 08                  JNZ        QWE

 30  0828   21 44 09                  LXI        H,KLAV

 31  082B   7E                        MOV        A,M