Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejemplos y Ejercicios PDF
Ejemplos y Ejercicios PDF
EJERCICIOS RESUELTOS
MOV AX,0A000H
MOV ES,AX
CLD
XOR DI,DI
MOV AX,0A000H
MOV ES,AX
MOV AX,0FF00H
BUCLE:
MOV CX,320
REP STOSB
INC AX
JNZ BUCLE
Ntese que asignando a AX el valor ff00h nos ahorramos una comparacin en cada bucle, ya que el
propio INC actualiza los flags.
Ejemplo:
Ejercicio 2. Desarrolle un programa en ensamblador que tenga una variable para guardar el nombre
de una persona, otra variable para guardar los apellidos de la persona y una ultima variable donde
guardaremos todo el nombre completo. El programa deber pasar el contenido de la variable que
tiene el nombre a la variable donde se guardara el nombre completo y posteriormente pasar el
contenido de la variable que tiene los apellidos a la misma variable donde se tendr el nombre
completo.
page 60,132
title p03asm (EXE) Operaciones de movimiento extendidos
.model small
.stack 64
.data
nom db 'FAUSTINO','$'
ape db 'VAZQUEZ','$'
nomcom db 'ABCDEFGHIJKLMNO','$'
.code
begin proc far
mov ax,@data
mov ds,ax
mov es,ax
mov cx,08
lea si,nom
lea di,nomcom
b20:
mov al,[si]
mov [di],al
inc si
inc di
dec cx
jnz b20
mov cx,07
lea si,ape
b21:
mov al,[si]
mov [di],al
inc si
inc di
dec cx
jnz b21
mov ah,09h ;peticion para desplegar
lea dx,nomcom ;carga la direccion de la indicacion
int 21h ;llama al dos
mov ax,4c00h
int 21h
begin endp
end begin
page 60,132
title programa que imprime un marco
.model small
.stack 64
.data
car db '*','$'
col db 0
ren db 0
.code
begin proc far
mov ax,@data
mov ds,ax
;limpiar pantalla
mov ax,0600h
mov bh,71h
mov cx,0000h
mov dx,184fh
int 10h
;imprimir lineas horizontales
mov cx,80
a10:
;colocar cursor
mov ah,02h
mov bh,00
mov dh,0 ;renglon 0
mov dl,col ;columna
int 10h
;imprimir *
mov ah,09h
lea dx,car
int 21h
;colocar cursor
mov ah,02h
mov bh,00
mov dh,22
mov dl,col
int 10h
;imprimir *
mov ah,09h
lea dx,car
int 21h
inc col
loop a10
;imprimir lineas verticales
mov cx,23
a20:
;colocar cursor
mov ah,02h
mov bh,00
mov dh,ren
mov dl,0
int 10h
;imprimir
mov ah,09h
lea dx,car
int 21h
;colocar cursor
mov ah,02h
mov bh,00
mov dh,ren
mov dl,79
int 10h
;imprimir
mov ah,09h
lea dx,car
int 21h
inc ren
loop a20
mov ax,4c00h
int 21h
begin endp
end begin
Ejercicio 1:
.COMMENT
*
*.MODEL tiny .
CODE Inicio: ;
Punto de entrada al programa Mov AX,0;
AX=0
Mov BX,1;
BX=1
Estos son los dos primeros elementos 0+1=1
Mov CX,10 ;
Repetir 10 veces Repite: Mov DX,AX ;
DX=AX Add DX,BX ;
DX=AX+BX Mov AX,BX ;
Avanzar AX Mov BX,DX ;
Avanzar BX Loop Repite ;
siguiente nmero Mov AX,4C00h ;
Terminar programa y
salir al DOS Int 21h ;
Ejercicio 2. Desarrolle un programa en ensamblador que pase el contenido de una variable a otra.
Ejercicio 3. Desarrolle un programa en ensamblador que tenga una variable para guardar el nombre de
una persona, otra variable para guardar los apellidos de la persona y una ultima variable donde
guardaremos todo el nombre completo. El programa deber pasar el contenido de la variable que tiene el
nombre a la variable donde se guardara el nombre completo y posteriormente pasar el contenido de la
variable que tiene los apellidos a la misma variable donde se tendr el nombre completo.