JBC ACC.3,LAB6 ; Переходу на LAB6 німа, т.я.
; (A[3])=0
JBC ACC.2,LAB7 ; (A)=72h (0111 0010b) і перехід
; до адреси, яка відповідає
; мітці LAB7
Примітка. Якщо команда DJNZ використовується для зміни виходу
порту, значення, яке використовується як операнд, зчитується з буфера
порту, а не з виводів БІС.
Команда JC <1b>
Команда "перехід, якщо перенос встановлений" виконує перехід до
адреси, якщо прапор переносу дорівнює "1", в протилежному випадку
виконується наступна команда. Адреса переходу визначається при допомозі
додання відносного адресного зміщення зі знаком у другому байті команди
(1b) і вмісту лічильника команд, після додання до нього 2. Ця команда на
прапори не впливає.
Асемблер: JC <мітка>
Код: 01000000 1b
Час: 2 цикли
Алгоритм: (PC):=(PC)+2
якщо (С)=1, то (PC):=(PC)+<1b>
Пример: ;(C)=0
JC LAB8 ;нема переходу на LAB8
CPL C ;(C):=1
LAB8: JC LAB9 ;перехід на мітку LAB9, т.я. (C)=1
LAB9: NOP
Команда JNB <bit>, <1b>
Команда "перехід, якщо біт не встановлений" виконує перехід за
адресою, якщо вказаний біт дорівнює "0", в протилежному випадку
виконується наступна команда. Адреса переходу визначається при допомозі
додання відносного зміщення зі знаком в третьому байті команди (1b) і
вмісту лічильника команд після додання до нього 3. Ця команда на прапори
не впливає.
Асемблер: JNB (bit), <метка>
Код: 0 0 1 1 0 0 0
0
bit address re18
Час: 2 цикли
Алгоритм: (PC):=(PC)+3
якщо (bit)=0, (PC):=(PC)+<1b>
Пример: ;(P2)=CAh (11001010b)
;(A)=56h (0101 0110b)
JNB P1.3,LAB10 ;нема переходу на LAB10
JNB ACC.3,LAB11 ;перехід на метку LAB11
LAB11: INC A
Команда JNC <1b>
Команда "перехід, якщо перенос не встановлений" виконує перехід за
адресою, якщо прапор переносу дорівнює "0", в протилежному випадку
виконується наступна команда. Адреса переходу визначається при допомозі
додання відносного адресного зміщення зі знаком в другому байті команди
(1и) і вмісту лічильника команд після додання до нього 2. Прапор переносу
не змінюється. Ця команда на інші прапори не впливає.
Асемблер: JNC <мітка>
Код: 01010000 lb
Час: 2 циклaи
Алгоритм: (PC):=(PC)+2
якщо (С)=0, то (PC):=(PC)+<lb>
Пример: ;(C)=1
JNC LAB12 ;нема переходу на LAB12
CPL C
LAB12: JNC LAB13 ;перехід на метку LAB13
Команда JNZ <1b>
Команда "перехід, якщо вміст акумулятора не дорівнює нуля" виконує
перехід за адресою, якщо хоча б один біт акумулятора дорівнює "1", в
протилежному випадку виконується наступна команда. Адреса переходу
визначається доданням відносного адресного зміщення зі знаком у другому
байті команди (1b) і вмісту лічильника (РС) після додання до нього 2. Вміст
акумулятора не змінюється. Ця команда на прапори не впливає.
Асемблер: JNZ <мітка>
Код: 01110000 re18
Час: 2 цикли
Алгоритм: (PC):=(PC)+2
якщо (A)<>0, то (PC):=(PC)+<1b>
Пример: ;(A)=00h
JNC LAB14 ;нема переходу на LAB14
INC A
LAB14: JNZ LAB15 ;перехід на мітку LAB15
LAB15: NOP
Команда JZ <1b>
Команда "перехід, якщо вміст акумулятора дорівнює "0" виконує
перехід за адресою, якщо все біти акумулятора дорівнюють "0", в
протилежному випадку виконується наступна команда. Адреса переходу
визначається доданням відносного адресного зміщення зі знаком у другому
байті команди (1b) і вмісту лічильника команд після додання до нього 2. Ця
команда на прапори не впливає.
Асемблер: JZ <мітка>
Код: 01100000 1b
Час: 2 цикли
Алгоритм: (PC):=(PC)+2
якщо (A)=0, то (PC):=(PC)+<1b>
Пример: ;(A)=01H
JZ LAB16 ;нема переходу на LAB16
DEC A
LAB16: JZ LAB17 ;перехід на мітку LAB17
LAB17: CLR A
Команда LJMP <addr16>
Команда "довгий перехід" виконує безумовний перехід за вказаною
адресою, завантажуючи старший и молодший байти лічильника команд (РС)
відповідно другим і третім байтами, які вказані в команді. Адреса переходу,
таким чином, може знаходиться за будь-якою адресою простору пам‘яті
програм в 64 Кбайт. Ця команда на прапори не впливає.
Асемблер: LJMP <мітка>
Код: 00000010 addr [15-8] addr [7-0]
Час: 2 цикли
Алгоритм: (PC):=<addr[15-0]>
Команда JMP @A+DPTR
Команда "косвений перехід" складує 8-бітовий вміст акумулятора без
знака з 16-бітовим покажчиком даних (DPTR) і завантажує отриманий
результат в лічильник команд, вміст якого є адресою для вибірки наступної
команди. 16-бітове додання виконується по модулю 216, перенос з молодших
восьми біт розповсюджується на старші біти програмного лічильника. Вміст
акумулятора і покажчика даних не змінюється. Ця команда на прапори не
впливає.
Асемблер: JMP @A+DPTR
Код: 01110011
Час: 2 цикли
Алгоритм: (PC):=(A)[7-0]+(DPTR)[15-0]
Пример: ;(PC)=034Eh, (A)=86h, (DPTR)=0329h
JMP @A+DPTR ;(PC)=03AEh, (A)=86h, (DPTR)=0329h
2. Домашня підготовка
2.1. Вивчити матеріали лекцій і методичних вказівок відповідно до
теми лабораторної роботи.
2.2. Подготовить мнемонический код программы, выполняющей
указанные действия.
2.2.1. Загрузить на старшие разряды статического индикатора число
«FF», а на младшие разряды – «00».
2.2.2. На младших разрядах сформировать с определенной
программной задержкой циклическое инкрементирование значения до «AA».
2.2.3. Сформировать программную задержку.
2.2.4. На старших разрядах сформировать с определенной программной
задержкой циклическое декрементирование значения до «АА».
2.2.5. Реализовать бесконечный циклический повтор действий,
описанных в пунктах 2.2.1 – 2.2.4.
3. Порядок виконання роботи
3.1. В соответствии с домашней подготовкой набрать в текстовом
редакторе мнемонический код первой программы.
3.2. Используя компилятор asm51.exe провести компиляцию
программы и отредактировать возможные ошибки времени проектирования.
3.3. С использованием программы eval32.exe загрузить программу в
память стенда.
3.4. Провести поиск возможных ошибок времени выполнения с
редактирование мнемонического кода программы и повторной компиляцией
и загрузкой в память стенда.
4. Зміст звіту
На перевірку викладачу надається звіт оформлений відповідно до
існуючих вимог, в якому відображено тему і мету роботи, домашні
підготовка, порядок виконання роботи, а також результати роботи програми.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.