Progrs 3 7-1
Progrs 3 7-1
Progrs 3 7-1
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.
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