ADD A,fonte ; A <- A + fonte
ADDC A,fonte ; A <- A + fonte + carry
INSTRUÇÕES AFETAM fcay DE CARRY
C -> Carry (vai um ou pedido emprestado)
Ac -> Auxiliary carry (operações BCD) binary
F0 -> flag de uso geral
Rs1 e Rs2 -->> especifica o banco de corrente
0 0 --> Banco 0
0 1 --> Banco 1
1 0 --> Banco 2
1 1 --> Banco 3
Ov -> Overflow (estouro p/ nºs com sinal)
P -> Paridade
0 = par
1 = impar
Ex:
A = 01H
R0 = 28H
ADD A,R0
0000 0001
+0010 1000
= 0010 1001 <<>> 3 bits setados para 1, então a Paridade é impar, então Paridade = 1.
____________________________________XX___________________________________
Exercício:
R1 R0
+ R3 R2
= R5 R4
5000H | E8 | INICIO: MOV A,R0 ; lê bt 1º fator
5001H | 2A | ADD A, R2 ; soma bit inferior
5002H | FC | MOV R4, A; salva bit inferior resposta
5003H | E9 | MOV A,R1 ; lê bt 1º fator
5004H | 3B | ADDC A, R3 ; soma bit superior
5005H | FD | MOV R5, A; salva bit superior resposta
5006H | 12 01 C0 | LCALL MONITOR
5009H |
_____________________________________XX______________________________
INSTRUÇÃO DE SUBTRAÇÃO
SUBB A,fonte ; A < A- fonte - carry
Ex: SUBB A,R0 ; A< A- R0 - carry
MANIPULAÇÃO DO BIT DE CARRY
CLR C ; carry = 0
SETB C ; carry = 1
CPL C ; carry = carry barrado = oposto de carry
Exercício:
R1 R0
- R3 R2
= R5 R4
5000H | C3 | INICIO: CLR C
5001H | E8 | MOV A, R0
5002H | 9A | SUBB A, R2
5003H | FC | MOV R4, A
5004H | E9 | MOV A, R1
5005H | 9B | SUBB A, R3
5006H | 9D | MOV R5, A
5007H | 12 01 C0 | LCALL MONITOR
500AH |
___XX___
Exercicio:
R3 R2 R1 R0
- R7 R6 R5 R4
=R3 R2 R1 R0
5001H | E8 | MOV A, R0
5002H | 9C | SUBB A, R4
5003H | F8 | MOV R0, A
5004H | E9 | MOV A, R1
5005H | 9D | SUBB A, R5
5006H | F9 | MOV R1, A
5007H | EA | MOV A, R2
5008H | 9E | SUBB A, R6
5009H | FA | MOV R2, A
500AH | EB | MOV A, R3
500BH | 9F | SUBB A, R7
500CH | FB | MOV R3, A
500DH | 12 01 C0 | LCALL MONITOR
5010H |
__________________________XX__________________
REPRESENTAÇÃO DE Nºs COM SINAL
(convenção de complemento de dois)
3ªcasa maior valor
0 = positivo
1 = negativo
Binário
011 > +3
010 > +2
001 > +1
000 > 0
111 > -1 >> compl de 1= 000 Soma 1 = 001 => -1
110 > -2 >> compl de 1= 001 Soma 1 = 010 => -2
101 > -3 >> compl de 1= 010 Soma 1 = 011 => -3
100 > -4 >> compl de 1= 011 Soma 1 = 100 => -4
hexa
7FH > 0111 1111 > +127
7EH > 0111 1110 > +126
7DH > 0111 1101 > +125
7CH > 0111 1100 > +124
...
03H > 0000 0003 > +3
02H > 0000 0002 > +2
01H > 0000 0001 > +1
00H > 0000 0000 > 0
FFH > 1111 1111 > -1 > compl de 1= 0000 0000 Soma 1 = 0000 00001 => -1
FEH > 1111 1110 > -2 > compl de 1= 0000 0001 Soma 1 = 0000 00010 => -2
FDH > 1111 1101 > -3 > compl de 1= 0000 0010 Soma 1 = 0000 00011 => -3
FCH > 1111 1100 > -4 > compl de 1= 0000 0011 Soma 1 = 0000 00100 => -4
...
81H > 1000 0001 > -127 > compl de 1= 0111 1110 Soma 1 = 0111 1111 => -127
80H > 1000 0000 > -128 > compl de 1= 0111 1111 Soma 1 = 1000 0000 => -128