¿qué significa byte 2 y byte 3?

3

Una instrucción del conjunto de instrucciones de intel 8085 que es datos de SBI (resta inmediata con préstamo). Esta instrucción dice "El contenido del segundo byte de la instrucción y el contenido del indicador 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 la memoria cuya dirección se especifica en los bytes 2 y 3 de la instrucción". ¿Qué significa byte 2 y byte 3 ?

    
pregunta Suhail Gupta

4 respuestas

3

Las instrucciones se componen de un número variable de "palabras" y esas palabras se componen de bits. En el caso de la 8085 architecture , puede tener instrucciones que son una, dos, o tres palabras de largo, y cada palabra es de 8 bits. Esos bits se dividen en campos según su conjunto de instrucciones. Los campos que existen y lo que significan esos campos suelen ser sensibles al contexto en función del valor de un campo que siempre tiene el mismo significado. Normalmente, este campo se conoce como el "código de operación". Debe leer en detalle al menos el capítulo 8 del pdf vinculado para obtener una comprensión exhaustiva.

En el caso de instrucciones que operan en registros y almacenan sus resultados en un registro, los registros de origen y destino deben identificarse 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, los registros aún deben identificarse, pero la constante también debe codificarse en la instrucción en su propio campo. En las arquitecturas de conjuntos de instrucciones, el término "inmediato" se usa a menudo para significar un "valor constante". En el caso de instrucciones que lean o escriban en la memoria, es posible que la ubicación en la memoria tenga que estar codificada dentro de la instrucción.

Esa es la idea básica, espero que esto ayude. Para futuras referencias, un buen término de búsqueda para preguntas como esta es "Arquitectura de 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 este Guía de programación en lenguaje ensamblador para procesadores 8080/8085. Los tres bytes son:

  • Byte 1 = OpCode (00110010)
  • Byte 2 = Byte de dirección bajo
  • Byte 3 = Byte de dirección alta

STA es la instrucción "Almacenar el 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.

    
respondido por el vicatcu
1

Aparentemente tienes 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 se encuentra en el segundo y tercer byte de la instrucción, y el primer byte probablemente sea el código de operación.

Tenga en cuenta que esto es toda especulación de lo que dijo y recuerdos vagos del conjunto de instrucciones x86. No he buscado nada para confirmarlo. Ese es tu trabajo.

    
respondido por el Olin Lathrop
0

El segundo byte probablemente contiene el valor que se debe restar del valor en el acumulador.

El segundo y tercer bytes que solicita 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 un código ensamblado usando esas instrucciones debería ayudar.

    
respondido por el Leon Heller
0

Veamos un fragmento de código de máquina: (Esto es de stoned-b , pero la mayoría el código ejecutable para muchos procesadores parece 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 sola 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 solo requiere 1 byte.

El "byte 1" de la primera instrucción en este ejemplo es "BB", "byte 2" es "00" y "byte 3" es "02".

El "byte 1" de la siguiente instrucción en este ejemplo es "33", "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 de largo es la instrucción completa, y qué función realiza esta instrucción y el "significado" de los siguientes bytes.

Espero que usted y los demás sigan mejorando libros en lenguaje ensamblador , como "x86 Assembly ", hasta que proporcione respuestas claras y fáciles de entender sobre este y otras preguntas relacionadas.

    
respondido por el davidcary

Lea otras preguntas en las etiquetas