Una instrucción del conjunto de instrucciones de Intel 8085 que son datos SBI (restar inmediato con préstamo). Esta instrucción dice "El contenido del segundo byte de la instrucción y el contenido de la bandera CY se restan del acumulador. El resultado se coloca en el acumulador".
O
(A) <-- (A) -(byte 2) - (CY)
En esto ¿qué hace second byte
o byte mean
?
También en la instrucción STA addr (Almacenar dirección inmediata) que dice "El contenido del acumulador se mueve a la ubicación de memoria cuya dirección se especifica en el byte 2 y el byte 3 de la instrucción". ¿Qué significa byte 2
y byte 3
?
Las instrucciones se componen de un número variable de "palabras" y esas palabras se componen de bits. En el caso de la arquitectura 8085 , puede tener instrucciones de una, dos o tres palabras, y cada palabra es de 8 bits. Esos bits se dividen en campos según su conjunto de instrucciones. Qué campos hay y qué significan esos campos suele ser sensible al contexto en función del valor de un campo que siempre tiene el mismo significado. Por lo general, este campo se denomina "código de operación". Debe leer en detalle al menos el capítulo 8 del pdf vinculado para obtener una comprensión completa.
En el caso de instrucciones que operan sobre registros y almacenan sus resultados en un registro, es necesario identificar los registros de origen y de destino en algunos campos de la instrucción. En el caso de una instrucción que agrega una constante a un registro y almacena el resultado en un registro, aún es necesario identificar los registros, pero también es necesario codificar la constante en la instrucción en su propio campo. En las arquitecturas de conjuntos de instrucciones, el término "inmediato" se usa a menudo para referirse a un "valor constante". En el caso de instrucciones que leen o escriben en la memoria, es posible que la ubicación en la memoria deba codificarse dentro de la instrucción.
Esa es la idea básica, espero que esto ayude. Para referencia futura, un buen término de búsqueda para preguntas como esta es "Arquitectura del conjunto de instrucciones" para su procesador.
Editar Re: STA 4200
La instrucción STA se describe en la página 3-61 (pág. 117) de esta guía de programación en lenguaje ensamblador para procesadores 8080/8085. Los tres bytes son:
STA es la instrucción "Almacenar acumulador directo", y lo que hace es copiar el valor del acumulador en la memoria en la dirección de 16 bits compuesta por los bytes 2 y 3.
Aparentemente tiene instrucciones de 2 bytes y 3 bytes. El primer byte es aparentemente el código de operación en estos casos. La instrucción SBI solo tiene un byte de datos más allá del código de operación, por lo que el byte de datos es el segundo byte de la instrucción. De manera similar, la dirección en la que opera la instrucción STA está en el segundo y tercer byte de la instrucción, siendo presumiblemente el primer byte el código de operación.
Tenga en cuenta que todo esto es especulación de lo que dijo y vagos recuerdos del conjunto de instrucciones x86. No he buscado nada para confirmarlo. Ese es tu trabajo.
El segundo byte presumiblemente contiene el valor que se restará del valor en el acumulador.
El segundo y tercer byte sobre los que pregunta en relación con la instrucción STA contienen una dirección, un valor de 16 bits que debe especificarse como dos bytes de 8 bits.
Examinar algún código ensamblado usando esas instrucciones debería ayudar.
Veamos un fragmento de código de máquina: (Esto es de stoned-b , pero la mayoría del código ejecutable para muchos procesadores se ve similar).
...
1000:0148 BB0002 MOV BX,0200
1000:014B 33C9 XOR CX,CX
1000:014D 8BD1 MOV DX,CX
1000:014F 41 INC CX
...
En la mayoría de las computadoras, "byte" significa una única unidad de memoria direccionable que contiene 8 bytes.
Este ejemplo muestra que el valor de byte "BB" se almacena en la ubicación 1000:0148, el valor de byte "00" se almacena en 1000:0149, el byte "02" se almacena en 1000:014A, el byte "33" se almacena en 1000:014B, y así sucesivamente.
Los programas se almacenan en la memoria. Algunos procesadores tienen instrucciones de longitud variable; como puede ver en este ejemplo, la primera instrucción ocupa 3 bytes, las siguientes instrucciones ocupan 2 bytes cada una y la última instrucción requiere solo 1 byte.
El "byte 1" de la primera instrucción en este ejemplo es "BB", el "byte 2" es "00" y el "byte 3" es "02".
El "byte 1" de la siguiente instrucción en este ejemplo es "33", el "byte 2" es "C9" y no tiene un "byte 3".
Los conjuntos de instrucciones de longitud variable, como el 8085 y el de este ejemplo, normalmente codifican el código de operación y el formato de la instrucción en el primer byte. Al examinar solo el primer byte, la CPU puede decodificar cuántos bytes tiene la instrucción completa, qué función hace esta instrucción y el "significado" de los siguientes bytes.
Espero que usted y otros sigan mejorando los libros de lenguaje ensamblador , como el libro " x86 Assembly ", hasta que brinden respuestas claras y fáciles de entender a esta y otras preguntas relacionadas.
Suhail Gupta
olin lathrop
al-kepp
Kortuk