assembly 8051

Tyran

Power Member
Boas ppl tenho aqui umas dúvidas numa ficha de trabalho. É a seguinte:


No exercício 2, tenho:
Código:
mov r1, #5Fh 
mov r2, #13h
; inicializacao dos valores a ser usados na soma

mov a, r1  ;move-se r1 para a dado que só se pode somar no acumulador
add a, r2      ;soma-se agora r2
add a, #87
Mas isto faz com que OV flag fique a 1. Mas não sei bem porque embora tenha uma teoria.
Se colocarmos logo um valor tipo FFh em A não acende mas se antes fizermos uma soma por exemplo add a, #1h no proximo add a, #7Fh acende e neste caso passa a ser ocupado o 8º bit, será que neste caso a flag acende devido a perder bit de sinal? Mas o OV aparece depois de ter feito uma primeira soma lol

Agradeço desde já ajuda dada ;)

cumpzz
 
Última edição:
tens duas somas, certo?

0x57 + 0x13 -> 0x72 (0111 0010)
0x72 + 87 -> 0xC9 (1100 1001)

e dizes que a flag OV ficou activa (a "1") na 1ª soma ou no decorrer da 2ª?
 
O maior valor que podes representar com 8 bits é 127 = (2^(n-1)-1) , n = 8.
Segundo as contas do m00s:

0x57 + 0x13 -> 0x72 (0111 0010) = 114 < 127 (não há OF)
0x72 + 87 -> 0xC9 (1100 1001) = 210 > 127 (há OF)

Não sei se isto vai ajudar em alguma coisa...
 
a flag OV fica activa (para este caso) quando é transportado o carry do bit 7

caso fosse uma operação entre operandos unsigned então era diferente.

...de um modo simples, 0111 1111 + 0000 0001 -> OV = 1 pois há carry out do 7º bit para o 8º
 
Pois mas por exemplo, podemos mover valores de 256 bit para ao acumulador, mas para fazer somas só podem ter 128? não se podem fazer somas sem usar o 8º bit como sinal?

E como é que essa flag afecta outras somas? É que eu já fiz o exercício 3 e deu-me o valor esperado :s
 
bem, de certeza que tens esse tipo de informação nos apontamentos ou bibliografia da disciplina e o objectivo é estudares isso mesmo para fazer os exercícios...

não vamos estar aqui a resolver o teu tpc alínea após alínea... quanto muito tens sempre o professor para tirar dúvidas pois é para isso que eles também servem.

quanto a "mover" 256 bits ...é impossivel, e estás a fazer confusão entre gama representável de valores com numero de bits de representação: 8 bits correspondem a uma gama de representação (com/sem sinal).
 
Pois, era bonito ter isso nos pdf da aula, foi mais do pega segunda entrega ate quarta à meia noite com relatório e "depois ja podem ir pós copos"...

ahh e o prof veio quando o chamamos, pôs-se a ver no uVision help não tinha lá a explicar isso por isso foi-se embora...

quanto ao fazer não pedi a ninguem para fazer, apenas para saber se tinha pensado bem...
por isso quem souber de algum site bom para isto agradeço!

cumpzz e obrigado
 
Podem fechar!
Acabei por conseguir fazer o ex4, não sei da maneira mais correcta mas pronto, separei por nibbles e somei os LSN e depois os MSN e no final juntei e dá bem o resultado final, e não precisei de ninguém para o fazer por mim m00s, apenas queria umas luzes e confirmar ideias.

cumpzz
 
Última edição:
Back
Topo