lenguaje ensamblador absalón huízar lucía islas mitzi yaileth arelly martínez hernández yair...

19
Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

Upload: anita-de-anda

Post on 16-Apr-2015

16 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

Lenguaje Ensamblador

Absalón Huízar Lucía

Islas Mitzi Yaileth Arelly

Martínez Hernández Yair Elohim

6CM8

Page 2: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

Las instrucciones de cadena permiten trabajar con bloques de memoria a nivel byte o palabra.

Las instrucciones de cadena tienen mnemónicos que terminan con la letra "S", y operan sobre los registros que se especificarán en cada caso.

Ya que pueden actuar sobre bytes o palabras, es necesario indicar este extremo, lo que se conseguirá escribiendo la letra "B“ , "W“ o ”D” tras la "S" del mnemónico.

Page 3: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

La bandera de dirección (D) selecciona la operación de incremento automático (D=0) o la de disminución automática (D=1) para los registro DI y SI durante las operaciones de cadena.

La instrucción CLD borra la bandera D(D=0) y la instrucción STD la activa (D=1). Por lo tanto, la instrucción CLD selecciona el modo de incremento automático (D=0) y STD el de disminución automática (D=1).

DI o SI incrementan en 1 si se transfiere un byte, al transferir una palabra en 2 y una doble palabra en 4. El incremento solo afecta a los registros usados por la instrucción de cadena.

Page 4: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

Durante la ejecución de instrucciones de cadena, ocurren accesos a memoria ya se por medio de uno de los dos registros DI y SI.

La dirección de desplazamiento DI accede a los datos del segmento adicional (ES) para todas las instrucciones de cadena que se utilizan.

Page 5: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

La dirección de desplazamiento SI accede por omisión a datos ubicados en el segmento de datos.

Al ejecutar una instrucción de cadena, la asignación de segmento para DI siempre está en el segmento adicional. Esta asignación no puede ser cambiada.

Page 6: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

Desde HastaDS: SI AL o AX

Carga desde una cadena un elemento a el acumulador AL o AX según la longitud del elemento. Esta instrucción no se usan con prefijos puesto que no tendría sentido ya que cada vez que carga un valor al acumulador borra el anterior.

Page 7: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

Pone en el acumulador un byte de la cadena fuente.

Operación:

AL <- DS:SI (un byte) SI <- SI±1

Page 8: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

Poner en el acumulador dos bytes de la cadena fuente.

Operación:AX <- DS:SI (dos bytes)

SI <- SI±2

Page 9: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8
Page 10: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

La instrucción STOS (STOre String) almacena el contenido del registro AL, AX o EAX en la dirección de memoria especificada por ES:DI

STOSBES[DI]<- ALDI = DI ± 1

Page 11: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

STOSW

ES[DI]<- AXDI = DI ± 2

STOSDES[DI]<- EAXDI = DI ± 4

Page 12: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

El prefijo de repetición REP se agrega a cualquier instrucción de transferencia de cadena de datos excepto la instrucción LODS. El prefijo REP ocasiona que CX disminuya 1 cada vez que se ejecuta una instrucción sobre la cadena.

Page 13: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

La instrucción mas usada es MOVS (MOVe String), la cual sirve para trasladar uno (MOVSB) dos bytes (MOVSW) o cuatro bytes (MOVD).

Esta instrucción lee un dato de DS:SI y lo almacena en ES:DI. Después, los registro SI y DI se modifican según la misma lógica que

para las instrucciones LODS y STOS.Ésta es la única transferencia de memoria a

memoria permitida en los microprocesadores 8086 al Pentium II.

Page 14: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

MOVSBES[DI]<-DS:SI

DI = DI ± 1 SI =SI±1

MOVSWES[DI]<-DS:SI

DI = DI ± 2 SI =SI±2

MOVSDES[DI]<-DS:SI

DI = DI ± 4 SI =SI±4

Page 15: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

La instrucción INS transfiere un byte, palabra o doble palabra desde un dispositivo de E/S hacia ES:DI. El registro DX contiene la dirección de E/S

INSBES:DI<- [DX]

DI=DI±1

Page 16: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

INSW

ES:DI<- [DX]DI=DI±2

INSDES:DI<- [DX]

DI=DI±4

Page 17: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

;uso de la instruccion REP INSB para dar entrada de datos a un arreglo de memoria

MOV DI, OFFSET LISTS ;direcciona al arregloMOV DX,3ACH ;direcciona E/S

CLD ;autoincremento MOV CX,50 ;carga la cuenta REP INSB ;lee datos

Page 18: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

La instrucción OUTS transfiere un byte, palabra o doble palabra desde DS:SI a un dispositivo de E/S.

OUTSB[DX ]<-DS:SI

DI=DI±1

Page 19: Lenguaje Ensamblador Absalón Huízar Lucía Islas Mitzi Yaileth Arelly Martínez Hernández Yair Elohim 6CM8

;uso de REP OUTS para dar salida a datos desde un arreglo de memoria

MOV SI,OFFSET Arreglo ;direcciona el arregloMOV DX,3ACH ;direcciona E/SCLD ;autoincrementoMOV CX,100 ;carga la cuentaREP OUTSB ; manda los datos