Pregunta

Un amigo mío fue dado 8080 código de la asamblea como parte de un rompecabezas que él está tratando de resolver.Este es el código:

3E 02
4F
C6 04
47
11 41 01
21 69 00
19
76

Él necesita los valores de B, DE C y de HL

¿Alguien puede resolver esto o me apunte en la dirección correcta sobre cómo ejecutar esto?

Actualización

Spoiler:La solución parece ser:

C = 02, B = 06, D = 01, E = 41, H = 01, L = AA

¿Fue útil?

Solución

He aquí una guía para el conjunto 8080 de instrucciones: http://www.comsci.us/cpu/8080/isindex.html Su lista se parece a un flujo de instrucciones hexagonal; usted debería ser capaz de ir de allí. Cómo deliciosamente vieja escuela!

Buena suerte.

Otros consejos

Como referencia, aquí está el desmontaje:

 3E 02      mvi     a, 2     ; Move o1 <- immediate data
 4F         mov     c, a     ; Move o1 <- o2
 C6 04      adi     4        ; Add immediate to A
 47         mov     b, a     ; Move o1 <- o2
 11 41 01   lxi     d, 141h  ; Load register pair with immediate data
 21 69 00   lxi     h, 69h   ; Load register pair with immediate data
 19         dad     d        ; Add register pair to HL
 76         hlt              ; Halt

Es necesario desmontarlo.

Es decir, convertir los códigos op hexagonal en sus mnemotécnicos.

Aquí hay un ejemplo referencia .

Se puede ver de esto que 3E es "MVI A, d8", por lo que se parece a 3E 02 está poniendo el valor 02 en el registro A.

Una vez que haya descifrado el mnemotécnicos, puede buscar lo que realmente media y la figura a cabo el programa.

Es bastante fácil de hacer a mano.

Completa spoiler

0000h: 3e02         mvi a, 2h      ; A = 2
0002h: 4f           mov c, a       ; C = 2  
0003h: c604         adi 4h         ; A = 6  
0005h: 47           mov b, a       ; B = 6  
0006h: 114101       lxi d, 141h    ; DE = 0141h 
0009h: 216900       lxi h, 069h    ; HL = 69h  
000ch: 19           dad d          ; HL = 69h + 141h = 1aah  
000dh: 76           hlt  
A = 6, B = 6, C = 2, D = 1, E = 41h, H = 1, L = 0aah

Una 8080 en línea desensamblador aquí.
Una 8080 en línea de referencia del conjunto de instrucciones aquí.

No es necesario para ejecutarlo - sólo tiene que traducirlo. Una tabla de 8080 códigos de operación como esto , 10 minutos de trabajo y que se han desmontado el código. A continuación, puede simular mentalmente para calcular la respuesta.

A juzgar por esto, lo mejor sería hacer una búsqueda de un emulador 8080 y ejecutarla en el emulador, y obtener la respuesta de ella.

Espero que esta ayuda, Atentamente, Tom.

3E 02      ;mvi a, 02h    -- load A with 02h
4F         ;mov c,a       -- move A into C (A remains 02h)
C6 04      ;adi 04h       -- a = a + 04h  (A now contains 06h)
47         ;mov b,a       -- BC pair now contains 0602h
11 41 01   ;lxi d, 0414h  -- DE now contains 0141h
21 69 00   ;lxi h, 0069h  -- HL now contains 0069h
19         ;dad d         -- HL = HL + DE
76         ;hlt           -- halt processing
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top