Electrónica e informática. Registros de la CPU: La CPU tiene 14 registros internos, cada uno de 16 bits. Los primeros cuatro, AX, BX, CX, y DX son registros de uso general y también pueden ser utilizados como registros de 8 bits, para utilizarlos como tales es necesario referirse a ellos como por ejemplo: AH y AL, que son los bytes alto (high) y bajo (low) del registro AX. Esta nomenclatura es aplicable también a los registros BX, CX y DX. Los registros son conocidos por sus nombres específicos: AX Acumulador BX Registro base CX Registro contador DX Registro de datos DS Registro del segmento de datos ES Registro del segmento extra SS Registro del segmento de pila CS Registro del segmento de código BP Registro de apuntadores base SI Registro índice fuente DI Registro índice destino SP Registro del apuntador de la pila IP Registro de apuntador de siguiente instrucción F Registro de banderas Instrucciones lógicas: Son utilizadas para realizar operaciones lógicas sobre los operandos. AND NEG NOT OR TEST XOR Instrucciones aritméticas: Se usan para realizar operaciones aritméticas sobre los operandos. ADC ADD DIV IDIV MUL IMUL SBB SUB Operaciones CALL y RET: La instrucción CALL transfiere el control a un procedimiento llamado, y la instrucción RET regresa del procedimiento llamado al procedimiento original que hizo la llamada. RET debe ser la ultima instrucción en un procedimiento llamado. Los formatos generales para CALL y RET son: (etiqueta) CALL (procedimiento) (etiqueta) RET (inmediato) El código objeto particular que CALL y RET generan depende de si la operación implica un procedimiento NEAR (cercano) o un procedimiento FAR (lejano). Instrucciones para ciclos: LOOP Transfieren el flujo del proceso, condicional o incondicionalmente, a un destino repitiéndose esta acción hasta que el contador sea cero. LOOP LOOPE LOOPNE Instrucciones de conteo: Se utilizan para decrementar o incrementar el contenido de los contadores. DEC INC Instrucciones de comparación: Son usadas para comparar operandos, afectan al contenido de las banderas. CMP CMPS (CMPSB) (CMPSW) Instrucciones de banderas: Afectan directamente al contenido de las banderas. CLC CLD CLI CMC STC STD STI Instrucciones de salto: Son utilizadas para transferir el flujo del proceso al operando indicado. JMP JA (JNBE) JAE (JNBE) JB (JNAE) JBE (JNA) JE (JZ) JNE (JNZ) JG (JNLE) JGE (JNL) JL (JNGE) JLE (JNG) JC JNC JNO JNP (JPO) JNS JO JP (JPE) JS Instrucción JMP Propósito: Salto incondicional Sintaxis: JMP destino Esta instrucción se utiliza para desviar el flujo de un programa sin tomar en cuenta las condiciones actuales de las banderas ni de los datos. Instrucción JA (JNBE) Propósito: Brinco condicional Sintaxis: JA Etiqueta Después de una comparación este comando salta si está arriba o salta si no está abajo o si no es igual. Esto significa que el salto se realiza solo si la bandera CF esta desactivada o si la bandera ZF esta desactivada (que alguna de las dos sea igual a cero). Instrucción JAE (JNB) Propósito: salto condicional Sintaxis: JAE etiqueta Salta si está arriba o si es igual o salta si no está abajo. El salto se efectúa si CF esta desactivada. Instrucción JB (JNAE) Propósito: salto condicional Sintaxis: JB etiqueta Salta si está abajo o salta si no está arriba o si no es igual. Se efectúa el salto si CF esta activada. Instrucción JBE (JNA) Propósito: salto condicional Sintaxis: JBE etiqueta Salta si está abajo o si es igual o salta si no está arriba. El salto se efectúa si CF está activado o si ZF está activado (que cualquiera sea igual a 1). Instrucción JE (JZ) Propósito: salto condicional Sintaxis: JE etiqueta Salta si es igual o salta si es cero. El salto se realiza si ZF está activada. Instrucción JNE (JNZ) Propósito: salto condicional Sintaxis: JNE etiqueta Salta si no es igual o salta si no es cero. El salto se efectúa si ZF está desactivada. Instrucción JG (JNLE) Propósito: salto condicional, se toma en cuenta el signo. Sintaxis: JG etiqueta Salta si es más grande o salta si no es menor o igual. El salto ocurre si ZF = 0 u OF = SF. Instrucción JGE (JNL) Propósito: salto condicional, se toma en cuenta el signo. Sintaxis: JGE etiqueta Salta si es más grande o igual o salta si no es menor que. El salto se realiza si SF = OF Instrucción JL (JNGE) Propósito: salto condicional, se toma en cuenta el signo. Sintaxis: JL etiqueta Salta si es menor que o salta si no es mayor o igual. El salto se efectúa si SF es diferente a OF. Instrucción JLE (JNG) Propósito: salto condicional, se toma en cuenta el signo. Sintaxis: JLE etiqueta Salta si es menor o igual o salta si no es más grande. El salto se realiza si ZF = 1 o si SF es diferente a OF Instrucción JC Propósito: salto condicional, se toman en cuenta las banderas. Sintaxis: JC etiqueta Salta si hay acarreo. El salto se realiza si CF = 1 Instrucción JNC Propósito: salto condicional, se toma en cuenta el estado de las banderas. Sintaxis: JNC etiqueta Salta si no hay acarreo. El salto se efectúa si CF = 0. Instrucción JNO Propósito: salto condicional, se toma en cuenta el estado de las banderas. Sintaxis: JNO etiqueta Salta si no hay desbordamiento. El salto se efectúa si OF = 0. Instrucción JNP (JPO) Propósito: salto condicional, toma en cuenta el estado de las banderas. Sintaxis: JNP etiqueta Salta si no hay paridad o salta si la paridad es non. El salto ocurre si PF = 0. Instrucción JNS Propósito: salto condicional, toma en cuenta el estado de las banderas. Sintaxis: JNP etiqueta Salta si el signo esta desactivado. El salto se efectúa si SF = 0. Instrucción JO Propósito: salto condicional, toma en cuenta el estado de las banderas. Sintaxis: JO etiqueta Salta si hay desbordamiento (overflow). El salto se realiza si OF = 1. Instrucción JP (JPE) Propósito: salto condicional, toma en cuenta el estado de las banderas. Sintaxis: JP etiqueta Salta si hay paridad o salta si la paridad es par. El salto se efectúa si PF = 1. Instrucción JS Propósito: salto condicional, toma en cuenta el estado de las banderas. Sintaxis: JS etiqueta Salta si el signo está prendido. El salto se efectúa si SF = 1. Instrucciones de transferencia: Son utilizadas para mover los contenidos de los operandos. Cada instrucción se puede usar con diferentes modos de direccionamiento. MOV MOVS (MOVSB) (MOVSW) Instrucciones de carga: Son instrucciones específicas de los registros. Son usadas para cargar en algo en registro bytes o cadenas de bytes. LODS (LODSB) (LODSW) LAHF LDS LEA LES Instrucciones de la pila: Estas instrucciones permiten el uso de la pila para almacenar y extraer datos. POP POPF PUSH PUSHF Espero que les sirva. Saludos.