HispaMSX

Re:[hispamsx] duda asm z80

2003-05-06 08:11:09
"napalmsx <napalm(_en_)demoscener(_punto_)org>" 
<napalm(_en_)demoscener(_punto_)org> wrote on 06/05/2003 
7:50:37:

Socorro XD

Juas!

Estoy aporreando rutinas y tengo una preguntilla....
Como funcionan las instrucciones de rotar? (rla,rra,sla, srl...etc)
El problema que tengo, es que en el manual de la zilog pone esto:

Necesitas el fabuloso manual de Z80 del Nestor (Mini Referencia procesador Z80 
y BIOS MSX).
Si vas a la RU dile que te lleve uno... (te aseguro que es la mejor compra en 
aaaaaaños)... ^_^

SLR m ;m=r,(HL),(IX+d),(IY+d)

y no soy capaz de decifrar lo que intentan decirme :P

A ver, lo que te dice es que puedes hacer la operación SRL (Shift Right Logic) 
usada con registros 
de 8 bits (la r ésa), o con posiciones de memoria (donde apunte HL o donde 
apunten los registros 
índices más el desplazamiento).

[Ejemplos de operaciones de desplazamiento (SHIFT)).

Ejemplo:

SLA B   ; Mueves a la izquierda 1 posición los bits de B. El bit 7 antiguo pasa 
al Carry y le entra un 0 
por la derecha

SRA (HL)    ; Mueves a la derecha 1 posición los bits del número que está donde 
apunta HL. El bit 7 
se copiará en sí mismo (además de pasar al bit 6) y el bit 0 pasará al bit de 
carry).

SRL (IX + 2)    ; Mueves a la derecha 1 posición los bits del número que está 
donde apunta el valor 
de IX más 2 posiciones. Aqué donde está el bit 7 entra un 0 y el bit 0 pasa al 
Carry.

No te explico las de rotación que tengo prisa por ir a buscar unos expandeiros 
que bla bla bla... 
(aduanas esperadme!).

Y lo dicho, y no es porque el HAntonio venda más, pero el manual ése va de coña 
para 
principiantes... te lo digo por experiencia....
Y si no lo ves claro con un libro de Z80 píllate el de algún otro procesador... 
seguro que de 8086 los 
hay a patadas y, total, las rotaciones y los desplazamientos son casi iguales a 
la hora de usarse (las 
de MES más simples).

por ejemplo, si quiero dividir un numero 'a' por 8, solo tendria 
que "mover" los bits a la derecha 3 posiciones

a=11100000 (224)-mover 3 bits a la derecha>a=00011100 (224/8=28)

¿pero el codigo z80 como seria?

SRA A
SRA A
SRA A

^_^




<Anterior en la conversación] Conversación actual [Siguiente en la conversación>