Contenido
1. Definición
2. Historia
3. Componentes
4. Software Utilizado
5. Registros
6. Instrucciones
7. Ejemplos
1. definicion
El término ensamblador (del inglés assembler) se refiere a un tipo de
programa informático que se encarga de traducir un fichero fuente
escrito en un lenguaje ensamblador, a un fichero objeto que contiene
código máquina, ejecutable directamente por la máquina para la que se
ha generado.
El propósito para el que se crearon este tipo de aplicaciones es la de
facilitar la escritura de programas, ya que escribir directamente en
código binario, que es el único código entendible por la computadora,
es en la práctica imposible.
La evolución de los lenguajes de programación a partir del lenguaje
ensamblador originó también la evolución de este programa
ensamblador hacia lo que se conoce como programa compilador.
3
2. historia
El primer compilador fue escrito por Grace Hopper, en 1952 para el
lenguaje de programación A-0.
En 1950 John Backus dirigió una investigación en IBM sobre un lenguaje
algebraico.
En 1954 se empezó a desarrollar un lenguaje que permitía escribir
fórmulas matemáticas de manera traducible por un ordenador; le
llamaron FORTRAN (FORmulae TRANslator).
Fue el primer lenguaje de alto nivel y se introdujo en 1957 para el uso
de la computadora IBM modelo 704.
4
2. historia
El primer compilador de FORTRAN tardó 18 años-
persona en realizarse y era muy sencillo
5
2. historia
El primer compilador autocontenido, es decir, capaz de compilar su
propio código fuente fue el creado para Lisp por Hart y Levin en el MIT
en 1962. Desde 1970 se ha convertido en una práctica común escribir el
compilador en el mismo lenguaje que este compila, aunque Pascal y C
han sido alternativas muy usadas.
Crear un compilador autocontenido genera un problema llamado
bootstrapping, es decir el primer compilador creado para un lenguaje
tiene que o bien ser compilado por un compilador escrito en otro
lenguaje o bien compilado al ejecutar el compilador en un intérprete.
6
3. componentes
Los elementos básicos del lenguaje ensamblador son:
 Etiquetas
 Instrucciones
 Operandos
 Directivas
 Comentarios
7
etiquetas
Una etiqueta es una palabra utilizada para designar alguna línea o secci
ón del programa, se pueden utilizar para saltar de una parte hacia esa
etiqueta.
Es importante que las etiquetas empiecen con una letra o con un guión
bajo "_". La longitud de una etiqueta puede ser de hasta 32 caracteres y
como ya se dijo se deben escribir en la primer columna.
8
instrucciones
Las instrucciones son las operaciones
que realiza el microcontrolador, así que esta
s ya están definidas para cada familia de
PIC.
9
Microcontrolador PIC
Los PIC son una familia de microcontroladores tipo
RISC fabricados por Microchip Technology Inc. y
derivados del PIC1650, originalmente desarrollado
por la división de microelectrónica de General
Instrument.
El nombre actual no es un acrónimo. En realidad, el
nombre completo es PICmicro, aunque
generalmente se utiliza como Peripheral Interface
Controller (controlador de interfaz periférico)*.
10
Microcontrolador PIC
11
operandos
Son los elementos que emplea la instru
cción que se está ejecutando. Usualmen
te los operandos son los registros, las
variables o las constantes.
12
directivas
Las directivas son similares a las instrucciones, pero a diferencia de
estas las directivas
son propias del lenguaje ensamblador e independientes del microcontr
olador que se utilice.
Las directivas representan algunas características del lenguaje ensambl
ador, se utilizan
para especificar el procesador empleado así como la configuración de e
ste, también para asignar locaciones de memoria.
13
comentarios
Los comentarios son las palabras, frases y oracione
s que se pueden escribir en el código para hacer el
programa más claro y legible, o solo para recordar.
Los comentarios se pueden escribir en cualquier
parte del código pero siempre deben
empezar con punto y coma ";".
14
4. Software editores
Un programador escribe el programa origen en
lenguaje ensamblador utilizando cualquier editor de
textos o procesador de palabras que sea capaz de
producir una salida de texto en ASCII. Una vez que el
código origen ha sido escrito, el archivo origen es
ensamblado mediante su procesamiento a través de
algún ensamblador.
15
4. Software reglas de
programación
Para la programación se utiliza una cierta tabulación que se
debe respetar, además utilizar
una tabulación adecuada hace los programas más claros y le
gibles.
Las etiquetas
se escriben en la primer columna de cualquier línea, las inst
rucciones y directivas en la
segunda y por último, en la tercer columna, los operandos.
Los comentarios
se pueden escribir en cualquier parte del programa.
16
4. Software
ENS2001
17
4. Software
MASM
18
4. Software
TAST
19
Ejemplo
Hola
alumno
4. Software MASM Y TLINK
El Turbo Assembler (TASM) un paquete
ensamblador principalmente destinado a la
plataforma del IBM PC y sus compatibles.
El enlazador o linkador LINK permite
convertir el código objeto generado por
TASM en archivo ejecutable de tipo EXE*.
*empleando el ML de MASM 6.X se obtiene directamente el fichero EXE ya que
invoca automáticamente al linkador.
21
5. registros
Se trata de una serie de "variables", que
contienen información que puede ser
cambiada.
22
REGISTROS IP Y CS
El registro CS es una variable de un tamaño de
dos bytes. Contiene el Segmento actual en que
se encuentra el programa.
El registro IP es la variable, de dos bytes
también, que contiene el Offset actual. Esto
significa, el ordenador va interpretando las
secuencias de bytes, pero necesita "algo" que le
indique donde tiene que leer.
23
COMBINACION DE REGISTROS
IP Y CS
La combinación CS:IP contiene la dirección en la que el
ordenador está interpretando información en el
momento. Indica la dirección de la próxima instrucción que
se va a ejecutar.
El registro DS y el registro ES también sirven para guardar
direcciones de Segmentos, y también son variables de dos
bytes, pueden ser utilizados para por ejemplo mover
datos en memoria, imprimir cadenas, etc. Son
"punteros", que apuntan a cierta zona de memoria. El
registro SS apunta a la pila, y el SP es el que contiene el
offset de la pila.
24
REGISTROS AX,BX,CX,DX
Todos ocupan dos bytes, y se pueden utilizar divididos en dos partes con un byte de longitud.
◦ AX se divide en AH y AL
◦ BX en BH y BL
◦ CX en CH y CL
◦ DX en DH y DL.
AX
|-----------------------------|
11010110 10111000
AH AL
La 'H' se refiere a High en inglés, alto (de mayor valor), y la 'L' a Low (de menor valor).
25
REGISTROS
AX y BX
AX se suele utilizar como propósito general, indica función a las
interrupciones, etc., y es el más flexible, ya que ser el único que
permita multiplicaciones y divisiones. Se denomina a veces
acumulador. Realiza operaciones como entrada/salida de datos,
ultiplicación, división, operaciones con decimales codificados en binario,
etc.
BX nos servirá mucho como "handler", para abrir/cerrar archivos,
etc, y como registro de propósito general al igual que AX, CX y DX.
Funciona como registro Base, en algunas ocasiones, para
referenciar direcciones de memoria En estos casos mantiene la
dirección de base, comienzo de tabla o matrices, en la que la dirección
se determina usando valores de desplaza- miento.
26
REGISTROS
cX y dX
CX se suele usar como contador. Es decir, cuenta el número de bits o
palabras en una determinada cadena de datos durante los
operaciones con cadenas.
◦ Ej: Si se va a mover de un área de memoria a otra n palabras, CX mantiene inicialmente el
número total de palabras a desplazar llevando la cuenta de la palabra o byte que va siendo
trasladada.
DX suele ser el puntero, señalando haciendo el papel de Offset
lugares en memoria. Se usa en la multiplicación para mantener
parte del producto de 32 bits o en las divisiones para antener el
valor del resto. Y en operaciones de Entrada/Salida de datos para
especificar la dirección del puerto de E/S usado.
27
6. instrucciones
Se pueden clasificar en los siguientes grupos:
De Transferencia.
Aritméticos.
 Lógicos.
 De salto.
28
INSTRUCCIONES DE
TRANSFERENCIA
Este grupo de instrucciones se utiliza para efectuar la
transferencia de datos, copian datos de un origen a un destino
sin modificar dicho origen. Pueden transferir palabras,
fracciones de palabras, o bloques completos.
29
INSTRUCCIONES DE
TRANSFERENCIA push
PUSH: Guarda en la cima de la pila 16 bits, decrementando el puntero de
la pila en dos bytes, hay que tener en cuenta que no se puede guardar en
la pila el contenido del registro CS o el contenido del registro IP ya que
estos deben ser modificados por las instrucciones de salto.
SINTAXIS:
PUSH: reg16
PUSH: mem16
Ejemplo: PUSH: CX
PUSH: TABLA (SI)
30
INSTRUCCIONES DE
TRANSFERENCIA pop
POP: Extrae de la cima de la pila el valor de 16 bits almacenado,
depositándolo en la dirección de memoria indicada y a diferencia
del PUSH incrementa el puntero de la pila en dos bytes,
igualmente se debe tener en cuenta que no se debe rescatar
valores para los registros CS e IP ya que estos deben ser
modificados por las instrucciones de salto.
SINTAXIS:
PUSH: reg16
PUSH: mem16
Ejemplo: POP: DX
POP: [BX]
31
INSTRUCCIONES DE
TRANSFERENCIA xchg
XCHG: (Intercambio): Consta de dos operandos e intercambia
sus valores por lo que modifica los operandos a no ser que
tengan idéntico valor, cabe recalcar que no se permite que los
operandos estén los dos en la misma memoria.
SINTAXIS: XCHG destino, origen
Indicadores:
Ejemplo: XCHGN: bl, ch
XCHGN: mem pal, bx
32
INSTRUCCIONES
aritméticas
Son efectuada por la
Unidad Aritmeto – logica (ALU) y suelen
cambian los flags o indicadores de
condición.
33
INSTRUCCIONES aritméticas
inc
INC: Incrementa. Suma 1 al contenido de un registro o de una posición de
memoria, dicho contenido puede ser byte o palabra.
SINTAXIS: INC destino
Indicadores: OF DF IF TF SF ZF AF PF CF
Ejemplo: INC AX ; AX = AX+1
INC DL ; DL = DL +1
INC WORD PTR ES: [DI+4]; Increm. Palabra contenida
; es ES: DI+4
34
INSTRUCCIONES aritméticas
dec
DEC: Decrementa. resta 1 al contenido de un registro o de una posición
de memoria, dicho contenido puede ser byte o palabra.
SINTAXIS: DEC destino
Indicadores: OF DF IF TF SF ZF AF PF CF
Ejemplo: DEC AX ; AX = AX+1
DEC DL ; DL = DL-1
DEC WORD PTR ES: [DI+4] ; Decrem. Byte contenido
;en ES: DI+4
35
INSTRUCCIONES aritméticas
sub
SUB: Resta el operando destino al operando origen, colocando
dicho resultado en el operando destino, los operandos pueden
tener signo siempre y cuando sean del mismo tipo byte o palabra.
SINTAXIS:
SUB op_destino, op_fuente ; sintaxis básica.
Ejemplo: SUB al, bl
SUB dx,dx
36
INSTRUCCIONES LOGICAS
En este grupo se incluyen las instrucciones de conjunción,
disyunción, exclusiva y negación, la aplicación practica no es de
siempre sin embargo suelen estar presentes en la mayoría de
los programas.
37
INSTRUCCIONES LOGICAS
and
AND: Realiza una operación de “Y” lógico entre el operando origen y el
operando destino quedando el resultado en el operando destino.
SINTAXIS:
AND destino, origen
Ejemplo: AND AX,BX ; AX = AX AND BX
AND SI,ES:[DI] ; SI=SI AND ES:[DI]
AND BX,0A34H ; BX=BX AND 0A34H
AND ES:[BX], CX ; ES: [BX] = ES: [BX] AND CX
AND BYTE PTR [SI+4],5 ; [SI+4] = [SI+4] AND 5
38
INSTRUCCIONES LOGICAS
or
OR: Realiza una operación de “O” lógico a nivel de bits entre los dos operandos ,
almacenándose después dicho resultado en el operando destino.
SINTAXIS:
OR destino, origen
Ejemplo: OR AL,BL ; AL = AL OR BL
OR DI:[BX] ; DI=DI OR [BX]
OR CL,34 ; CL=CL OR 34
OR [DI], BX ; [DI] = [DI] OR BX
OR BYTE PTR [DI],8 ; [DI] = [DI] OR 8
39
INSTRUCCIONES LOGICAS
xor
XOR: Realiza una operación de “O” exclusivo lógico a nivel de bits entre los dos
operandos , almacenándose después dicho resultado en el operando destino.
SINTAXIS:
XOR destino, origen
Ejemplo: XOR CX,BX ; CX = CX XOR BX
XOR DI,ES:[SI] ; DI= DI XOR ES:[SI]
XOR AX,4500H ; AX=AX XOR 4500H
XOR [BX], AX ; [BX] = [BX] XOR AX
XOR BYTE PTR [SI+BX],50 ; [SI+BX] = [SI+BX] XOR 50
40
INSTRUCCIONES de salto
Sirven para que el procesador, en lugar de
ejecutar la siguiente instrucción , pase a
ejecutar otra en lugar que se denomina
“destino de salto”.
41
INSTRUCCIONES de salto
jmp
JMP: Realiza un salto de ejecución incondicional hacia la dirección o etiqueta especifica.
SINTAXIS:
JMP dirección o JMP SHORT dirección
Ejemplos: JMP 100H ; Salta a CX:100h
JMP 55AAH:100H ; Salto lejano a otro segmento
JMP WORD PTR [BX] ; Salto a la dirección contenida en
; la dirección de memoria especificada
; por BX (salto indirecto)
JMP REPITE ; Salto a la etiqueta REPITE
42
INSTRUCCIONES de salto
call
CALL: El efecto de esta instrucción es similiar a la de salto
incondicional con la diferencia de que el procesador guarda
ciertos datos en lugares para facilitar el retorno una vez
terminada la ejecución de la subrutina.
SINTAXIS:
CALL destino
43
LAB1 50%>.: Tarea 1 - GUIA DE EJERCICIOS 02-Junio
Investigar que otras instrucciones hay disponibles para ensamblador y
desarrolle 6 ejemplos donde se utilicen estas.
Tarea:
1. Traer los archivos de código fuente escritos en su cuaderno
2. Presentar los archivos en digital listo para ser compilador en una
memoria usb
3. El docente seleccionara uno para que lo explique a sus compañeros
4. Individual

Clase10 2-lenguaje ensamblador

  • 2.
    Contenido 1. Definición 2. Historia 3.Componentes 4. Software Utilizado 5. Registros 6. Instrucciones 7. Ejemplos
  • 3.
    1. definicion El términoensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado. El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible. La evolución de los lenguajes de programación a partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador. 3
  • 4.
    2. historia El primercompilador fue escrito por Grace Hopper, en 1952 para el lenguaje de programación A-0. En 1950 John Backus dirigió una investigación en IBM sobre un lenguaje algebraico. En 1954 se empezó a desarrollar un lenguaje que permitía escribir fórmulas matemáticas de manera traducible por un ordenador; le llamaron FORTRAN (FORmulae TRANslator). Fue el primer lenguaje de alto nivel y se introdujo en 1957 para el uso de la computadora IBM modelo 704. 4
  • 5.
    2. historia El primercompilador de FORTRAN tardó 18 años- persona en realizarse y era muy sencillo 5
  • 6.
    2. historia El primercompilador autocontenido, es decir, capaz de compilar su propio código fuente fue el creado para Lisp por Hart y Levin en el MIT en 1962. Desde 1970 se ha convertido en una práctica común escribir el compilador en el mismo lenguaje que este compila, aunque Pascal y C han sido alternativas muy usadas. Crear un compilador autocontenido genera un problema llamado bootstrapping, es decir el primer compilador creado para un lenguaje tiene que o bien ser compilado por un compilador escrito en otro lenguaje o bien compilado al ejecutar el compilador en un intérprete. 6
  • 7.
    3. componentes Los elementosbásicos del lenguaje ensamblador son:  Etiquetas  Instrucciones  Operandos  Directivas  Comentarios 7
  • 8.
    etiquetas Una etiqueta esuna palabra utilizada para designar alguna línea o secci ón del programa, se pueden utilizar para saltar de una parte hacia esa etiqueta. Es importante que las etiquetas empiecen con una letra o con un guión bajo "_". La longitud de una etiqueta puede ser de hasta 32 caracteres y como ya se dijo se deben escribir en la primer columna. 8
  • 9.
    instrucciones Las instrucciones sonlas operaciones que realiza el microcontrolador, así que esta s ya están definidas para cada familia de PIC. 9
  • 10.
    Microcontrolador PIC Los PICson una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de General Instrument. El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller (controlador de interfaz periférico)*. 10
  • 11.
  • 12.
    operandos Son los elementosque emplea la instru cción que se está ejecutando. Usualmen te los operandos son los registros, las variables o las constantes. 12
  • 13.
    directivas Las directivas sonsimilares a las instrucciones, pero a diferencia de estas las directivas son propias del lenguaje ensamblador e independientes del microcontr olador que se utilice. Las directivas representan algunas características del lenguaje ensambl ador, se utilizan para especificar el procesador empleado así como la configuración de e ste, también para asignar locaciones de memoria. 13
  • 14.
    comentarios Los comentarios sonlas palabras, frases y oracione s que se pueden escribir en el código para hacer el programa más claro y legible, o solo para recordar. Los comentarios se pueden escribir en cualquier parte del código pero siempre deben empezar con punto y coma ";". 14
  • 15.
    4. Software editores Unprogramador escribe el programa origen en lenguaje ensamblador utilizando cualquier editor de textos o procesador de palabras que sea capaz de producir una salida de texto en ASCII. Una vez que el código origen ha sido escrito, el archivo origen es ensamblado mediante su procesamiento a través de algún ensamblador. 15
  • 16.
    4. Software reglasde programación Para la programación se utiliza una cierta tabulación que se debe respetar, además utilizar una tabulación adecuada hace los programas más claros y le gibles. Las etiquetas se escriben en la primer columna de cualquier línea, las inst rucciones y directivas en la segunda y por último, en la tercer columna, los operandos. Los comentarios se pueden escribir en cualquier parte del programa. 16
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
    4. Software MASMY TLINK El Turbo Assembler (TASM) un paquete ensamblador principalmente destinado a la plataforma del IBM PC y sus compatibles. El enlazador o linkador LINK permite convertir el código objeto generado por TASM en archivo ejecutable de tipo EXE*. *empleando el ML de MASM 6.X se obtiene directamente el fichero EXE ya que invoca automáticamente al linkador. 21
  • 22.
    5. registros Se tratade una serie de "variables", que contienen información que puede ser cambiada. 22
  • 23.
    REGISTROS IP YCS El registro CS es una variable de un tamaño de dos bytes. Contiene el Segmento actual en que se encuentra el programa. El registro IP es la variable, de dos bytes también, que contiene el Offset actual. Esto significa, el ordenador va interpretando las secuencias de bytes, pero necesita "algo" que le indique donde tiene que leer. 23
  • 24.
    COMBINACION DE REGISTROS IPY CS La combinación CS:IP contiene la dirección en la que el ordenador está interpretando información en el momento. Indica la dirección de la próxima instrucción que se va a ejecutar. El registro DS y el registro ES también sirven para guardar direcciones de Segmentos, y también son variables de dos bytes, pueden ser utilizados para por ejemplo mover datos en memoria, imprimir cadenas, etc. Son "punteros", que apuntan a cierta zona de memoria. El registro SS apunta a la pila, y el SP es el que contiene el offset de la pila. 24
  • 25.
    REGISTROS AX,BX,CX,DX Todos ocupandos bytes, y se pueden utilizar divididos en dos partes con un byte de longitud. ◦ AX se divide en AH y AL ◦ BX en BH y BL ◦ CX en CH y CL ◦ DX en DH y DL. AX |-----------------------------| 11010110 10111000 AH AL La 'H' se refiere a High en inglés, alto (de mayor valor), y la 'L' a Low (de menor valor). 25
  • 26.
    REGISTROS AX y BX AXse suele utilizar como propósito general, indica función a las interrupciones, etc., y es el más flexible, ya que ser el único que permita multiplicaciones y divisiones. Se denomina a veces acumulador. Realiza operaciones como entrada/salida de datos, ultiplicación, división, operaciones con decimales codificados en binario, etc. BX nos servirá mucho como "handler", para abrir/cerrar archivos, etc, y como registro de propósito general al igual que AX, CX y DX. Funciona como registro Base, en algunas ocasiones, para referenciar direcciones de memoria En estos casos mantiene la dirección de base, comienzo de tabla o matrices, en la que la dirección se determina usando valores de desplaza- miento. 26
  • 27.
    REGISTROS cX y dX CXse suele usar como contador. Es decir, cuenta el número de bits o palabras en una determinada cadena de datos durante los operaciones con cadenas. ◦ Ej: Si se va a mover de un área de memoria a otra n palabras, CX mantiene inicialmente el número total de palabras a desplazar llevando la cuenta de la palabra o byte que va siendo trasladada. DX suele ser el puntero, señalando haciendo el papel de Offset lugares en memoria. Se usa en la multiplicación para mantener parte del producto de 32 bits o en las divisiones para antener el valor del resto. Y en operaciones de Entrada/Salida de datos para especificar la dirección del puerto de E/S usado. 27
  • 28.
    6. instrucciones Se puedenclasificar en los siguientes grupos: De Transferencia. Aritméticos.  Lógicos.  De salto. 28
  • 29.
    INSTRUCCIONES DE TRANSFERENCIA Este grupode instrucciones se utiliza para efectuar la transferencia de datos, copian datos de un origen a un destino sin modificar dicho origen. Pueden transferir palabras, fracciones de palabras, o bloques completos. 29
  • 30.
    INSTRUCCIONES DE TRANSFERENCIA push PUSH:Guarda en la cima de la pila 16 bits, decrementando el puntero de la pila en dos bytes, hay que tener en cuenta que no se puede guardar en la pila el contenido del registro CS o el contenido del registro IP ya que estos deben ser modificados por las instrucciones de salto. SINTAXIS: PUSH: reg16 PUSH: mem16 Ejemplo: PUSH: CX PUSH: TABLA (SI) 30
  • 31.
    INSTRUCCIONES DE TRANSFERENCIA pop POP:Extrae de la cima de la pila el valor de 16 bits almacenado, depositándolo en la dirección de memoria indicada y a diferencia del PUSH incrementa el puntero de la pila en dos bytes, igualmente se debe tener en cuenta que no se debe rescatar valores para los registros CS e IP ya que estos deben ser modificados por las instrucciones de salto. SINTAXIS: PUSH: reg16 PUSH: mem16 Ejemplo: POP: DX POP: [BX] 31
  • 32.
    INSTRUCCIONES DE TRANSFERENCIA xchg XCHG:(Intercambio): Consta de dos operandos e intercambia sus valores por lo que modifica los operandos a no ser que tengan idéntico valor, cabe recalcar que no se permite que los operandos estén los dos en la misma memoria. SINTAXIS: XCHG destino, origen Indicadores: Ejemplo: XCHGN: bl, ch XCHGN: mem pal, bx 32
  • 33.
    INSTRUCCIONES aritméticas Son efectuada porla Unidad Aritmeto – logica (ALU) y suelen cambian los flags o indicadores de condición. 33
  • 34.
    INSTRUCCIONES aritméticas inc INC: Incrementa.Suma 1 al contenido de un registro o de una posición de memoria, dicho contenido puede ser byte o palabra. SINTAXIS: INC destino Indicadores: OF DF IF TF SF ZF AF PF CF Ejemplo: INC AX ; AX = AX+1 INC DL ; DL = DL +1 INC WORD PTR ES: [DI+4]; Increm. Palabra contenida ; es ES: DI+4 34
  • 35.
    INSTRUCCIONES aritméticas dec DEC: Decrementa.resta 1 al contenido de un registro o de una posición de memoria, dicho contenido puede ser byte o palabra. SINTAXIS: DEC destino Indicadores: OF DF IF TF SF ZF AF PF CF Ejemplo: DEC AX ; AX = AX+1 DEC DL ; DL = DL-1 DEC WORD PTR ES: [DI+4] ; Decrem. Byte contenido ;en ES: DI+4 35
  • 36.
    INSTRUCCIONES aritméticas sub SUB: Restael operando destino al operando origen, colocando dicho resultado en el operando destino, los operandos pueden tener signo siempre y cuando sean del mismo tipo byte o palabra. SINTAXIS: SUB op_destino, op_fuente ; sintaxis básica. Ejemplo: SUB al, bl SUB dx,dx 36
  • 37.
    INSTRUCCIONES LOGICAS En estegrupo se incluyen las instrucciones de conjunción, disyunción, exclusiva y negación, la aplicación practica no es de siempre sin embargo suelen estar presentes en la mayoría de los programas. 37
  • 38.
    INSTRUCCIONES LOGICAS and AND: Realizauna operación de “Y” lógico entre el operando origen y el operando destino quedando el resultado en el operando destino. SINTAXIS: AND destino, origen Ejemplo: AND AX,BX ; AX = AX AND BX AND SI,ES:[DI] ; SI=SI AND ES:[DI] AND BX,0A34H ; BX=BX AND 0A34H AND ES:[BX], CX ; ES: [BX] = ES: [BX] AND CX AND BYTE PTR [SI+4],5 ; [SI+4] = [SI+4] AND 5 38
  • 39.
    INSTRUCCIONES LOGICAS or OR: Realizauna operación de “O” lógico a nivel de bits entre los dos operandos , almacenándose después dicho resultado en el operando destino. SINTAXIS: OR destino, origen Ejemplo: OR AL,BL ; AL = AL OR BL OR DI:[BX] ; DI=DI OR [BX] OR CL,34 ; CL=CL OR 34 OR [DI], BX ; [DI] = [DI] OR BX OR BYTE PTR [DI],8 ; [DI] = [DI] OR 8 39
  • 40.
    INSTRUCCIONES LOGICAS xor XOR: Realizauna operación de “O” exclusivo lógico a nivel de bits entre los dos operandos , almacenándose después dicho resultado en el operando destino. SINTAXIS: XOR destino, origen Ejemplo: XOR CX,BX ; CX = CX XOR BX XOR DI,ES:[SI] ; DI= DI XOR ES:[SI] XOR AX,4500H ; AX=AX XOR 4500H XOR [BX], AX ; [BX] = [BX] XOR AX XOR BYTE PTR [SI+BX],50 ; [SI+BX] = [SI+BX] XOR 50 40
  • 41.
    INSTRUCCIONES de salto Sirvenpara que el procesador, en lugar de ejecutar la siguiente instrucción , pase a ejecutar otra en lugar que se denomina “destino de salto”. 41
  • 42.
    INSTRUCCIONES de salto jmp JMP:Realiza un salto de ejecución incondicional hacia la dirección o etiqueta especifica. SINTAXIS: JMP dirección o JMP SHORT dirección Ejemplos: JMP 100H ; Salta a CX:100h JMP 55AAH:100H ; Salto lejano a otro segmento JMP WORD PTR [BX] ; Salto a la dirección contenida en ; la dirección de memoria especificada ; por BX (salto indirecto) JMP REPITE ; Salto a la etiqueta REPITE 42
  • 43.
    INSTRUCCIONES de salto call CALL:El efecto de esta instrucción es similiar a la de salto incondicional con la diferencia de que el procesador guarda ciertos datos en lugares para facilitar el retorno una vez terminada la ejecución de la subrutina. SINTAXIS: CALL destino 43
  • 44.
    LAB1 50%>.: Tarea1 - GUIA DE EJERCICIOS 02-Junio Investigar que otras instrucciones hay disponibles para ensamblador y desarrolle 6 ejemplos donde se utilicen estas. Tarea: 1. Traer los archivos de código fuente escritos en su cuaderno 2. Presentar los archivos en digital listo para ser compilador en una memoria usb 3. El docente seleccionara uno para que lo explique a sus compañeros 4. Individual