Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% encontró este documento útil (0 votos)
38 vistas3 páginas

Progrs 3 7-1

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 3

PRÁCTICA: ENSAMBLANDO PROGRAMAS CON DEBUG

Para que apliques los conceptos vistos sobre ensambladores realiza los siguientes
programas. Deberás escribirlos una vez que hayas abierto una sesión en la línea
de comandos como ya realizaste en prácticas anteriores. Deberás además una
vez ensamblados, guardarlos en disco o en memoria USB con los nombres
indicados al inicio de cada ejemplo. Los archivos producidos después de lo
anterior, son programas ejecutables con extensión .COM (DEBUG solamente
permite generar este tipo de archivos) y que tienen como característica
fundamental ser menores a 64KB, ya que el sistema operativo que dio origen al
MS-DOS solamente podía direccionar dicho espacio en memoria, por lo tanto
ocupa esa misma cantidad de memoria o sea únicamente un segmento de 64KB.

Los programas se inician a ensamblar a partir del comando –a 0100, las


direcciones de memoria formadas por segmento y desplazamiento (1533:0100) se
irán generando después de teclear enter. En estos programas se utilizan
interrupciones de software ya comentadas anteriormente.

Se presenta el primer ejemplo, que ya está listo para ser guardado en disco o en
un dispositivo de memoria USB.
Ejem1.com
-a 0100
mov ax,0004 ; se coloca 4 en el registro AX
mov bx,0008 ; se coloca 8 en el registro BX
add ax,bx ;se realiza la suma de AX + BX el resultado se escribe en AX
int 20 ;termina el programa

Ejem2.com
-a 0100
mov ah,8 ;se escribe 8 en la parte alta de AX
add ah,3 ;se suma 3 a la parte alta de AX
sub ah,2 ;se resta 2 a lo que se encuentra en la parte alta de AX
int 20 ;termina el programa

Ejem3.com
-a 0100
jmp 125 ;salta al desplazamiento 125
-e 102 ‘HOLA MI NOMBRE ES escribe aquí tu nombre….$’ ;es la cadena
-a 125 ;ensambla a partir del desplazamiento 125
mov dx,102 ;dirección del desplazamiento donde está la cadena a imprimir
mov ah,9 ;función 9 de la interrupción 21, para imprimir cadenas
int 21 ;se invoca a la interrupción 21
int 20 ;termina el programa

Ejem4.com
-a 0100
jmp 125 ;salta al desplazamiento 125
-e 102 ‘HOLA MI NOMBRE ES escribe aquí tu nombre….’ 0D 0A ‘$’ ;cadena
-a 125 ;ensambla a partir del desplazamiento 125
mov cx,0014 ;se imprime 20 veces 14Hexadecimal=20 en decimal
mov dx,102 ;dirección en memoria de la cadena a imprimir
mov ah,9 ;función 9 de la interrupción 21, para imprimir cadenas
int 21 ;se invoca a la interrupción 21
loop 012D ;regresa a la dirección 012D 20 veces.
int 20 ;termina el programa
Ejem5.com
-a 0100
MOV AH,1 ; Función para cambiar cursor
MOV CX,7 ; Tamaño del cursor
INT 10 ; Interrupción del BIOS
INT 20

Ejem6.com
-a 0100
MOV AL,FF ; Pone en AL el maximo valor representable en 8 bits
MOV CL,6 ; y lo multiplica por 6, dejando el resultado en AX
MUL CL
INT 20

Ejem7.com
-a 0100
MOV AX,FFFF ;65535 en AX
MOV CX,FFFF ;65535 en CX
MUL CX ;Multiplica las 2 cantidades deja el resultado en DX:AX
INT 20

Ejem8.com
-a 0100
MOV AL,-1
MOV CL,6
MUL CL
MOV AL,-1
IMUL CL
INT 20

Ejem9.com
-a 0100
MOV AX,00FF ; Dividendo
MOV BL,8 ; Divisor
DIV BL ; División resultado en AX (cociente y residuo)
INT 20

Ejem10.com
-a 0100
MOV AX,FFFF ; Dividendo
MOV BX,2 ; Divisor
DIV BX ; División resultado en AX (cociente) y DX (residuo)
INT 20

También podría gustarte