Há duas instruções que permitem a especificação de desvios incondicionais, JMP e BRA. A instrução JMP tem como operando um endereço, enquanto que BRA recebe como operando um deslocamento relativo à posição corrente do programa.
A instrução de desvio incondicional JMP tem o formato
0100111011.mmm.rrronde mmm.rrr são respectivamente os campos de modo e registrador do operando. Apenas os modos (An), d(An), d(An,Ri), Abs.W, Abs.L, d(PC) e d(PC,Ri) -- denominados modos de endereçamento de controle -- são válidos.
A codificação da instrução BRA pode ocupar uma ou duas palavras:
01100000.ssssssss llllllll llllllllCaso o deslocamento especificado possa ser representado em 8 bits (em complemento de 2), apenas o campo ssssssss estará presente, e a segunda palavra é omitida. Caso o deslocamento requeira 16 bits para sua representação, então o campo ssssssss deverá ser zerado, e o deslocamento será representado na segunda palavra da instrução.
A instrução de desvio condicional, Bcc, especifica que o desvio só será tomado quando a condição cc -- avaliada a partir dos flags de condição no registrador de estado CCR -- for verdadeira. A codificação desta instrução tem o formato
0110.ffff.ssssssss llll llll llllllllonde tttt é a codificação binária para cada uma das condições (cc), enquanto que os campos restantes são equivalentes à instrução BRA. Os códigos de condição e codificação correspondentes são apresentados na Tabela B.2.
O mapeamento entre estas condições e testes lógicos ``convencionais'' (apresentados aqui na sintaxe de C) é apresentado nas Tabelas B.3 para números com sinal e B.4 para números sem sinal.
Observe que o deslocamento em BRA e Bcc é relativo ao conteúdo corrente do registrador PC (a posição da instrução mais 2), de modo que não é possível estabelecer um desvio para a próxima instrução usando o campo de 8 bits -- o valor do deslocamento seria 0, o que forçaria a leitura da palavra seguinte para a obtenção do deslocamento de 16 bits.
Uma outra instrução, DBcc, permite agregar um decremento em um registrador de dados e a especificação de um desvio condicional. Esta instrução tem por objetivo facilitar a implementação de desvios associados a laços de iteração (equivalente à forma until presente em algumas linguagens de alto nível). Sua sintaxe de uso é
DBcc Dn,<label>onde
<label>
identifica um rótulo da posição de destino, que deve
ser traduzido para um deslocamento de 16 bits relativo ao PC na codificação
da instrução. Esta instrução primeiro testa a condição para verificar se a
condição de término do laço foi alcançada. Caso sim, então passa-se à
próxima instrução. Caso não tenha sido alcançada a condição de término,
então a palavra no registrador especificado é decrementada. Quando o
resultado for -1, então o contador foi esgotado e passa-se à próxima
instrução. Se o resultado não for -1, então o desvio é tomado.
A codificação desta instrução é
0101.tttt.11001.rrr llll llll lllll lllonde tttt é o código da condição, rrr identifica o registrador de dados que estará atuando como contador e l...l é o deslocamento de 16 bits relativo ao registrador PC. Além das formas de condição especificadas para Bcc, as condições F (false, código 0001) e T (true, código 0000) podem ser especificadas para esta instrução.