Curso de Asembler - Apéndice A: Juego de instrucciones

13 - Apéndice A: Juego de instrucciones

[editar]
Curso gratis creado por Pablo Barrón Ballesteros ( Wintermute ).
04 de Noviembre de 2005
Instrucciones:

Mnemónico    Explicación

AAA

Adjust ASCII after Addition, ajuste ASCII despu‚s de sumar.

Esta instrucción se emplea tras sumar dos números BCD no

empaquetados de dos dígitos con ADD AX,reg/mem. Comprueba si

el contenido de AL supera a nueve, y realiza si es cierto una

operación que consiste en restar 10 de AL. AH se incrementa

si AL fue superior a 9.

ADD

Suma al operando destino el operando origen, almacenando

en el operando destino el resultado.

AAM

Ajusta ASCII despu‚s de multiplicar

Convierte el número binario de 8 bits en AL en un número

BCD no empaquetado de dos dígitos en AX. AL debe ser menor

que 100 para que el ajuste proporcione un número v lido.

AAS

Ajusta ASCII despu‚s de restar

Se emplea despu‚s de restar dos números BCD no empaquetados

con SUB AX,reg/mem. Comrpueba si AL es mayor a 9, y si lo

es, suma 10 a AL. Si se realiza ajuste, el flag de acarreo

se activa.

ADC

Add With Carry, suma los dos operandos y el flag de

acarreo, almacenando en el operando destino el resultado

de la suma

ADD

ADDition, ‚sta instrucción suma los dos operandos y

almacena el resultado en el de destino.

AND

Realiza un AND lógico entre los dos operandos de la

instrucción, almacenando el resultado en el de destino.

CALL

Empuja IP y CS a la pila, y salta a la dirección que

indica su operando.

CBW

Convert Byte to Word, copia el bit de mayor peso de AH en

cada uno de los de AL

CLC

Clear Carry Flag, pone el flag de acarreo a cero.

CLD

Clear Direction Flag, pone a cero el flag de acarreo.

CLI

Clear Interrupts, pone e flag de interrupción a cero, con

lo que no se podr n hacer llamadas a ‚stas hasta llegar a

un STI ( Set Interrupts )

CMC

CoMplement Carry flag, invierte el contenido del flag de

acarreo.

CMP

Resta el operando origen del destino, tan sólo que no

almacena el resultado, si actualiz ndose sin embargo los

flags.

CMPS

Comparar cadena, puede usarse sin operandos, en cuyo caso

tendr  que ser CMPSB o CMPSW ( Byte o Word ), o con ellos.

Los elementos a comparar est n apuntados por ES:DI y DS:DI

CWD

Convert Word to Double Word, lo que har  ser  copiar el

signo de AX, o sea, su byte m s significativo, en DX.

DAA

Decimal Adjust AL after Adittion, se emplea tras sumar dos

números BCD empaquetados de dos dígitos con ADD AL,reg/mem.

Verifica si el flag de acarreo auxiliar est  a 1 o el

contenido de los cuatro bits menos significativos de AL

es mayor que 9, en cuyo caso se suma 6 a AL. Tras ‚sto,

comprueba si el flag de acarreo est  activado o el contenido

de los 4 bits m s significativos es mayor que 9, en cuyo

caso se suma 60h a AL. El flag de acarreo se activa si se

ha realizado la segunda operación, y el de acarreo auxiliar

si se realizó la primera.

DEC

Utiliza un operando, al que decrementa en una unidad.

DIV

Divide el acumulador entre el operando, dejando cociente

y resto. El acumulador ser  AX en caso de división de 16

bits y DX-AX en caso de 32 bits, quedando cociente y resto

en AL-AH y AX-DX respectivamente.

ESC

ESCape

Sirve para pasar el control del procesador al copro

HLT

Bloquea el ordenador.

IDIV

División para números con signo

IMUL

Multiplicación para números con signo.

IN

INput from port, lee un byte del puerto que especifica el

operando origen y lo almacena en AL. Si el operando destino

es AX, almacena un segundo byte en AH ( el operando destino

sólo puede ser AX o AL, y el origen DX o un número )

INC

Incrementa el operando en un byte, sin modificar el estado

de los flags.

INT

Llama a la interrupción del operando ( p.ej, INT 21h )

INTO

INTerruption on Overflow, llama a la interrupción 4 si el

flag de desbordamiento ( overflow ) est  activado. En caso

de que sepamos con seguridad que no es así, es un NOP en

realidad.

IRET

Interruption Return, saca de la pila IP y CS y vuelve al

sitio donde se llamó a la interrupción ( cada vez que

ejecutamos una interrupción, el ordenador efectua una serie

de pasos que acaban con ‚ste IRET )

JMP

Puede ser corto, cercano o largo, cambiando IP y a veces

CS con nuevos valores, o sea, transfiriendo el control a

otra parte del programa.

LAHF

Copia en AH el contenido del byte menos significativo del

registro de flags

LDS

Load Far Pointer with DS, Cargar puntero lejano con DS. Con

‚sta instrucción, se lee una palabra en la dirección indicada

por el origen, copi ndose en el registro destino, y de nuevo

se lee otra, que se almacena en DS

LEA

Load Effective Adress, Cargar dirección efectiva; calcula

el offset del operando origen, y lo almacena en el destino

( bastante útil con etiquetas, por ejemplo )

LES

Load Far Pointer with ES; Igual que LDS, tan sólo que

la segunda palabra la almacena en ES.

LOCK

Lock the Bus.

Se trata de una instrucción que se usa precediendo a

MOV, MOVS o XCHG, y previene del uso del Bus mientras se

ejecuta la instrucción para evitar que ‚ste sea usado por

algún evento externo, interrupciones, etc

LODS

LOaD String, cargar cadena

Si no hay operandos, debe de indicarse con B o W, para

saber si se opera con bytes o palabras. Carga en el

acumulador el elemento apuntado por DS:SI, sea byte o

palabra.

LOOP

Bucle, saltar  a la dirección indicada en su operando

( por ejemplo, LOOP etiqueta ) mientras CX valga m s de

1, cuando su valor llegue a cero el bucle dejar  de

ejecutarse.

MOV

Copia el operando origen en el destino, pudi‚ndose

realizar ‚stas combinaciones:

reg,reg

reg,mem

mem,reg

reg,inmed

mem,inmed

reg16,segrer

regseg,reg16

regseg,mem

MOVS

MOVe String, mover cadena

Normalmente con el operando B ( byte ) o W ( Word ) de

manera que se transfiera un byte o una palabra, MOVSB o

MOVSW transfieren lo contenido en DS:SI a ES:DI

MUL

MULtiply, multiplicar.

Multiplica el acumulador por el operando , si el operando

puesto en Mul es de 16 bits, el acumulador es AX, si el

operando en Mul es de 8 bits, ser  AL.

NEG

Averigua el número negativo del operando, o sea, invierte

su valor. El c lculo se realiza invirtiendo todos los bits

y sumando uno al resultado.

NOP

No OPeration, no hace nada

NOT

Invierte los bits del operando ( 1s en 0s y viceversa )

OR

Realiza un 'O' lógico en los bits del operando, cambiando

el valor de ‚stos bits. Compara uno a uno los bits de

igual significación de los operandos, y da como resultado

1 si uno de ellos o los dos est  a uno, o los dos lo est n,

y 0 si los dos est n a 0; por ejemplo:

11100100

OR 00101101



11101101

OUT

OUTput to port, Salida a puerto.

Escribe el contenido de AX o AL ( los dos únicos operandos

origen que se pueden usar con ‚sta instrucción ) en el

puerto especificado por el operando destino ( DX o un

número directo )

POP

Saca del valor operando de la pila

POPF

Saca de la pila el registro de flags

PUSH

Empuja a la pila el valor operando

PUSHF

Empuja el registro de flags a la pila

RCL

Rotate with Carry Left ( Rotar a la izquierda con acarreo )

Copia en cada bit del operando el contenido del que se

halla a su derecha, y en el de menor el contenido del flag

de acarreo; en ‚ste se copia el bit de mayor peso.

RCR

Rotate with Carry Right ( Rotar a la derecha con acarreo )

Copia en cada bit del operando el contenido del que se

encuentra a su izquierda, y en el bit de mayor peso el

contenido del flag de acarreo; en el flag de acarreo el

bit de menor peso.

REP

REPeat
[editar]

7 opiniones

Opinión.

Obsoleto. Poco práctico. Inservible. Para un museo puede estar bien. Jajaja no sería obsoleto si fueras a programar un sistema operativo , es un lenguaje muy poderoso , en el que está hecho parte de windows , y de linux

saludos.
Felicitaciones.

Excelente explicacion gracias.
Bueno.

El curo esta bueno pero necesito tener mas informacion para crear programas.
Mvp.

Excelente.
Bueno.

Excelente trabajo. Siga adelante.
1 2 | siguiente >

Cursos gratis relacionados con 'Curso de Asembler'

Completo curso de lenguaje ensamblador.

Autor y licencia de 'Curso de Asembler'


Curso gratis de Pablo Barrón Ballesteros ( Wintermute ). Extraido de: CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.