Diferencia entre revisiones de «Código máquina»
Línea 64: | Línea 64: | ||
=== '''A''' (1010) === | === '''A''' (1010) === | ||
+ | |||
+ | [[ABU#Acceso_a_los_registros|]] | ||
+ | |||
+ | K = abu_dameytoma(K, U, V, W); | ||
=== '''B''' (1011) === | === '''B''' (1011) === |
Revisión del 23:59 6 may 2009
El Lenguaje de Mnemónicos o de Instrucciones básicas que entiende la Arquitectura eWa es un lenguaje muy simple de solo deiciséis instrucciones básicas. Estas deiciséis instrucciones básicas están clasificadas en cuatro grupos. En realidad, aunque realmente se debería llamar Lenguaje de máquina, es usado para optimizar de forma extrema los códigos, generalmente, ensamblado por alguno de los tres Lenguajes eWa.
Sumario
Explicación del funcionamiento
En cuanto se inicializa el sistema, se escriben los cuatro primeros bits desde (inclusive) la dirección que indica el PC, inicialmente 0x0000 a G, 0x0001 a H, 0x0002 a I, y 0x0001 a J. Posteriormente, se aumenta en cuatro el valor del PC. Después, se ejecuta la instrucción GHIJ (por ejemplo, 1001 para G=J=1 y H=I=0), que coinciden con los siguientes diecicéis mnemónicos posibiles. Por último, se vuelve a repetir el proceso de lectura de los registros GHIJ.
Las de posición
Falsas
Estos cuatro mnemónicos consisten en poner los registros WVUZ a valores 0.
0 (0000)
Escribe en el registro W el valor 0.
1 (0001)
Escribe en el registro V el valor 0.
2 (0010)
Escribe en el registro U el valor 0.
3 (0011)
Escribe en el registro Z el valor 0.
Verdaderas
Estos cuatro mnemónicos consisten en poner los registros WVUZ a valores 1.
4 (0100)
Escribe en el registro W el valor 1.
5 (0101)
Escribe en el registro V el valor 1.
6 (0110)
Escribe en el registro U el valor 1.
7 (0111)
Escribe en el registro Z el valor 1.
La de condición
8 (1000)
Escribe en el registro W el valor del registro K.
La de ejecución
9 (1001)
Realiza la llamada a la ejecución de la ABU.
Las de lectura y escritura
A (1010)
[[ABU#Acceso_a_los_registros|]]
K = abu_dameytoma(K, U, V, W);
B (1011)
C (1100)
D (1101)
E (1110)
Escribe en el registro K el valor de la dirección de memoria apuntada por el puntero actual de la MMU.
K = mmu_dame();
F (1111)
Escribe en la dirección de memoria apuntada por el puntero actual de la MMU el valor del registro K.
mmu_toma( K );