Академический Документы
Профессиональный Документы
Культура Документы
Set de Instrucciones
Introduccin
Creado para facilitar la elaboracin de
programas.
Al "hablar" en Assembler, estamos
dicindole a la mquina, en lo ms
cercano a su idioma posible, lo que tiene
que hacer.
Delimitadores:
Etiquetas:
No Portable.
Como remedio de lo anterior, se utilizan
lenguajes de medio o alto nivel como C o
Pascal.
MOV (move)
Copia el contenido del parmetro origen al
destino.
Ejemplo:
MOV AX, BX
equivale a
AX = BX; (C)
MOV Restricciones
NO se puede mover datos
Entre posiciones de memoria
MOV Restricciones
NO se puede mover datos
De un
MOV Restricciones
NO se puede mover
Una constante directamente a un registro de
segmento.
MOV DS, 1234H es ilegal
En su lugar se escribe:
MOV AX, 1234H
MOV DS, AX
MOV Restricciones
NO se puede
CS (code segment) no debera usarse
XCHG (exchange)
Intercambia el contenido de dos
operandos.
No requiere una direccin temporaria.
Conversin de Tipos
CBW (convert byte to word)
CWDE (convert word to doubleword extended)
CWD (convert word to doubleword)
CDQ (convert doubleword to quadword)
Instruccin CMP
Realiza
la memoria.
Entrada / Salida
IN (input from port to register)
OUT (output from register to port)
Transfieren datos entre un puerto de E/S y
port to string)
OUTS (output string to port)
Los registros ESI y EDI se usan para especificar
Resta
Multiplicacin
Divisin
Incremento
Decremento
Comparacin
Negacin
Instruccin ADD
Sintaxis:
Instruccin ADD
ADD
AL,40 ;
le sumo al reg. AL el valor 40.
(AL+=40h
AL=AL+40h)
Instruccin SUB
Sintaxis:
Instrucciones de
Multiplicacin y Divisin
MUL
IMUL
DIV
IDIV
Instruccin MUL
Sintaxis:
MUL fuente
Realiza la multiplicacin entre el operando
dado con el acumulador. El acumulador a
multiplicar va a depender del operador
fuente que se ingrese.
Tamao del
operando
Byte
Registro
Fuente
Destino
AL
r/m8
AX
Word
AX
r/m16
DX:AX
DoubleWord
EAX
r/m32
EDX:EAX
Instruccin IMUL
Sintaxis:
IMUL fuente
Un Operando
Tiene tres formas
segn el nmero
de operandos:
Dos Operandos
Tres Operandos
Instruccin IMUL
Un
Operando:
Es idntica a la instruccin MUL
Dos
Operandos:
Operandos:
Instruccin DIV
Sintaxis:
DIV divisor
Divide el valor en los registros AX, DX:AX o
EDX:EAX por el operando divisor. Esta
operacin arroja como resultado un cociente y
un resto, el modo en que se almacena lo
podemos observar en la siguiente tabla...
Tamao del
operando
Dividendo
Divisor
Cociente
Resto
Mximo
Cociente
Word/byte
AX
r/m8
AL
AH
255
Doubleword/
word
Quadword/d
oubleword
DX:AX
r/m16
AX
DX
65,535
EDX:EAX
r/m32
EAX
EDX
232 - 1
Instrucciones De
Incremento y Decremento
INC
DEC
Incremento
Decremento
INC AX o DEC AX
Equivale a ADD AX,1 o SUB AX,1
(A++) (A--)
Instrucciones de
Comparacin y Negacin
Instruccin NEG
Sintaxis:
NEG destino
Genera el complemento a dos del
operando destino y lo almacena en este
mismo operando.
MOV AX,1234h
NEG AX
AX=EDCBh
Instrucciones Lgicas
AND
Instruccin AND
AND destino, fuente
Direccin de memoria
Destino
Destino
1
1
0
0
1
0
1
0
1
0
0
0
Instruccin OR
OR destino, fuente
Direccin de memoria
Destino
Destino
1
1
0
0
1
0
1
0
1
1
1
0
Instruccin XOR
XOR destino, fuente
Cada bit del resultado se activa a 1 si
ambos bits de los operandos son
diferentes, en otro caso es 0.
Fuente
Destino
Destino
Instruccin NOT
NOT destino
Cada bit 1 se pone a 0 y cada bit 0 se pone
a1
Transferencia de Control
Es un conjunto de instrucciones.
Permiten al programador romper el
secuencial en un programa.
Permite ejecutar trozos de cdigo.
flujo
Clasificacin:
Saltos incondicionales (JMP).
Bucles (LOOP).
Saltos condicionales (Jnnn).
Llamadas a procedimientos (CALL).
Llamadas a interrupciones (INT).
Sintaxis:
JMP destino
; porcin de cdigo
Inicio:
JMP Ejemplo
MOV cx,7
Ejemplo:
MOV cx,6
; contina cdigo
comparacin
Bucle (LOOP)
Sirve para ejecutar un trozo de cdigo
un nmero de veces dado
Por ejemplo:
; porcin de cdigo
MOV CX,7
INICIO_BUCLE:
ADD WORD PTR BX,CX
INC BX
LOOP INICIO_BUCLE
MOV AX,BX
; contina cdigo
INT numero_interrupcin.
Sintaxis:
CALL nombre_procedimiento
formato es el siguiente:
Inicializacin PROC
..
Cuerpo del procedimiento.
..
RET
Inicializacin ENDP
Declaracin de Variables
Es
Sintaxis:
Nombre Tipo Valor
D
W
Declaracin de Variables
Ejemplos:
LETRA_A DB A ; variable con un carcter
NUMBER_1 DW 1 ; un nmero 1, pero word
STRING DB Hola, cmo ests!!!! ; cadena
Declaracin de Macros
Permiten
Luego
Las
Declaracin de Macros
La
Su sintaxis es:
[parmetros,,,]
nombre MACRO
declaraciones
ENDM