1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

assembly 8051

Discussão em 'Programação' iniciada por Tyran, 5 de Novembro de 2008. (Respostas: 10; Visualizações: 1413)

  1. Tyran

    Tyran Power Member

    Boas ppl tenho aqui umas dúvidas numa ficha de trabalho. É a seguinte:
    [​IMG]

    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
    [​IMG]
     
    Última edição: 5 de Novembro de 2008
  2. RuiCosta17

    RuiCosta17 Power Member

    Ora aqui esta uma bela de uma pergunta para a qual eu tambem gostaria de saber a resposta...se alguem poder que dê aqui uma ajuda...
     
  3. m00s

    m00s Power Member

    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ª?
     
  4. barbosas

    barbosas [email protected] Member

    offtopic: Isso pareçe um enunciado do ISEL...
     
  5. Tyran

    Tyran Power Member

    Baoas

    Acontece no final da segunda soma...

    Se parece não sei, mas não é do ISEL ...

    cumpzz
     
  6. Baderous

    Baderous Banido

    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...
     
  7. m00s

    m00s Power Member

    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º
     
  8. Tyran

    Tyran Power Member

    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
     
  9. m00s

    m00s Power Member

    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).
     
  10. Tyran

    Tyran Power Member

    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
     
  11. Tyran

    Tyran Power Member

    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: 6 de Novembro de 2008

Partilhar esta Página