Ознайомлення із командами умовного та безумовного переходів в асемблері, побудова на їх основі циклів та розгалудження програми

Страницы работы

3 страницы (Word-файл)

Содержание работы

Мета роботи: ознайомитись із командами умовного та безумовного переходів в асемблері, навчитись будувати на їх основі цикли та розгалуження програми.

1.  Розробіть програму підрахунку кількості комірок пам'яті зі значеннями, відмінними від A3h.

Без підпрограми:

org 0c100h

mov r0,#50h

mov r3,#10h

MARK2: mov A,@r0

       CJNE A,#3Ah,MARK1

       inc r0

                 inc r1

       DJNZ r3, MARK2

MARK1: inc r0

                 DJNZ r3, MARK2

JMP $

END

           З підпрограмою:

         org 0c100h

mov r0,#50h

mov r3,#10h

MARK3: mov A,@r0

subb A,#3Ah

JZ MARK1

JNZ MARK2

JMP $

MARK1: CALL MARK4

CJNE r0,#60h,MARK3

JMP $

MARK2: CALL MARK5

CJNE r0,#60h,MARK3

JMP $

MARK4: inc r1

inc r0

ret

MARK5: inc r0

ret

END

2.  Напишіть підпрограму обчислення чисел Фібоначчі.

             Алгоритм:

       А(1)=1

       А(2)=1

 А(i)=A(i-2)+A(i-1)

Без підпрограми:

  $NOMOD51

mov r0,#10

mov r1,#0

mov A,#1

Mark: mov B,A

                ADDC A,r1

                mov r1,B

DJNZ r0,Mark

jmp $

end

З підпрограмою:

            org 0c100h

            mov A,#1

            mov r1,#100

            MARK: CALL FIB

            DJNZ r1,MARK

            jmp $

           FIB:

           mov B,A

           ADD A,r0

           mov r0,B

            ret

           END

3.  Написати підпрограму, що сканує в циклі стан регістрів R0-R7поточного регістрового банку. Якщо значення регістра дорівнює нулю–відповідний номеру регістра біт акумулятор теж скидається. Якщо регістр не дорівнює нулю–у біт акумулятора записується одиниця.

org 0c100h

mov B,#00000001b

MAIN: mov A,@r0

CJNE A,#0,MARK2

JMP MARK1

MARK1: inc r0

xch A,B

RLC A

xch A,B

CJNE r0,#8,MAIN

JMP $

MARK2: inc r0

ORL A,B

xch A,B

RLC A

xch A,B

CJNE r0,#8,MAIN

JMP $

END

Висновок: Отже, ми ознайомились із командами умовного та безумовного переходів в асемблері, навчились будувати на їх основі цикли та розгалуження програми.

Похожие материалы

Информация о работе