Управление изпълнението на програмата - 5 лекция

Компютърна и комуникационна техника Презентация

Слайд 1

УПРАВЛЕНИЕ ИЗПЪЛНЕНИЕТО НА ПРОГРАМАТА

Слайд 2

Биториентирани инструкции файлрегистър

Слайд 3

Инструкция BCF (Bit Clear File)
Инструкция BSF (Bit Set File)
Синтаксис: [етикет] BCF f, b
Операнди: 0 ≤ f ≤ 127
0 ≤ b ≤ 7
Функция: 0  (f<b>)
Влияние върху
STATUS: Няма
Пример.
BCF FlAG_REG, 7
Преди инструкцията:
FlAG_REG = 0xC7
След инструкцията:
FlAG_REG = 0x47
Синтаксис: [етикет] BSF f, b
Операнди: 0 ≤ f ≤ 127
0 ≤ b ≤ 7
Функция: 1  (f<b>)
Влияние върху
STATUS: Няма
Пример.
BSF FlAG_REG, 7
Преди инструкцията:
FlAG_REG = 0x0A
След инструкцията:
FlAG_REG= 0x8A

Слайд 4

Инструкции за разклонение на програмата
С инструкциите за управление изпълнението на програмата (за краткост инструкции за разклонение) изпълнението на програмата се предава на различни групи от инструкции.
инструкции за преход (предават управлението към определен адрес, без да запазват адреса за връщане):
безусловен преход;
условен преход.
инструкции за извикване на подпрограми (запазва се адресът за връщане).

Слайд 5

Безусловно предаване на управлението
Инструкция GOTO
Синтаксис: [етикет] GOTO k
Операнди: 0 ≤ k ≤ 2047
Функция: k  PC<10:0>
PCLATH<4:3>  PC<12:11>
Влияние върху
STATUS: Няма
Пример .
GOTO THERE
След инструкцията:
PC = адреса на THERE

Слайд 6

Условни преходи – проверка на битове
Инструкция BTFSC
(Bit Test File, Skip if Clear)
Синтаксис: [етикет] BTFSC f, b
Операнди: 0 ≤ f ≤ 127
0 ≤ b ≤ 7
Функция: Прескачане на следващата
инструкция, ако (f<b>) = 0
Влияние върху
STATUS: Няма
Пример .
HERE BTFSC FLAG, 1
FALSE GOTO PROCESS
TRUE …

PROCESS

Преди инструкцията:
PC = адреса на HERE
След инструкцията:
Ако FLAG<1> = 0, то PC = адреса на TRUE
Ако FLAG<1> = 1, то PC = адреса на FALSE

Слайд 7

Условни преходи – проверка на битове
Инструкция BTFSS
(Bit Test File, Skip if Set)
Синтаксис: [етикет] BTFSS f, b
Операнди: 0 ≤ f ≤ 127
0 ≤ b ≤ 7
Функция: Прескачане на следващата
инструкция, ако (f<b>) = 1
Влияние върху
STATUS: Няма
Пример.
HERE BTFSS FLAG, 1
FALSE GOTO PROCESS_CODE
TRUE …

PROCESS_CODE

Преди инструкцията:
PC = адреса на HERE
След инструкцията:
Ако FLAG<1> = 0, то PC = адреса на FALSE
Ако FLAG<1> = 1, то PC = адреса на TRUE

Слайд 8

Условни преходи – проверка за нулев резултат. Инструкция DECFSZ
(DECrement File, Skip if Zero)
Синтаксис: [етикет] DECFSZ f, d
Операнди: 0 ≤ f ≤ 127
d  [0, 1]
Функция: (f) – 1  (приемник)
Прескачане, ако резултатът е нулев.
Влияние върху
STATUS: Z
Пример.
HERE DECFSZ CNT, 1
GOTO LOOP
CONTINUE


Преди инструкцията:
PC = адреса на HERE
След инструкцията:
CNT = CNT – 1
Ако CNT = 0, то PC = адреса на CONTINUE
Ако CNT ≠ 0, то PC = адреса на HERE + 1

Слайд 9

Условни преходи – проверка проверка за нулев резултат. Инструкция INCFSZ
(INCrement File, Skip if Zero)
Синтаксис: [етикет] INCFSZ f, d
Операнди: 0 ≤ f ≤ 127
d = [0, 1]
Функция: (f) + 1  (приемник)
Прескачане, ако резултатът е нулев.
Влияние върху
STATUS: Няма
Пример.
HERE INCFSZ CNT, 1
GOTO LOOP
CONTINUE


Преди инструкцията:
PC = адреса на HERE
След инструкцията:
CNT = CNT + 1
Ако CNT = 0, то PC = адреса на CONTINUE
Ако CNT ≠ 0, то PC = адреса на HERE + 1

Слайд 10

Инструкции за управление работата на процесора

Преглед на началото - целият файл след изтегляне

Описание

Асемблер - машинен език! Дисциплина: Едночипови микрокомпютри

0 коментара

Все още няма коментари. Бъдете първият, който ще коментира.

За да коментирате, трябва да сте влезли в профила си.

Влезте