Sunteți pe pagina 1din 2

MANUAL DE INSTRUCCIONES

MOV Rd, Ro

Ejemplo:Valor del registro A=10h. Contenido de la posicin de memoria 0000h=20h.


Tras la ejecucin de la instruccin LDA 0000h, cuyo cdigo de operacin es 300-00h, el valor presente en la posicin 0000h y el registro A es 20h.

Registro destinoRegistro origen

STA palabra

Mueve el contenido del registro de origen al registro de destino.

A --> (palabra)

Flags: No afecta a ninguno

Almacena el acumulador en la direccin indicada por palabra, y que forman el


segundo (byte menos significativo de palabra) y el tercer (byte ms significativo)
byte de instruccin.

Ejemplo: Valores de los registros B=14h, C=22h. Tras la ejecucin de la instruccin


MOV C, B cuyo cdigo de operacin es 48h, los valores almacenados son B=14h,
C=14h.

MVI r, byte
byte --> registro simple

Flags: No afecta a ninguno


Ejemplo:Valor del registro A=20h. Contenido de la posicin de memoria 1000h=00h.
Tras la ejecucin de la instruccin STA 1000h, cuyo cdigo de operacin es 3200-10h, el valor presente en la posicin 1000h y en el registro A es 20h.

Se realiza la transferencia del valor inmediato que se indica en el segundo byte que
forma la instruccin al registro r o registro destino. Se indica byte, porque es
precisamente eso, un byte, o lo que es lo mismo, 8 bits.

LHLD palabra

Flags: No afecta a ninguno

El contenido de la posicin de memoria indicada por palabra (valores almacenados


en el segundo y el tercer byte de los que forman la instruccin con el orden
invertido) es transferido al registroL, mientras que el contenido de la direccin
siguiente se almacena en el registro H. Es, por tanto, un acceso a memoria para la
transferencia de un dato de 16 bits, contenido en la posicin de memoria
direccionada por la palabra indicada y siguiente, a la pareja de registros HL.

Ejemplo: Valores del registro B=14h. Tras la ejecucin de la instruccin MVI B,14H.

LXI rp,palabra
palabra --> registro doble
Carga la pareja de registros rp o registro doble con el dato de 16 bits(palabra) que se
indica a continuacin dentro del cdigo de operacin de la instruccin. Esta
instruccin est formada por 3 bytes, de los cuales en el tercer byte se almacena el
ms significativo de la palabra y en el segundo el menos significativo de la palabra.
Flags: No afecta a ninguno

(palabra) --> L, (palabra + 1) --> H

Flags: No afecta a ninguno


Ejemplo:Valor de los registros H=23h, L=0Ah, contenidos de las posiciones de
memoria 1000h=44h, 1001h=20h. Valores obtenidos tras la ejecucin de la
instruccin LHDL 1000h, cuyo cdigo de operacin es 2-00- 10h: contenidos de
la posicin de memoria 1000h y del registro L=44h, contenidos de la posicin de
memoria 1001h y del registro H=20h.

Ejemplo:Valores de los registros H=10h, L=00h. Tras la ejecucin de la operacin


LXI H,08FFh, cuyo cdigo de operacin es 21-FF-08h, el valor presente en los
registros es el siguiente: H=08h, L=FFh.

SHLD palabra

LDA palabra

El contenido del registro L se almacena en la posicin de memoria indicada por


palabra (valores almacenados en el segundo y el tercer byte de los que forman la
instruccin con el orden invertido), mientras que el contenido de H se deposita en la
direccin de memoria siguiente a palabra. Es, por tanto, un acceso a memoria para
la transferencia de un dato de 16 bits, contenido en la pareja de registros HL, a la
posicin de memoria direccionada por palabra y siguiente.

(palabra) --> A
Carga el acumulador con el contenido de la direccin expresada con palabra, y que
forman el segundo (byte menos significativo) y el tercer (byte ms significativo) byte
de la instruccin.
Flags: No afecta a ninguno

L --> (palabra), H --> (palabra + 1)

Flags: No afecta a ninguno


Ejemplo:Valor de los registros H=12h, L=1Ah, contenidos en las posiciones de

memoria 1000h=22h, 1001h=26. Valores obtenidos tras la ejecucin de la


instruccin de la instruccin SHLD 1000h, cuyo cdigo de operacin es 22- 0010h: contenidos de la posicin de memoria 1001h y del registro H=12h.

LDAX rp

cuyo cdigo de operacin es 02h: contenido de la posicin de memoria 1001h y


del registro A=55h, valores de los registros B=10h, C=01h.

XCHG
H <--> D, L <--> E

registro doble --> A


El contenido de los registros dobles H (HL) y D (DE) es intercambiado entre si.
El contenido de la posicin de memoria a la que apunta el registro doble rp es
depositado en el acumulador. Esta operacin solamente se pude realizar con los
registros dobloes B (BC) y D (DE).

Flags: No afecta a ninguno

Flags: No afecta a ninguno

Ejemplo:Valor de los registros H=10h, L=01h, D=55h y E=03h. Valores de los


registros obtenidos tras la ejecucin de la instruccin XCHG, cuyo cdigo de
operacin es EBh: H=55h, L=03h, D=10h y E=01h.

Ejemplo:Valor de los registros B=10h, C=01h, A=55h, contenido de la posicin de


memoria 1001h=22h. Valores obtenidos tras la ejecucin de la instruccin LDAX B,
cuyo cdigo de operacin es 0Ah,: contenido de la posicin de memoria 1001h y
del registro A=22h, valores de los registros B=10h, C=01h.

Programa en el simulador 8085 que multiplique dos nmeros.

STAX rp
A --> (registro doble)
El contenido del acumulador es depositado en la posicin de memoria a la que
apunta el registro doble rp. Esta operacin solamente se puede realizar con los
registros dobles B (BC) y D (DE).
Flags: No afecta a ninguno
Ejemplo:Valor de los registros B=10h, C=01h, A=55h, contenido de la posicin de
memoria 1001h=22h. Valores obtenidos tras la ejecucin de la instruccin STAX B,

el programa hace A = A + B UN TOTAL DE C veces (A = B*C)


B y C pueden tener cualquiere valor en este caso B = 16 (10 hexa) y C = 18(12
hexa)
MVI B 10 //A es el multiplicando B = 16 (10hexa)
MVI C 12 //B es el multiplicadoR C = 18 (12hexa)
MOV A B
DCR C
* ADI 10 // * es la direccion donde hace A = A +10
DCR C // C = C -1
JNZ * // si(C == 0){acaba el programa}
//si(C diferente de '0') --> regresa a * osea ADI C
HLT

S-ar putea să vă placă și