A instrução DBcc é utilizada para trabalhar com loops. É semelhante a instrução
Bcc em relação a verificação das condições cc para desvio de fluxo, mas faz uso
de um registrador de dado como contador que é decrementado a cada loop.
A instruções seguinte à 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 dado
informado é 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
se nao
PC <- PC + (+/-)valor_imediato
se nao 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