Documente Academic
Documente Profesional
Documente Cultură
MOV (transferencia).
DATO1 ← DATO2
MOV DATO2, DX
XCHG (intercambiar).
Sintaxis: XCHG destino, origen
MOV AUX, AX
MOV AX, BX
MOV BX, AUX
XCHG AX, BX
XLAT (traducción).
DATOS SEGMENT
TABLA DB 2, 3, 5, 8, 16, 23
DATOS ENDS
CODIGO SEGMENT
MOVE BX, OFFSET TABLA ;Inicializa BX con la dirección donde
comienza la tabla
MOVE AL, 5
XLAT TABLA
CODIGO ENDS
Hace que al final el contenido de AL sea 16 ya que es el quinto
elemento de la tabla y AL antes de XLAT TABLA contenía el valor 5.
IN (entrada).
OUT (salida).
Sintaxis: OUT puerto, acumulador
2.1.2.- Pila.
2.1.3.- Matemáticos.
ADD (suma).
Sintaxis: ADD destino, origen
Suma los operandos origen y destino almacenando el resultado en
el operando destino. Se activa el acarreo si se desborda el registro
destino durante la suma.
Ejemplos:
ADD AX, BX
ADD CL, DH
INC (Incrementar).
Sintaxis: INC destino
CMP (Comparación).
Sintaxis: CMP destino, origen
Ejemplo:
DEC (Decrementar).
Sintaxis: DEC destino
Resta una unidad del operando destino. El operando puede ser byte
o palabra. Obsérvese que esta instrucción no modifica el bit de
acarreo (CF) y no es posible detectar un desbordamiento por este
procedimiento (utilícese ZF).
Ejemplo:
DEC AX
SUB (Resta).
Sintaxis: SUB destino, origen
Ejemplo:
IMUL BX
IMUL CH
Ejemplo
Ejemplo:
DIV BL
DIV MEM_PAL
2.1.4.- Ajustes.
Copia el bit 7 del registro AL en todos los bits del registro AH, es
decir, expande el signo de AL a AX como paso previo a una
operación de 16 bits.
2.1.5.- Comparación.
CMP (Comparación).
Sintaxis: CMP destino, origen
Ejemplo:
Ejemplo:
Salta si
JA
superior
JAE
Salta si superior o igual
JB Salta si menor
JBE Salta si menor o igual
Salta si no es superior, como
JNA
JBE
Salta si no superior o igual
JNAE
(como JB)
Salta si no es menor (Como
JNB
JBE también)
Salta si no es menor o igual
JNBE
(como JA)
JZ Salta si es cero
LOOP (bucle).
Ejemplo:
MOV CX,10
BUCLE:
.......
.......
LOOP BUCLE
AND (y lógico).
Ejemplos:
AND AX, BX
AND BL, BYTE PTR ES:[SI+10H]
NOT (No lógico).
Ejemplo:
NOT AX
OR (O lógico).
Ejemplo:
OR AX, BX
XOR (O exclusivo).
Ejemplo:
XOR DI, AX
2.5.- Desplazamiento.
2.5.1- Lineal.
2.5..2- Circular.
WAIT (Espera).
2.6.1 Banderas.
Ejemplo:
Ejemplo:
LEA SI, ORIGEN
LEA DI, DESTINO
MOVSW
Ejemplo:
LEA DI, DESTINO
MOV AX, 1991
STOSW
REP/REPE/REPZ/REPNE/REPNZ (Repetir).
Introducción.
Para cada instrucción simbólica que usted codifica, el ensamblador
genera una instrucción de lenguaje de maquina. El ensamblador
tiene facilidades que el programador puede utilizar para definir
macros. Primero hay que definir un nombre especifico para la
macro, junto con el conjunto de instrucciones en lenguaje
ensamblador que la macro va a generar. Después, siempre que
necesite codificar el conjunto de instrucciones, solo hay que
codificar el nombre de la macro y el ensamblador genera de forma
automática las instrucciones que han sido definidas en la macro.
3.1.1 Internas.
Internas.
3.2.- Procedimientos.
Definición de procedimientos
PROC nombre
instrucción
instrucción...
RET
ENDP NOMBRE
;Procedimiento: GotoXY
;Descripción: Coloca el cursor una posición especifica de la pantalla
;Parámetros: Dl=X,Dh=Y
;**********************************************************************
PROC GotoXY
xor bh,bh
mov ah,02h
int 10h
ret
endp GotoXY
CALL nombre_procedimiento
.MODEL TINY
.INCLUDE proc2.ASM ;Incluir el archivo proc2.asm
;el cual contiene la variable de cadena
;Cad1 y los procedimientos externos
;usados en este programa.
.DATA
Cad2 db 'Esta es una cadena de prueba 2...',13,10,'$'
.CODE
INICIO: ;Punto de entrada al programa
Mov Dl,20 ;X=20
Mov Dh,10 ;Y=10
Call GotoXY ;GotoXY 20,10
Lea DX,Cad2 ;DX->Cad2 en Proc3.asm
Call Imprime_Cad ;Imprime Cad2
Lea DX,Cad1 ;DX->Cad1 en Proc2.asm
Call Imprime_Cad ;Imprime Cad1
Mov AX,04C00h ;Fin del programa
Int 21h ;
END INICIO
END
Introducción.
La programación hibrida es utilizada en los casos en donde el
código en ensamblador dificulta la estructuración del programa,
proporciona un mecanismo por medio del cual podemos aprovechar
las ventajas del lenguaje ensamblador y los lenguajes de alto nivel,
todo esto con el fin escribir programas más rápidos y eficientes.
Program hibrido;
Procedure
Limpia_Pantalla;
Assembler;
Asm
Mov AX, 0600h
Mov BH, 18h
Mov CX, 0000h
Mov DX, 184Fh
Int 10h
End;.
PUBLIC
PUBLIC nombre
Instrucciones
RET
nombre ENDP
4.3.- Operadores.
Ejemplos
BY sum
WO new_set
BY ebp+6,x
WO esp,x
DW esi,x
LA SENTENCIA ASM
#include <stdio.h>
#include <conio.h>
int main(){
int orror=0;
char * dir;
clrscr();
printf("Direccion del archivo:\n");
scanf("%s",dir);
_asm{
asm mov ah,0041h
asm mov dx,dir
asm int 21h
asm jc oorror
asm jmp continuar
}
oorror:
asm mov orror, ax
continuar:
if(orror){
printf("!Error de Archivo!");
}
else{
printf("!Exito al eliminar Archivo!");
}
getch();
return -1;
}
if (segundos!=bandera)
{
printf
("\n%i:%i:%i.%i",horas,minutos,segundos,centesimas);
bandera=segundos;
}
}
getch();
}