A instrução DBcc é utilizada quando trabalhamos com loops. A DBcc é semelhante a instrução Bcc
em relação a validação das condições cc para desvio de fluxo, mas utiliza um registrador de dados como contador
que é decrementado a cada loop.
A instruções seguinte a DBcc é sempre obtida pela expressão PC + 2 e o endereço de desvio é baseado em
um valor Word sinalizado.
O fim da execução da instrução DBcc acontece quando o conteúdo do registrador de dados utilizado
é igual a -1. Caso contrário o desvio do loop é feito.
Operação
se cc falso
Dx <- Dx - 1
se Dx = -1
PC <- PC + 2
senao
PC <- PC + (+/-)valor_imediato
senao PC <- PC + 2
Endereçamento Origem
Dn
Endereçamento Destino
imediato.W
Tamanho do dado
Word
CCR
X: -
N: -
Z: -
V: -
C: -
Abaixo a tabela contendo os possíveis valores para as condições cc mencionadas acima:
Tab. 3: Tabela de condições cc
Sigla(cc) |
Descrição |
Lógica |
CC |
Carry Clear |
C = 0 |
CS |
Carry Set |
C = 1 |
EQ |
EQual |
Z = 1 |
GE |
Greater than or Equal |
- |
GT |
Greater than |
- |
HI |
Higher than |
C = 0 + Z = 0 |
LE |
Less than or Equal |
- |
LS |
Lower than or Same |
C=1 + Z=1 |
LT |
Less than |
N=1 + V=0, N=0 + V=1 |
MI |
Minus |
N = 1 |
NE |
Not Equal |
Z = 0 |
PL |
Plus |
N = 0 |
VC |
oVerflow Clear |
V = 0 |
VS |
oVerflow Set |
V = 1 |
Sintaxe
DBcc Dx,label
DBcc imediato.L
Ex
;omitido
MOVE #E,D0 ; 16 vezes. Como vai até -1, N-1 deve ser utilizado
inicio_loop:
;omitido
DB D0, inicio_loop