Com as instrução DIVS e DIVU podemos realizar a operação aritmética de
divisão entre um Dividendo(origem Longword) e
um Divisor(destino Word). O resultado/cociente da operação e seu resto são armazenadas
nas Word menos significativa e mais significativa respectivamente, do destino.
A instrução DIVS é utilizada para dividir valores sinalizados, positivos e negativos, enquanto DIVU é
utilizada para dividir valores não-sinalizados.
Caso o resultado da divisão maior que 16-bits(Word), o operando de destino não será alterado
e a flag oVerflow será atualiza para 1.
Operação
destino <- destino/origem
destino[Bit0-15] <- cociente
destino[Bit16-31] <- resto
Endereçamento Origem
Dx, Ax, (Ax), (Ax)+, ‑(Ax), n(Ax), n(Ax,Dx[.W|.L]|Ax[.W|.L]), absoluto.W, absoluto.L, n(PC), n(PC,Dx[.W|.L]|Ax[.W|.L]) e #imediato
Endereçamento Destino
Dx
Tamanho do dado
Longword/word
CCR
X: -
N: a ; indefinido se ocorrer overflow
Z: a ; indefinido se ocorrer overflow
V: a
C: 0
Sintaxe
DIVU Dx,Dy ;
DIVU.W (Ax),Dx
DIVU.W -(Ax),Dx
DIVU.W (Ax)+,Dx
DIVU.W $absoluto,Dx
Exemplo:
; D0 = 00000009 D1 = 00000002
DIVU D0,D1;
; D1 = 00010004
DIVU.W (A0),D2
DIVU.W -(A1),D3
DIVU.W (A3)+,D4
DIVU.W $FFFF,D5