Instruções aritméticas
Classe |
Sintaxe em assembly |
Campos da instrução (16 bits) |
Acções |
Flags afectadas |
Comentários |
||||
1º opcode (4bits) |
2º opcode (4bits) |
1º operando (4bits) |
2º operando (4bits) |
||||||
Instruções aritméticas |
ADD |
Rd, Rs |
ARITOP |
ADD |
Rd |
Rs |
Rd ¬ Rd + Rs |
Z, N, C, V |
|
Rd, k |
ADDI |
Rd |
k |
Rd ¬ Rd + k |
Z, N, C, V |
k Î [-8 .. +7] |
|||
ADDC |
Rd, Rs |
ADDC |
Rd |
Rs |
Rd ¬ Rd + Rs + C |
Z, N, C, V |
|
||
SUB |
Rd, Rs |
SUB |
Rd |
Rs |
Rd ¬ Rd – Rs |
Z, N, C, V |
|
||
Rd, k |
SUBI |
Rd |
k |
Rd ¬ Rd - k |
Z, N, C, V |
k Î [-8 .. +7] |
|||
SUBB |
Rd, Rs |
SUBB |
Rd |
Rs |
Rd ¬ Rd – Rs - C |
Z, N, C, V |
|
||
CMP |
Rd, Rs |
CMP |
Rd |
Rs |
(Rd – Rs) |
Z, N, C, V |
Rd não é alterado |
||
Rd, k |
CMPI |
Rd |
k |
(Rd – k) |
Z, N, C, V |
k Î [-8 .. +7] Rd não é alterado |
|||
MUL |
Rd, Rs |
MUL |
Rd |
Rs |
Rd ¬ Rd * Rs |
Z, N, C, V |
O registo Rs é alterado |
||
DIV |
Rd, Rs |
DIV |
Rd |
Rs |
Rd ¬ quociente(Rd / Rs) |
Z, N, C, V¬0 |
Divisão inteira |
||
MOD |
Rd, Rs |
MOD |
Rd |
Rs |
Rd ¬ resto(Rd / Rs) |
Z, N, C, V¬0 |
Resto da divisão inteira |
||
NEG |
Rd |
NEG |
Rd |
xxxx |
Rd ¬ –Rd |
Z, N, C, V |
Complemento para 2 V¬1 se Rd for 8000H |
||
Livre |
|
|
|
|
|
|
|
||
Livre |
|
|
|
|
|
|
|