Sunteți pe pagina 1din 14

Grupo

Facultad de Ingeniería
en Ciencias de la
Computación y
Telecomunicaciones
Instrucciones de movimientos de datos
(MOV, POP, PUSH)
Instrucciones aritméticas
(ADD, SUB, ADC, SBB)
Instrucciones de conteo
(INC, DEC)

INTEGRANTES:

MATERIA:

DOCENTE:
Contenido
1.-INTRODUCCION ......................................................................................................................... 4
1.1. Instrucciones de Transferencia de Datos (Microprocesadores 8086/8088). ............... 4
1.2. Instrucciones Aritméticas..................................................................................................... 4
1.3. Instrucciones de Conteo ...................................................................................................... 6
Son instrucciones de incremento y decremento de operandos y son: .................................... 6
 INC .............................................................................................................................................. 6
 DEC ............................................................................................................................................ 6
2. Instrucciones de movimientos (MOV, PUSH, POP) ............................................................... 6
2.1. Mov ......................................................................................................................................... 6
2.1.1. Implementaciones ......................................................................................................... 6
2.1.2. Sintaxis ............................................................................................................................ 6
2.1.3. Ejemplos: ........................................................................................................................ 6
2.2. PUSH ...................................................................................................................................... 7
2.2.1. Descripción ..................................................................................................................... 7
2.2.2. Formato ........................................................................................................................... 8
2.2.3. Ejemplo: .......................................................................................................................... 8
2.3. POP......................................................................................................................................... 8
2.3.1. Descripción ..................................................................................................................... 8
2.3.2. Formato ........................................................................................................................... 8
2.3.3. Ejemplo ........................................................................................................................... 9
3. Instrucciones Aritméticas (ADD, SUB, ADC, SBB). ............................................................. 10
3.1. ADD....................................................................................................................................... 10
3.1.1. Descripción ................................................................................................................... 10
3.1.2. Formato ......................................................................................................................... 10
3.1.3. Ejemplo ......................................................................................................................... 10
3.2. SUB ....................................................................................................................................... 11
3.2.1. Descripción ................................................................................................................... 11
3.2.2. Formato ......................................................................................................................... 11
3.2.3. Ejemplo ......................................................................................................................... 11
3.3. ADC....................................................................................................................................... 11
3.3.1. Descripción ................................................................................................................... 11
3.3.2. Formato ......................................................................................................................... 12
3.3.3. Ejemplo ......................................................................................................................... 12
3.4. SBB ....................................................................................................................................... 12
3.4.1. Descripción ................................................................................................................... 12
3.4.2. Formato ......................................................................................................................... 12
3.4.3. Ejemplo ......................................................................................................................... 12
4. Instrucciones de conteo (INC, DEC) ....................................................................................... 13
4.1. INC ........................................................................................................................................ 13
4.1.1. Descripción ................................................................................................................... 13
4.1.2. Formato ......................................................................................................................... 13
4.1.3. Ejemplo ......................................................................................................................... 13
4.2. DEC....................................................................................................................................... 13
4.2.1. Descripción ................................................................................................................... 13
4.2.2. Formato ......................................................................................................................... 13
4.2.3. Ejemplo ......................................................................................................................... 14
5. Bibliografía .................................................................................................................................. 14
1.-INTRODUCCION

1.1. Instrucciones de Transferencia de Datos (Microprocesadores


8086/8088).

Estas instrucciones mueven datos de una parte a otra del sistema; desde y hacia
la memoria principal, de y a los registros de datos, puertos de E/S y registros de
segmentación.

Las instrucciones de transferencia de datos son las siguientes:

 MOV transfiere
 XCHG intercambia
 IN Entrada
 OUT salida
 XLAT traduce usando una tabla
 LEA carga la dirección efectiva
 LDS carga el segmento de datos
 LES carga el segmento extra
 LAHF carga los indicadores en AH
 SAHF guarda AH en los indicadores
 PUSH FUENTE (sp) ‹‹ fuente
 POP DESTINO destino ‹‹ (sp)

1.2. Instrucciones Aritméticas.

Estas instrucciones son las que realiza directamente el 8086/8088

a. Grupo de adición:

 ADD suma
 ADC suma con acarreo
 AAA ajuste ASCII para la suma
 DAA ajuste decimal para la suma

b. Grupo de sustracción:

 SUB resta
 SBB resta con acarreo negativo
 AAS ajuste ASCII para la resta
 DAS ajuste decimal para la resta

4
c. Grupo de multiplicación:

 MUL multiplicación
 IMUL multiplicación entera
 AAM ajuste ASCII para la multiplicación

d. Grupo de división:

 DIV división
 IDIV división entera
 AAD ajuste ASCII para la división

e. Conversiones:

 CBW pasar octeto a palabra


 CWD pasar palabra a doble palabra
 NEG negación

f. Tratamiento de cadenas:

Permiten el movimiento, comparación o búsqueda rápida en bloques de datos:

 MOVC transferir carácter de una cadena


 MOVW transferir palabra de una cadena
 CMPC comparar carácter de una cadena
 CMPW comparar palabra de una cadena
 SCAC buscar carácter de una cadena
 SCAW buscar palabra de una cadena
 LODC cargar carácter de una cadena
 LODW cargar palabra de una cadena
 STOC guardar carácter de una cadena
 STOW guardar palabra de una cadena
 REP repetir
 CLD poner a 0 el indicador de dirección
 STD poner a 1 el indicador de dirección

5
1.3. Instrucciones de Conteo

Son instrucciones de incremento y decremento de operandos y son:

 INC
 DEC

2. Instrucciones de movimientos (MOV, PUSH, POP)

2.1. Mov

Es una instrucción en el lenguaje ensamblador de la mayoría de procesadores,


cuyo propósito es la transferencia de datos entre registros de procesador o
registro y memoria.

Adicionalmente mov también permite el uso de datos absolutos, como por ejemplo
mover el número 10 a un registro del procesador.

2.1.1. Implementaciones
Está disponible en procesadores intel pentium, amd y sparc entre muchos otros,
es a la práctica, una instrucción de ensamblador básica en cualquier procesador.

2.1.2. Sintaxis
La sintaxis en ensamblador es variable en dependencia del procesador utilizado.

La sintaxis de mov se describe de la siguiente manera en los procesadores x86 y


compatibles:

"mov destino, fuente"

La instrucción mov, seguido del destino de los datos, ya sea un registro del
procesador o una posición de memoria, una coma que actúa como separador y a
continuación, la fuente de los datos o los datos en si, de forma absoluta.

En este caso, la fuente va en primer lugar, y a continuación y también separado


por una coma, se especifica el destino de los datos.

2.1.3. Ejemplos:

MOV reg,reg MOV aex,ebx

MOV mem ,reg MOV[bx],al

6
MOV reg ,mem MOV ch,[40ffh]

MOV mem ,inmediato MOV byte ptr[di],25*80

MOV reg ,inmediato MOV ebx, offffh

MOV segm reg,reg 16 MOV ds, ax

MOV reg 16, segmreg MOV ax, es

MOV mem,segm reg MOV [si], es

MOV segm reg,mem MOV ss,[1234h]

Reg: representa cualquier registro de 8, 16 o 32 bits pero con la restricción de que


cuando la operación es MOV reg, reg ambos deben ser iguales.

Mem: se refiere a posiciones de memoria.

Inmediato: especifica que se debe tomar un valor incluido en los código de la


propia instrucción como en el caso de MOV ax, 5 en donde 5 se denomina valor
inmediato.

Segm reg: puede ser cualquier registro de segmento.

Reg 16: indica cualquier registro de 16 bits.

2.2. PUSH

2.2.1. Descripción

La instrucción PUSH decrementa en dos el valor de SP y luego transfiere el


contenido del operando fuente a la nueva dirección resultante en el registro recién
modificado.
El decremento en la dirección se debe a que al agregar valores a la pila ésta crece
de la dirección mayor a la dirección menor del segmento, por lo tanto al restarle 2
al valor del registro SP lo que hacemos es aumentar el tamaño de la pila en dos
bytes, que es la única cantidad de información que puede manejar la pila en cada
entrada y salida de datos.

7
2.2.2. Formato
Como decrementa el puntero de pila (SP) en 2 y luego transfiere la palabra que se
ha especificado en el operando origen a lo alto de la pila.

Su formato es:

PUSH, origen

2.2.3. Ejemplo:

mov ax, 59H


mov bx, 41H SP
mov cx, 4bH
mov dx, 4fH

push ax
push bx dx 59
push cx
push dx cx 4b

bx 41

ax 4f

2.3. POP

2.3.1. Descripción
Esta instrucción transfiere el último valor almacenado en la pila al operando
destino, después incrementa en dos el registro SP.
Este incremento se debe a que la pila va creciendo desde la dirección más alta de
memoria del segmento hacia la más baja, y la pila solo trabaja con palabras (2
bytes), entonces al incrementar en dos el registro SP realmente se le está
restando dos al tamaño real de la pila.

2.3.2. Formato
Como transfiere un byte o una palabra desde la cima de la pila al operando
destino y luego incrementa la pila en 2.

Su formato es: POP, destino


8
2.3.3. Ejemplo

Si al ejemplo anterior:

mov ax, 59H


mov bx, 41H SP
mov cx, 4bH
mov dx, 4fH

push ax
push bx dx 59
push cx
push dx cx 4b

bx 41

ax 4f

Limpiamos los registros y ocupamos la instrucción pop:

xor ax, ax
xor bx, bx
xor cx, cx
xor dx, dx

pop, ax
pop, bx
pop, cx
pop, dx

ax 59
Obtendremos lo siguiente:

bx 4b

cx 41

dx 4f

9
Como pudimos observar los valores cambiaron ya que inicialmente
teníamos:

Ax 4f

Bx 41

Cx 4b

Dx 59

3. Instrucciones Aritméticas (ADD, SUB, ADC, SBB).

3.1. ADD

3.1.1. Descripción

Realiza la suma de dos operandos identificándolos como origen y destino,


quedando el resultado de la suma en el operando destino

3.1.2. Formato

Cada instrucción add tiene la forma:

add destino, fuente

Cuando esta instrucción es ejecutada el valor que se encuentra en fuente es


sumado al valor que se encuentra en destino, sobrescribiendo el valor que
originalmente se encontraba en destino por el nuevo valor resultado de la adición.

Nota.- los dos operandos deben ser del mismo tipo (tamaño).

3.1.3. Ejemplo
Ejemplos:
ADD ax, bx
ADD si, di
ADD [BETA], ax
ADD ah, [bx]
ADD byte ptr[di-2], 2
10
MOV bx, 4398h
ADD [di], 0abcdh

3.2. SUB

3.2.1. Descripción

Realiza la operación de resta de un operando origen sobre un operando destino.


El resultado queda almacenado en el operando destino.

3.2.2. Formato

Cada instrucción SUB tiene la forma:

SUB destino, origen; (destino = destino - origen).

3.2.3. Ejemplo

Ejemplo:

SUB cl, dl; En cl se almacena el valor resultante de CL - DL SUB es:


[bx], dx ; En la posición de memoria indicada, se almacena el valor
resultante de restarle a la dirección indicada DX.

3.3. ADC

3.3.1. Descripción

Lleva a cabo la suma de dos operandos y suma uno al resultado en caso de que la
bandera CF esté activada, esto es, en caso de que exista acarreo. El resultado se
guarda en el operando destino. Realiza la suma de dos operandos identificándolos
como origen y destino más bandera de acarreo (CF).

11
3.3.2. Formato

Cada instrucción ADC tiene la forma:

ADC destino, origen; (destino = destino + origen).

3.3.3. Ejemplo

ADC ah,bl ; la operación que realiza es: AH = ( AH + BL ) + CF

ADC ax,bx ; la operación que realiza es: AX = ( AX + BX ) + CF

ADC eax,ebx ; la operación que realiza es: EAX = ( EAX + EBX ) + CF

3.4. SBB

3.4.1. Descripción

Se utiliza para realizar una resta de operandos de destino y fuente y


menos la bandera de acarreo (CF).

3.4.2. Formato

Su formato es:

SBB, Destino, Origen


3.4.3. Ejemplo

SBB dx,cx
Si CF=1 (si hay acarreo) entonces DX=DX-CX-1

Otros ejemplos:

12
4. Instrucciones de conteo (INC, DEC)

4.1. INC

4.1.1. Descripción

Se utiliza para incrementar el contenido de un registro o de una posición


de memoria.
4.1.2. Formato

Su formato es el siguiente:

INC Destino

4.1.3. Ejemplo

MOV ax, 5 ; a AX se le pasa el valor 5.


INC ax ; AX incrementa en una unidad su valor (AX=6).
INC byte ptr[bp+si] ; EL byte al que apunta la suma de "BP + SI" en
la memoria se ve incrementado en una unidad.
INC word ptr[bp+si] ; Lo mismo pero para una palabra.

4.2. DEC

4.2.1. Descripción

Se utiliza para decrementar el contenido de un registro o de una posición


de memoria.

4.2.2. Formato

Su formato es el siguiente:

DEC Destino

13
4.2.3. Ejemplo

MOV ax, 5 ; a AX se le pasa el valor 5


DEC ax ; AX decrementado en una unidad su valor (AX=4)
DEC byte ptr[bp+si] ; El byte al que apunta la suma de "BP+SI" en
la memoria se ve decrementado en una unidad.
DEC word ptr[bp+si] ; Lo mismo pero para una palabra.

5. Bibliografía

fcqi.tij.uabc.mx

https://es.wikibooks.org

http://edsacom.pbworks.com

https://es.wikipedia.org

http://www.lawebdelprogramador.com

http://ict.udlap.mx

14

S-ar putea să vă placă și