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

Assembly: COpiar de um registo para outro

Discussão em 'Programação' iniciada por moody, 3 de Junho de 2007. (Respostas: 5; Visualizações: 868)

  1. Estou aqui com um "bloqueio mental" e gostaria que me ajudassem...Preciso de copiar o conteúdo do registo ch para o registo ax (tem de ser mesmo o registo de 16 bits pois pretendo fazer uma divisão),mas sei que não o posso fazer directamente pois não é possível copiar um registo de 8 bits para 16 bits e vice-versa...Como poderei fazer então?
     
  2. Datwo

    Datwo I'm cool cuz I Fold

    copias o conteúdo do registo para memória e daí para o outro registo.
     
  3. MadOnion

    MadOnion Folding Member

    mov %ch, %ah #nao me lembro se é para o %ah ou %al
    CBTW #convert byte do word, ficas com o resultado em %ax

    Ou então usas a solução dada pelo Datwo.

    De 16bits para 8bits penso que não resulta, mas verifica a documentação.
    A linguagem assembly que usei acima é do GAS-GNU.
     
  4. S.T.E.E.L.

    S.T.E.E.L. Power Member

    Já não me lembro bem disso, mas penso que será assim:

    mov ax,0 ;;;;;; ou xor ax,ax ,coloca o registo a 0, para não ficar lixo em ah
    mov al, ch ;;;;;; al é a parte menos significativa de ax (ex: se ax for 0000 0011 - 0000->ah;0011->al)
     
    Última edição: 4 de Junho de 2007
  5. Obrigada pelas respostas!Acabei por fazer como o SteelBoy19 disse...
     
  6. souto

    souto To fold or to FOLD?

    ou em alternativa à primeira instrução:

    xor ax, ax ;; coloca o registo a zeros

    mais rápido ;)

    cumprimentos.
     

Partilhar esta Página