InmB es para una entrada instantánea de tamaño Byte, una palabra de tamaño bit podría ser 1234h o AFH
InmW es una entrada instantánea de tamaño Word(palabra).
menB -> variable de tamaño Byte memW -> variable de tamaño Word
mem siempre hará referencia a variables en memoria.
Instrucciones de Transferencia¶
mov viene del nemónico move to, pero lo debemos entender como un copy.
ESTRUCTURA:
COPY VALUE SOURCE DESTINY
mov regB, inmB | regB | memB
mov memB, inmB | regB
mov regW, inmW | regW | memW | inmB
mov memW, inmW | regW | inmB
EJEMPLOS PRÁCTICOS
datoB db 12h
datow dw 3456h
resul db ?
resul2 dw ?
mov al, [datoB]
mov [resul], ah
mov ax, 0FE05h
mov [resul2], dx
XCHG¶
cxhg es el nemónico de eXCHanGe o to exchange. Nos permite intercambiar los valores entre dos variables.
ESTRUCTURA
xchg regB, regB | memB
xchg memB, regB
xchg regW, regW | memW
xchg memW, memW | regW
Operaciones aritméticas¶
Suma¶
Suma normal¶
add destiny, source
Sumar con acarreo¶
adc desntiny, source
Esta instrucción se utilizará cuando se hagan sumas en las que el resultado sea mayor a dw si nuestras variables son mayores. Ya que tendremos que dividir el numero para hacer sumas de HSB y LSB
SBB¶
sbb destiny, source que se traduce en destino = destino - fuente - carry
CMP¶
cmp -> to compare, compare funciona restando, pero tiene una diferencia con respecto de sub
sub -> destino = destino - fuente
cmp -> destino - fuente
banderas s, z (de 0), y c (carry)
Si estamos trabajando numeros no signados
resultado postiivo -> la bandera carry no se activa
s = 1 z = 0 c = 0
resultado negativo
s = 0 z = 0 c = 1
resultado cero
s = 0 z = 1 c = 1
MUL e IMUL¶
Mul para valores no signados, imul para valores signados