comandos simulador 8085

3
MANUAL DE INSTRUCCIONES MOV Rd, Ro Registro destinoRegistro origen Mueve el contenido del registro de origen al registro de destino. Flags: No afecta a ninguno Ejemplo: Valores de los registros B=14h, C=22h. Tras la ejecución de la instrucción MOV C, B cuyo código de operación es 48h, los valores almacenados son B=14h, C=14h. MVI r, byte byte --> registro simple Se realiza la transferencia del valor inmediato que se indica en el segundo byte que forma la instrucción al registro r o registro destino. Se indica byte, porque es precisamente eso, un byte, o lo que es lo mismo, 8 bits. Flags: No afecta a ninguno Ejemplo: Valores del registro B=14h. Tras la ejecución de la instrucción 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 continuación dentro del código de operación de la instrucción. Esta instrucción está formada por 3 bytes, de los cuales en el tercer byte se almacena el más significativo de la palabra y en el segundo el menos significativo de la palabra. Flags: No afecta a ninguno Ejemplo:Valores de los registros H=10h, L=00h. Tras la ejecución de la operación LXI H,08FFh, cuyo código de operación es 21-FF-08h, el valor presente en los registros es el siguiente: H=08h, L=FFh. LDA palabra (palabra) --> A Carga el acumulador con el contenido de la dirección expresada con palabra, y que forman el segundo (byte menos significativo) y el tercer (byte más significativo) byte de la instrucción. Flags: No afecta a ninguno Ejemplo:Valor del registro A=10h. Contenido de la posición de memoria 0000h=20h. Tras la ejecución de la instrucción LDA 0000h, cuyo código de operación es 3ª-00-00h, el valor presente en la posición 0000h y el registro A es 20h. STA palabra A --> (palabra) Almacena el acumulador en la dirección indicada por palabra, y que forman el segundo (byte menos significativo de palabra) y el tercer (byte más significativo) byte de instrucción. Flags: No afecta a ninguno Ejemplo:Valor del registro A=20h. Contenido de la posición de memoria 1000h=00h. Tras la ejecución de la instrucción STA 1000h, cuyo código de operación es 32-00-10h, el valor presente en la posición 1000h y en el registro A es 20h. LHLD palabra (palabra) --> L, (palabra + 1) --> H El contenido de la posición de memoria indicada por palabra (valores almacenados en el segundo y el tercer byte de los que forman la instrucción con el orden invertido) es transferido al registroL, mientras que el contenido de la dirección 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 posición de memoria direccionada por la

description

oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

Transcript of comandos simulador 8085

Page 1: comandos simulador 8085

MANUAL DE INSTRUCCIONES

MOV Rd, Ro

Registro destinoRegistro origen

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

Flags: No afecta a ninguno

Ejemplo: Valores de los registros B=14h, C=22h. Tras la ejecución de la instrucción MOV C, B cuyo código de operación es 48h, los valores almacenados son B=14h, C=14h.

MVI r, byte

byte --> registro simple 

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

Flags: No afecta a ninguno 

Ejemplo: Valores del registro B=14h. Tras la ejecución de la instrucción 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 continuación dentro del código de operación de la instrucción. Esta instrucción está formada por 3 bytes, de los cuales en el tercer byte se almacena el más significativo de la palabra y en el segundo el menos significativo de la palabra. 

Flags: No afecta a ninguno 

Ejemplo:Valores de los registros H=10h, L=00h. Tras la ejecución de la operación LXI H,08FFh, cuyo código de operación es 21-FF-08h, el valor presente en los registros es el siguiente: H=08h, L=FFh.

LDA palabra

(palabra) --> A 

Carga el acumulador con el contenido de la dirección expresada con palabra, y que forman el segundo (byte menos significativo) y el tercer (byte más significativo) byte de la instrucción. 

Flags: No afecta a ninguno 

Ejemplo:Valor del registro A=10h. Contenido de la posición de memoria 0000h=20h. Tras la ejecución de la instrucción LDA 0000h, cuyo código de operación es 3ª-00-00h, el valor presente en la posición 0000h y el registro A es 20h.

STA palabra

A --> (palabra) 

Almacena el acumulador en la dirección indicada por palabra, y que forman el segundo (byte menos significativo de palabra) y el tercer (byte más significativo) byte de instrucción. 

Flags: No afecta a ninguno 

Ejemplo:Valor del registro A=20h. Contenido de la posición de memoria 1000h=00h. Tras la ejecución de la instrucción STA 1000h, cuyo código de operación es 32-00-10h, el valor presente en la posición 1000h y en el registro A es 20h.

LHLD palabra

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

El contenido de la posición de memoria indicada por palabra (valores almacenados en el segundo y el tercer byte de los que forman la instrucción con el orden invertido) es transferido al registroL, mientras que el contenido de la dirección 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 posición de memoria direccionada por la palabra indicada y siguiente, a la pareja de registros HL. 

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 ejecución de la instrucción LHDL 1000h, cuyo código de operación es 2ª-00- 10h: contenidos de la posición de memoria 1000h y del registro L=44h, contenidos de la posición de memoria 1001h y del registro H=20h.

SHLD palabra

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

El contenido del registro L se almacena en la posición de memoria indicada por palabra (valores almacenados en el segundo y el tercer byte de los que forman la instrucción con el orden invertido), mientras que el contenido de H se deposita en la dirección 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 posición de memoria direccionada por palabra y siguiente. 

Flags: No afecta a ninguno 

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

Page 2: comandos simulador 8085

memoria 1000h=22h, 1001h=26. Valores obtenidos tras la ejecución de la instrucción de la instrucción SHLD 1000h, cuyo código de operación es 22- 00-10h: contenidos de la posición de memoria 1001h y del registro H=12h.

LDAX rp

registro doble --> A 

El contenido de la posición de memoria a la que apunta el registro doble rp es depositado en el acumulador. Esta operación solamente se pude realizar con los registros dobloes B (BC) y D (DE). 

Flags: No afecta a ninguno 

Ejemplo:Valor de los registros B=10h, C=01h, A=55h, contenido de la posición de memoria 1001h=22h. Valores obtenidos tras la ejecución de la instrucción LDAX B, cuyo código de operación es 0Ah,: contenido de la posición de memoria 1001h y del registro A=22h, valores de los registros B=10h, C=01h.

STAX rp

A --> (registro doble) 

El contenido del acumulador es depositado en la posición de memoria a la que apunta el registro doble rp. Esta operación 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 posición de memoria 1001h=22h. Valores obtenidos tras la ejecución de la instrucción STAX B, cuyo código de operación es 02h: contenido de la posición de memoria 1001h y del registro A=55h, valores de los registros B=10h, C=01h.

XCHG

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

El contenido de los registros dobles H (HL) y D (DE) es intercambiado entre si. 

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 ejecución de la instrucción XCHG, cuyo código de operación es EBh: H=55h, L=03h, D=10h y E=01h.

Programa en el simulador 8085 que multiplique dos números. 

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