stringtranslate.com

NAR 2

NAR 2 ( serbio Na stavni R ačunar 2, en. Educational Computer 2) es un modelo teórico de una computadora de palabras de 32 bits creado por el profesor Nedeljko Parezanović de la Facultad de Matemáticas de la Universidad de Belgrado como una mejora de su predecesor, NAR 1 . Se utilizó para cursos de lenguaje ensamblador y arquitectura informática . La palabra "nar" significa granada en serbio . Se han creado muchos simuladores de NAR 2; por ejemplo, uno se llamó "Šljiva" ( en. ciruela ), ya que esa fruta crece en Serbia , mientras que "nar" no.

Estructura de instrucción

El procesador NAR 2 utiliza palabras de máquina de 32 bits. Cada instrucción de la máquina contiene:

Registros

NAR 2 tiene cuatro registros:

Mnemotécnica

Estaban disponibles los siguientes códigos de operación (no se especificaron los códigos reales, solo mnemotécnicos):

Acceso a memoria/registro

aritmética de enteros

Nota: todos los mnemotécnicos de este grupo terminan con la letra "F" que indica "Fiksni zarez" ( en. Punto fijo) aritmética. Sin embargo, esto sólo es cierto para la suma, la resta y la negación (cambio de signo). La multiplicación y la división suponen que el "punto" está fijo a la derecha del bit menos significativo, es decir, que los números son enteros.

Aritmética de coma flotante

Bit a bit/lógico

Nota: las operaciones anteriores son todas bit a bit . Sus nombres implican que son operaciones puramente lógicas , pero pueden explicarse como si operaran con vectores de bits y aplicaran operaciones lógicas por separado en cada par de bits.

Cambios lógicos

Control de flujo

Sintaxis estándar del lenguaje ensamblador

La sintaxis del lenguaje ensamblador NAR 2 fue diseñada para ser sencilla y fácil de analizar. Cada línea de programa puede contener hasta una instrucción especificada de la siguiente manera:

  1. mnemónico de instrucción
  2. Espacios en blanco, si la instrucción especifica algún registro de índice, modo de direccionamiento o un parámetro y luego separados por comas:
    1. Nombre del registro índice, si se utiliza
    2. Nombres de indicadores del modo de direccionamiento (también separados por comas)
    3. Valor del parámetro

Código de muestra:

 aum X1, p, 0 mua n, 1 aum 15 pir X1, p, n, 1 mua X1, p, n, 0 oduf n, 1 oduf X2, p, n, 0

Modos de direccionamiento

Con cuatro bits de selección de modo de dirección (P, R, I y N - indexado, relativo, indirecto e inmediato), las instrucciones NAR 2 pueden especificar 16 modos de direccionamiento diferentes, pero no todos tienen sentido en todas las instrucciones. En la siguiente tabla:

Nota 1: El indicador "N" (inmediato) no tiene efecto en las instrucciones de salto (control de flujo), ya que el procesador no puede saltar a un valor específico, sino solo a una dirección de memoria.

Memoria multinivel indirecta

NAR 2 admite el modo de direccionamiento indirecto de memoria multinivel . La ubicación se elige primero "mirando" los indicadores P (indexado) y R (relativo al contador del programa). Luego, si se detecta el indicador I (indirecto), se carga una palabra de 32 bits desde la ubicación de memoria calculada hasta el momento y se reinicia el cálculo (incluidos todos los indicadores del modo de direccionamiento, la selección del registro de índice y el valor del parámetro; solo se muestra el "código de operación"). omitido). Por lo tanto, el siguiente programa, si se carga en la ubicación de memoria 0 y se ejecuta:

mua I, 0 ; Memoria en acumulador, indirecta, desde la ubicación 0

... congelará NAR 2 en un bucle infinito de cálculo de direcciones:

  1. "I, 0" especifica que la dirección real se cargará desde la ubicación de memoria 0
  2. La ubicación de memoria 0 está cargada. Se lee "I, 0" nuevamente.
  3. "I, 0" especifica que la dirección real se cargará desde la ubicación de memoria 0
  4. La ubicación de memoria 0 está cargada. Se lee "I, 0" nuevamente.
  5. "I, 0" especifica que la dirección real se cargará desde la ubicación de memoria 0
  6. La ubicación de memoria 0 está cargada. Se lee "I, 0" nuevamente.
  7. ...

Tenga en cuenta que:

mua R, I, 0 ; Memoria en acumulador, relativa, indirecta, desde la ubicación BN+0

Parece más genérico (podría congelar NAR 2 desde cualquier ubicación), pero esto depende de cuándo se incrementa/cambia el valor del registro BN.

La cuestión del tratamiento del indicador "N" (inmediato) en presencia del indicador I (indirecto) está abierta ya que la situación es algo ambigua, es decir, si se debe respetar o no el valor del indicador especificado en la instrucción original o en el de la instrucción. La dirección especificada indirectamente (buscada) genera un conflicto. La tabla anterior presenta el primer caso que muestra los diferentes modos de direccionamiento que se pueden lograr de esta manera.

Lectura de valores de registros de índice

NAR 2 tiene instrucciones para inicializar el valor de un registro de índice particular (mnemotécnico "PIR"). Sin embargo, no tiene instrucciones especiales para leer registros de índice de valores. Esto se logra mediante el uso de indicadores de modo de direccionamiento indexados e inmediatos (P, N), como:

mua Xi, P, N, n; Memoria en acumulador, indexada, inmediata, 0

... lo que esencialmente pone a Xi+n en el acumulador. Para n=0, esto se convierte en una instrucción "cargar el valor del registro de índice en el acumulador".

Ver también

enlaces externos