El ST6 y ST7 son 8 bits microcontrolador líneas de productos de STMicroelectronics . Se utilizan comúnmente en pequeñas aplicaciones integradas como lavadoras .
Aunque utilizan periféricos similares y se comercializan como parte de la misma línea de productos, [1] [2] las dos arquitecturas son en realidad bastante diferentes.
Ambos tienen un acumulador de 8 bits utilizado para la mayoría de las operaciones, más dos registros de índice de 8 bits (X e Y) utilizados para el direccionamiento de memoria. Además, ambos tienen instrucciones de 8 bits seguidas de hasta 2 bytes de operandos, y ambos tienen soporte para manipular y bifurcar en bits individuales de memoria.
Ahí terminan las similitudes.
El ST6 es una arquitectura de Harvard con un espacio de direcciones de datos de 8 bits (256 bytes) y un espacio de programa separado de 12 bits (4096 bytes). Los operandos siempre tienen una longitud de 1 byte y algunas instrucciones admiten dos operandos, como "mover 8 bits inmediatos a una dirección de memoria de 8 bits". Las llamadas a subrutinas se realizan utilizando una pila de hardware separada. Los registros de datos (pero no el contador de programa o las banderas) están mapeados en memoria.
Los modos de direccionamiento del ST6 están limitados a la dirección de memoria absoluta inmediata de 8 bits y los modos indirectos de registro (X) e (Y).
El ST7 es una arquitectura de von Neumann con un solo espacio de direcciones de 16 bits (64 kiB). Los primeros 256 bytes de RAM (la página cero ) tienen una flexibilidad adicional. No hay instrucciones de dos operandos excepto para "bit de prueba y bifurcación". Sus registros no están mapeados en memoria y usa RAM de propósito general (más un registro de puntero de pila ) para llamadas a subrutinas.
El ST7 admite una amplia variedad de modos de direccionamiento, incluidos base + índice y doble indirecto.
Arquitectura ST6
El ST6 tiene 64 bytes de RAM y 4096 bytes de ROM de programa . Se accede a cantidades más grandes cambiando de banco la sección baja de 2K de la ROM.
El espacio de direcciones RAM es en realidad de 256 bytes, divididos de la siguiente manera:
- 0–63: no implementado
- 64-127: Ventana intercambiable de banco en ROM de programa y EPROM de datos .
- 128-191: RAM de uso general
- 192-255: registros de control de periféricos (puertos GPIO, temporizadores, etc.) El acumulador está mapeado en la dirección 255, pero es más común que se direccione implícitamente.
No se asigna en el espacio de direcciones un contador de programa de 12 bits y una pila de hardware asociada (cuatro o seis niveles de profundidad, según el modelo). Solo hay dos bits de estado ( acarreo y cero ), y se almacenan según el modo del procesador, con bits de estado separados para operación normal, interrupción y interrupción no enmascarable .
Las primeras cuatro ubicaciones de RAM de propósito general también se conocen como registros X, Y, V y W, y algunas instrucciones pueden acceder a ellas mediante modos especiales de direccionamiento corto. Los registros X e Y sirven como registros de índice y pueden usar modos de direccionamiento indirecto (X)
y (Y)
.
El conjunto de instrucciones consta de un byte de código de operación, seguido de hasta dos operandos de un byte. El conjunto de instrucciones se puede resumir de la siguiente manera:
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | b2 | b3 | Mnemotécnico | C | Z | Descripción |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
compensar | opc | 0 | - | - | Ramas condicionales (relativas a PC de 5 bits) | ||||||||
compensar | 0 | 0 | 0 | - | - | Dirección JRNZ | Saltar a PC + simm5 si Z == 0 | ||||||
compensar | 1 | 0 | 0 | - | - | Dirección JRZ | Salta a PC + simm5 si Z == 1 | ||||||
compensar | 0 | 1 | 0 | - | - | Dirección JRNC | Saltar a PC + simm5 si C == 0 | ||||||
compensar | 1 | 1 | 0 | - | - | Dirección del CCI | Salte a PC + simm5 si C == 1 | ||||||
imm4 | C | 0 | 0 | 1 | imm8 | - | Ramas incondicionales (absoluto de 12 bits) | ||||||
imm4 | 0 | 0 | 0 | 1 | imm8 | - | LLAMAR imm12 | Presione PC, salte a la dirección de 12 bits | |||||
imm4 | 1 | 0 | 0 | 1 | imm8 | - | JP imm12 | Saltar a la dirección de 12 bits | |||||
- | 0 | 0 | 1 | 0 | 1 | - | - | (reservado) | |||||
reg | C | 1 | C | 1 | 0 | 1 | - | - | Registro de operaciones (en X, Y, V o W) | ||||
reg | 0 | 1 | 0 | 1 | 0 | 1 | - | - | INC reg | Z | Registro incremental. Z está establecido, C no. | ||
reg | 1 | 1 | 0 | 1 | 0 | 1 | - | - | LD A, reg | Z | A: = {X, Y, V o W} | ||
reg | 0 | 1 | 1 | 1 | 0 | 1 | - | - | DEC reg | Z | Decremento de registro. Z está establecido, C no. | ||
reg | 1 | 1 | 1 | 1 | 0 | 1 | - | - | LD reg , A | Z | {X, Y, V o W}: = A | ||
código de operación | 0 | 1 | 1 | 0 | 1 | - | - | Operaciones misceláneas | |||||
0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | addr | imm8 | Dirección LDI, imm8 | Establecer RAM en valor inmediato de 8 bits | ||
1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | - | - | (reservado) | |||
0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | - | - | RETI | Regreso de la interrupción. Pop PC, restaurar banderas. | ||
1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | - | - | RETIRADO | Regreso de la subrutina. Saque la PC de la pila de hardware. | ||
0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | - | - | COM A | Z | C | Complemento: C: = msbit (A); A: = ~ A |
1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | - | - | RLC A | C | A: = A + A + C | |
0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | - | - | DETENER | Detiene el procesador, el reloj y la mayoría de los periféricos hasta la próxima interrupción | ||
1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | - | - | ESPERE | Detenga el procesador hasta la próxima interrupción; el reloj sigue | ||
un poco | opc | 0 | 1 | 1 | habla a | ? | Operaciones de bit (solo dirección absoluta) | ||||||
un poco | 0 | 0 | 0 | 1 | 1 | src | simm8 | Bit JRR , src , dirección | C | C: = src.bit; saltar a PC + simm8 si se reinicia (borrar) | |||
un poco | 1 | 0 | 0 | 1 | 1 | src | simm8 | Bit JRS , src , dirección | C | C: = src.bit; saltar a PC + simm8 si está configurado | |||
un poco | 0 | 1 | 0 | 1 | 1 | dst | - | RES bit , dst | Restablecer (establecido en 0) dst.bit | ||||
un poco | 1 | 1 | 0 | 1 | 1 | dst | - | SET bit , dst | Establecer (en 1) dst.bit | ||||
código de operación | datos | 1 | 1 | 1 | ? | - | Operaciones ALU con RAM o inmediatas | ||||||
código de operación | 0 | 0 | 1 | 1 | 1 | - | - | (X) | El operando es (X) | ||||
código de operación | 0 | 1 | 1 | 1 | 1 | - | - | (Y) | El operando es (Y) | ||||
código de operación | 1 | 0 | 1 | 1 | 1 | imm8 | - | imm8 | El operando es inmediato de 8 bits ( solo fuente ) | ||||
código de operación | 1 | 1 | 1 | 1 | 1 | addr | - | addr | El operando es una dirección RAM de 8 bits | ||||
0 | 0 | 0 | src | 1 | 1 | 1 | ? | - | LD A, src | Z | A: = src | ||
1 | 0 | 0 | dst | 1 | 1 | 1 | ? | - | LD dst , A | Z | dst : = A ( prohibido inmediato ) | ||
0 | 1 | 0 | src | 1 | 1 | 1 | ? | - | AÑADIR A, src | Z | C | A: = A + src | |
1 | 1 | 0 | src | 1 | 1 | 1 | ? | - | SUB A, src | Z | C† | A: = A - src | |
0 | 0 | 1 | src | 1 | 1 | 1 | ? | - | CP A, src | Z | C† | A - src | |
1 | 0 | 1 | src | 1 | 1 | 1 | ? | - | Y A, src | Z | A: = A & src | ||
0 | 1 | 1 | dst | 1 | 1 | 1 | ? | - | INC dst | Z | dst : = dst + 1 ( prohibido inmediato ) | ||
1 | 1 | 1 | dst | 1 | 1 | 1 | ? | - | DIC dst | Z | dst : = dst - 1 ( prohibido inmediato ) |
†: ^ a b Confusamente, diferentes modelos de la familia ST6 usan diferentes convenciones para el valor del bit de acarreo después de una resta. Los procesadores ST60 usan la convención de "acarreo", que borra el bit si la resta se desborda, mientras que los procesadores ST62 y ST63 usan la convención de "pedir prestado", que establece el bit en ese caso. [3] : 21-22,42
Arquitectura ST7
El ST7 tiene seis registros: el acumulador, registros de índice X e Y, puntero de pila, contador de programa y registro de código de condición. Además, el direccionamiento indirecto doble permite que la página cero de RAM sirva como registros adicionales. Una característica inusual pero útil es que una interrupción empuja cuatro de estos registros en la pila (A y X, así como el PC y CC habituales), y el retorno de la interrupción los restaura.
Las instrucciones ALU se dividen en dos categorías, dos operandos y un operando.
Las instrucciones de dos operandos utilizan el acumulador como primera fuente. El modo de direccionamiento especifica la segunda fuente, que puede ser:
- 8 bits inmediato
- Dirección absoluta de 8 bits
- Dirección absoluta de 16 bits
- Indexado (X)
- Desplazamiento indexado más 8 bits (dirección8, X)
- Desplazamiento indexado más 16 bits (dirección16, X)
El destino suele ser el acumulador, pero unas pocas instrucciones modifican la segunda fuente. (Los operandos inmediatos están prohibidos en tales casos).
Las instrucciones de un operando utilizan el operando especificado tanto para el origen como para el destino. El operando puede ser:
- El acumulador A
- El registro X
- Dirección absoluta de 8 bits
- Indexado (X)
- Desplazamiento indexado más 8 bits (dirección8, X)
El registro más el desplazamiento calcula una suma de ancho completo, por lo que la forma de 8 bits puede direccionar la memoria hasta 255 + 255 = 510.
Además de lo anterior, hay tres bytes de prefijo que se pueden anteponer a cualquier instrucción para la que tengan sentido:
- PDY (0x90) cambia todas las referencias al registro X a Y. Esto permite los modos de direccionamiento (Y), (dirección8, Y) y (dirección16, Y). Esto también afecta a los operandos implícitos, por lo que la instrucción "cargar X" se convierte en "cargar Y". Una consecuencia de esto es que la carga X solo puede usar los modos de direccionamiento relativos a X, y la carga Y solo puede usar los relativos a Y.
- PIX (0x92) agrega un paso de indirección a la instrucción. La dirección de 8 o 16 bits que sigue al byte del código de operación se reemplaza por una dirección de 8 bits de una ubicación de memoria que contiene una dirección de 8 o 16 bits (esta última en orden big-endian ). Esto luego puede ser indexado por el registro X como de costumbre. Esto permite los modos de direccionamiento (dirección8), (dirección16), ([dirección8], X) y ([dirección8.w], X).
- PIY (0x91) combina los efectos anteriores. Esto permite los modos de direccionamiento ([dirección8], Y) y ([dirección8.w], Y). (También se puede utilizar con otros modos como parte de las instrucciones "cargar Y" y "almacenar Y").
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | b2 | b3 | Mnemotécnico | Descripción |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | C | un poco | v | habla a | ? | Operaciones de bits | |||
0 | 0 | 0 | 0 | un poco | 0 | addr8 | soff8 | BTJT addr8 , # bit , etiqueta | Salte a PC + soff8 si el bit de origen es verdadero (establecido) | ||
0 | 0 | 0 | 0 | un poco | 1 | addr8 | soff8 | BTJF addr8 , # bit , etiqueta | Salte a PC + soff8 si el bit de origen es falso (claro) | ||
0 | 0 | 0 | 1 | un poco | 0 | addr8 | - | BSET addr8 , # bit | Establecer el bit especificado en 1 | ||
0 | 0 | 0 | 1 | un poco | 1 | addr8 | - | BRES addr8 , # bit | Restablecer (borrar) el bit especificado a 0 | ||
0 | 0 | 1 | 0 | condición | soff8 | - | Ramas condicionales (desplazamiento relativo de 8 bits) | ||||
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | soff8 | - | Etiqueta JRA | Rama siempre (verdadero) |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | soff8 | - | Etiqueta JRF | Rama nunca (falso) |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | soff8 | - | Etiqueta JRUGT | Bifurcar si no tiene signo mayor que (C = 0 y Z = 0) |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | soff8 | - | Etiqueta JRULE | Bifurcar si no tiene signo menor o igual (C = 1 o Z = 1) |
0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | soff8 | - | Etiqueta JRNC | Rama si no hay acarreo (C = 0) |
0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | soff8 | - | Etiqueta JRC | Rama si lleva (C = 1) |
0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | soff8 | - | Etiqueta JRNE | Bifurcar si no es igual (Z = 0) |
0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | soff8 | - | Etiqueta JREQ | Ramificar si es igual (Z = 1) |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | soff8 | - | Etiqueta JRNH | Bifurcar si no se lleva la mitad (H = 0) |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | soff8 | - | Etiqueta JRH | Bifurcación si se lleva la mitad (H = 1) |
0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | soff8 | - | Etiqueta JRPL | Bifurcar si es más (N = 0) |
0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | soff8 | - | Etiqueta JRMI | Bifurcar si es menos (N = 1) |
0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | soff8 | - | Etiqueta JRNM | Bifurca si no interrumpe la máscara (M = 0) |
0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | soff8 | - | Etiqueta JRM | Bifurcar si las interrupciones están enmascaradas (M = 1) |
0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | soff8 | - | Etiqueta JRIL | Bifurca si la línea de interrupción es baja |
0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | soff8 | - | Etiqueta JRIH | Bifurca si la línea de interrupción es alta |
0 | modo | código de operación | ? | - | Instrucciones de un operando | ||||||
0 | 0 | 1 | 1 | código de operación | addr8 | - | OP addr8 | Dirección absoluta de 8 bits | |||
0 | 1 | 0 | 0 | código de operación | - | - | OP A | Acumulador | |||
0 | 1 | 0 | 1 | código de operación | - | - | OP X | Registro X (registro Y con prefijo) | |||
0 | 1 | 1 | 0 | código de operación | addr8 | - | OP (addr8, X) | Dirección de 8 bits más X | |||
0 | 1 | 1 | 1 | código de operación | - | - | OP (X) | Indexado sin compensación | |||
0 | modo | 0 | 0 | 0 | 0 | ? | - | NEG operando | Negar complemento a dos | ||
0 | modo | 0 | 0 | 0 | 1 | ? | - | (reservado) | |||
0 | modo | 0 | 0 | 1 | 0 | ? | - | (reservado) | |||
0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | - | - | MUL X, A | X: A: = X × A. (MUL Y, A con prefijo) |
0 | modo | 0 | 0 | 1 | 1 | ? | - | CPL operando | Complemento de unos, lógico no | ||
0 | modo | 0 | 1 | 0 | 0 | ? | - | Operando SRL | Desplazamiento lógico a la derecha. Msbit despejado, lsbit para llevar. | ||
0 | modo | 0 | 1 | 0 | 1 | ? | - | (reservado) | |||
0 | modo | 0 | 1 | 1 | 0 | ? | - | RRC operando | Girar a la derecha mediante acarreo, (operando: C): = (C: operando) | ||
0 | modo | 0 | 1 | 1 | 1 | ? | - | SRA operando | Desplaza aritmética a la derecha. Msbit conservado, lebit para llevar. | ||
0 | modo | 1 | 0 | 0 | 0 | ? | - | Operando SLL | Desplazar a la izquierda. Msbit para llevar. | ||
0 | modo | 1 | 0 | 0 | 1 | ? | - | RLC operando | Gire a la izquierda a través del transporte. | ||
0 | modo | 1 | 0 | 1 | 0 | ? | - | Operando DEC | Decremento. (Conjunto N y Z, transporte intacto) | ||
0 | modo | 1 | 0 | 1 | 1 | ? | - | (reservado) | |||
0 | modo | 1 | 1 | 0 | 0 | ? | - | Operando INC | Incremento. (Conjunto N y Z, transporte intacto) | ||
0 | modo | 1 | 1 | 0 | 1 | ? | - | TNZ operando | Prueba distinta de cero. Establezca N y Z según el operando. | ||
0 | modo | 1 | 1 | 1 | 0 | ? | - | SWAP operando | Intercambiar mitades del operando (rotación de 4 bits). | ||
0 | modo | 1 | 1 | 1 | 1 | ? | - | CLR operando | Establezca el operando en 0. N y Z establecidos en valores fijos. Operador. | ||
1 | 0 | 0 | código de operación | - | - | Instrucciones misceláneas. Ninguno estableció implícitamente los códigos de condición. | |||||
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | - | IRET | Retorno de la interrupción (pop CC, A, X, PC) |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | - | - | RETIRADO | Retorno de subrutina (pop PC) |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | - | - | TRAMPA | Forzar interrupción de trampa |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | - | - | (reservado) | |
1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | - | - | POP A | Pop A de la pila |
1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | - | - | POP X | Pop X de la pila |
1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | - | - | POP CC | Códigos de condición emergente de la pila |
1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | - | - | (reservado) | |
1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | - | - | PRESIONE A | Empuje A sobre la pila |
1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | - | - | PRESIONE X | Empuje X sobre la pila |
1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | - | - | PUSH CC | Empuje los códigos de condición en la pila |
1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | - | - | (reservado) | |
1 | 0 | 0 | 0 | 1 | 1 | 0 | - | - | - | (reservado) | |
1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | - | - | DETENER | Detener procesador y relojes |
1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | - | - | WFI | Espere la interrupción, deteniendo el procesador pero no los relojes |
1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | - | - | PDY | Prefijo de instrucción; intercambiar X e Y en la siguiente instrucción |
1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | - | - | PIY | Prefijo de instrucción; PDY más PIX |
1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | - | - | PIX | Prefijo de instrucción; usar memoria de 8 bits indirecta para el operando |
1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | - | - | LD X, Y | X: = Y. Con PDY, hace "LD Y, X". |
1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | - | - | LD S, X | S: = X. Cargar puntero de pila. |
1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | - | - | LD S, A | S: = A. Cargar puntero de pila. |
1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | - | - | LD X, S | X: = S. |
1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | - | - | LD X, A | X: = A. |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | - | - | RCF | Restablecer (borrar) la bandera de acarreo |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | - | - | SCF | Establecer bandera de transporte |
1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | - | - | BORDE | Restablecer máscara de interrupción (habilitar interrupciones) |
1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | - | - | SIM | Establecer máscara de interrupción (deshabilitar interrupciones) |
1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | - | - | RSP | Restablecer el puntero de la pila (en la parte superior de la RAM) |
1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | - | - | NOP | No operacion. (= LD A, A) |
1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | - | - | LD A, S | A: = S |
1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | - | - | LD A, X | A: = X. |
1 | modo | código de operación | valor | ? | Instrucciones de dos operandos A: = A operand op | ||||||
1 | 0 | 1 | 0 | código de operación | imm8 | - | OP # imm8 | Operando inmediato de 8 bits (prohibido como destino) | |||
1 | 0 | 1 | 1 | código de operación | addr8 | - | OP addr8 | Dirección absoluta de 8 bits | |||
1 | 1 | 0 | 0 | código de operación | Addrhi | addrlo | OP addr16 | Dirección absoluta de 16 bits | |||
1 | 1 | 0 | 1 | código de operación | Addrhi | addrlo | OP (dirección 16 , X) | Indexado con desplazamiento de 16 bits | |||
1 | 1 | 1 | 0 | código de operación | addr8 | - | OP ( addr8 , X) | Indexado con desplazamiento de 8 bits | |||
1 | 1 | 1 | 1 | código de operación | - | - | OP (X) | Indexado sin compensación | |||
1 | modo | 0 | 0 | 0 | 0 | valor | ? | SUB A, operando | A: = A - operando | ||
1 | modo | 0 | 0 | 0 | 1 | valor | ? | CP A, operando | Comparar A - operando | ||
1 | modo | 0 | 0 | 1 | 0 | valor | ? | SBC A, operando | Restar con pedir prestado A: = A - operando - C | ||
1 | modo | 0 | 0 | 1 | 1 | valor | ? | CP X, operando | Comparar X - operando | ||
1 | modo | 0 | 1 | 0 | 0 | valor | ? | Y A, operando | A: = A & operando, bit a bit y | ||
1 | modo | 0 | 1 | 0 | 1 | valor | ? | BCP A, operando | Prueba A y operando bit a bit | ||
1 | modo | 0 | 1 | 1 | 0 | valor | ? | LD A, operando | Cargar A: = operando | ||
1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | imm8 | - | (reservado, = LD # imm8, A) | |
1 | modo | 0 | 1 | 1 | 1 | valor | ? | Operando LD , A | Almacenar operando: = A | ||
1 | modo | 1 | 0 | 0 | 0 | valor | ? | XOR A, operando | A: = A ^ operando, exclusivo-o | ||
1 | modo | 1 | 0 | 0 | 1 | valor | ? | ADC A, operando | A: = A + operando + C, agregar con acarreo | ||
1 | modo | 1 | 0 | 1 | 0 | valor | ? | O A, operando | A: = A | operando, inclusive o | ||
1 | modo | 1 | 0 | 1 | 1 | valor | ? | AÑADIR X, operando | A: = A + operando | ||
1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | imm8 | X | (reservado, = JP # imm8) | |
1 | modo | 1 | 1 | 0 | 0 | valor | ? | Operando JP | PC: = operando, salto incondicional | ||
1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | soff8 | - | Etiqueta CALLR | PUSH PC, PC: = PC + operando |
1 | modo | 1 | 1 | 0 | 1 | valor | ? | CALL operando | Pulse PC, PC: = operando | ||
1 | modo | 1 | 1 | 1 | 0 | valor | ? | LD X, operando | Cargar X: = operando | ||
1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | imm8 | - | (reservado, = LD # imm8, X) | |
1 | modo | 1 | 1 | 1 | 1 | valor | ? | Operando LD , X | Almacenar operando: = X |
Referencias
- ^ Hoja de datos: ST62T00C / T01C de 1998
- ^ "Directorio 2006 de microcontroladores / microprocesadores EDN, microprocesadores de 8 bits ordenados por arquitectura de conjunto de instrucciones" (PDF) . pag. 26. 100616 edn.com
- ^ a b "Manual de programación de la familia ST6" (PDF) . Revisión 2.0. STMicroelectronics . Octubre de 2004 . Consultado el 28 de febrero de 2017 .
- ^ "Manual de programación de la familia ST7" (PDF) . Revisión 2. STMicroelectronics . Noviembre de 2005 . Consultado el 28 de febrero de 2017 .