El lenguaje ensamblador - el registro de banderas

8086CPU registro de banderas contiene 16 bits de información almacenada en el mismo se refieren generalmente como la palabra de estado de programa (PSW). registro de banderas es un poco de trabajo, es decir, cada pedacito de ella tiene un significado especial, información específica de grabación.
8086CPU la estructura de registro de bandera se muestra:
Aquí Insertar imagen Descripción

bandera ZF

  • No. 6 bandera es ZF, la bandera cero. Se registros relacionados con la instrucción de ejecución, si el resultado es 0. Si el resultado es 0, zf = 1; si el resultado no es 0, entonces zf = 0.
  • 8086CPU en el conjunto de instrucciones, la instrucción se ejecuta y algunos afectan el registro de banderas, tales como: add, sub, mul, div, inc, o, y similares, que son en su mayoría las instrucciones de funcionamiento (aritméticas o lógicas);
  • Algunos de indicador de ejecución de instrucciones Registre ninguna influencia, tales como: mov, empujar, pop, etc., que en su mayoría son instrucciones de transferencia.

bandera PF

  • Los dos primeros bandera es PF, la bandera de paridad. Se ejecuta después de la instrucción de grabación, los resultados de todos los bits (el menos significativo) el número de 1s: es un número par, PF = 1; es impar, PF = 0.

logotipo de SF

  • El bit 7 bandera es SF, bandera señal. Se ejecuta después de la instrucción de grabación, el resultado es negativo, SF = 1, el resultado es positivo, SF = 0.
  • Por los mismos datos binarios, el ordenador puede usarlo como una operación de datos sin firmar, también puede ser utilizado como operaciones de datos firmados, de hecho, no importa, es importante tener en cuenta cómo el usuario.
  • Podemos añadir operación de la instrucción a cabo como un operando sin signo, a continuación, añadir la instrucción correspondiente al calculado 129 + 1, el resultado es 130 (10000010B);
  • instrucción de suma aritmética también puede ser considerada como que tiene símbolos de operandos, a continuación, añadir la instrucción correspondiente a la calculada -127 + 1, el resultado es -126 (10000010B).
  • Si tomamos los datos sin firmar calcula el valor de SF no tiene sentido, aunque las instrucciones pertinentes afectan su valor.

bandera CF

  • Bandera bit 0 es CF, bandera de acarreo. En general, durante la unsigned bit más significativo hasta un poco más alto del valor del tiempo de funcionamiento, se registra el resultado de cálculo, o más bits a partir del valor de préstamo.
  • Uno de los casos es de dos datos hacen además produjo el bit más alto de la, otro caso, cuando los dos datos en tiempo resta, es posible pedir prestado poco más alto.

de la bandera

  • Realizar, cuando una firmaron operando, como resultado de más de la máquina para estar representados en el llamado desbordamiento.
  • CF es sin signo indicador significativo aritmética; y DE es un número con signo indicadores aritméticos significativa.

la instrucción ADC

instrucción ADC es además con acarreo, que utiliza un valor de acarreo grabado en el bit CF.

  • Formato: adc un objetivo de la operación, el objetivo de la operación 2
  • Función: objetivo de la operación operación sujeto 1 = 1 + 2 + objetivo de la operación CF
  • Tales instrucciones adc hacha, bx lograr la función es: (ax) = (ax) + (bx) + CF

Adc puede utilizar arbitraria la adición de datos de gran tamaño.

instrucciones de SBB

instrucción resta SBB es una correa desalineada, que utiliza valores de bit de préstamo registrados en el CF.

  • Formato: 1 SBB objetivo de la operación, el objetivo de la operación 2
  • Función: operar el objetivo de la operación objetos 1- 1 objetivo de la operación = 2-CF
  • Tales instrucciones SBB hacha, BX realizar la función: (ax) = (ax) - (BX) - CF

Podemos utilizar las instrucciones SBB sustracción de datos arbitrariamente grandes.

cmp

cmp es relativamente instrucciones, funciona como una instrucción de resta, pero no guarda los resultados. Después se ejecuta la instrucción CMP, que afectará registro del pabellón.

  • Formato: CMP un objetivo de la operación, el objetivo de la operación 2
  • Función: Calcular los objetos de destino de operación 1- 2, pero no almacena el resultado de la operación, sólo el registro de banderas se establece de acuerdo a los resultados.

Al comparar el resultado de la detección de la instrucción de salto condicional

Aquí Insertar imagen Descripción

  • e: representa iguales;
  • ne: no representa iguales;
  • b: indica a continuación;
  • nb: representa no más abajo;
  • a: expresado anteriormente;
  • na: no representa anteriormente.

DF indicador de transferencia de cadena instrucción y

La primera bandera 10 es DF, el indicador de dirección. En la cadena de instrucción de procesamiento, el control si, di aumento o disminución después de cada operación.

  • DF = 0: Después de cada operación si, di incremento;
  • DF = 1: Después de cada operación si, di decrementa.
  • Formato: movsb (w);
  • Función :( bytes transmitidos).
((es)×16 + (di)) = ((ds) ×16 + (si))
如果DF = 0则:
	(si) = (si) + 1
	(di) = (di) + 1
如果DF = 1则:
	(si) = (si) - 1
	(di) = (di) - 1

movsb movsw y un paso se realiza en una operación de transferencia de cadena, en general, y MOVSB ​​MOVSW tanto rep y usado en conjunción con el siguiente formato:

rep movsb。 ;rep的作用是根据cx的值,重复执行后面的串传送指令。

Las dos instrucciones establecen el bit DF 8086CPU proporciona a continuación:

  • la instrucción CLD: la posición de registro de banderas de 0 DF
  • instrucción STD: el registro de localización de bandera DF

PUSHF y POPF

  • PUSHF : El valor del registro del pabellón en la pila;
  • POPF : ventanas de datos de la pila en el registro de banderas
Publicado 20 artículos originales · alabanza ganado 20 · vistas 1998

Supongo que te gusta

Origin blog.csdn.net/Cdreamfly/article/details/104845818
Recomendado
Clasificación