Практические задания на экзамен по дисциплине "Цифровые и микропроцессорные устройства", страница 10

LOOPMAX2:                                                    ;поиск максимального слова в массиве

INX            H

                    MOV         A,M

                    CMP          D

                    JC              NO_MAX2

                    MOV         D,A

                    DCX          H

                    MOV         E,M

                    INX            H

NO_MAX2:                

                    INX            H

                    DCR           B

                    JNZ           LOOPMAX2

                    XCHG

                    SHLD        MAX                            

7.1. Составить схему алгоритма и написать подпрограмму, которая заполняет страницу RAM (256 байт с адреса XX00h) кодами»шахматное поле» (коды 55h, 0ААh, 55h,…). Номер страницы памяти ХХ указывается в регистре В при вызове подпрограммы.

ZAD7:                                                                                      ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                    LXI            B,RAMPAGE             ;в задаче не требуется, сделано для определенности

                                                                               ;адреса, который должен быть задан до входа в ПП

MOV         H,B

                    MVI           B,0FFH

                    MVI           A,055H

LOOPCHESS:

                    MOV         M,A

                    RLC

                    INX            H

                    DCR           B

                    JNZ           LOOPCHESS

8.1. Из массива, расположенного между адресами ADDR1 и ADDR2, выбрать числа, по адресам ADDR+n, где  n=1,3,5. Выборку записать в массив, заданный адресом  MASS2.

ZAD8:

                    LXI            SP,STPOINT

LXI            H,ADDR1

                    MVI           B,ADDR2-ADDR1

                    MVI           A,40

NEXT8:   

                    MOV         M,A           

                    INR            A

                    INX            H

                    DCR           B

                    JNZ           NEXT8

                    LXI            D,MASS2

                    LXI            H,ADDR1

                    MVI           B,ADDR2-ADDR1-10H

                    MVI           L,ADDR1-RAM+N

LOOP8:

                    MOV         A,M

                    STAX        D

                    MVI           A,STEP

                    ADD           L

                    MOV         L,A

                    INX            D

                    DCR           B

                    JNZ           LOOP8

9.1. Результаты эксперимента загружены в ячейки памяти от ADDR1 до ADDR+m, , где  m<256. Вычислить среднее значение результата эксперимента и записать в ячейку REZULT. Для деления использовать готовую подпрограмму DIV со следующим описанием входных данных: HL –делимое,D – делитель. Результатов деления: H – частное, L – остаток. Искажаемых регистров: H,L.

ZAD9:                                                                                      ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                    ;в задаче не нужно, приведено для наглядности: 

INIT9:

        LXI    H,ADDR1

                    MVI           B,N                                ;N - размер массива

MVI           A,0FH

LOOP_INIT9:

                    RLC          

                    MOV         M,A

                    INX            H

                    DCR           B

                    JNZ           LOOP_INIT9            

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;         

                    LXI            H,ADDR1

                    MVI           B,N

                    MVI           A,0

                    LXI            D,0            

LOOPSUM:

                    ADD           M

                    JNC           NO_CARRY

                    INR            D

NO_CARRY:

                    INX            H

                    DCR           B