Está en la página 1de 9

Facultad de Informática y Ciencias Aplicadas

Escuela de Informática

Asignatura: Lenguaje de Máquina


Docente: Ing. José Guillermo Rivera

Práctica No. 2 Resolución de Ejercicios

Alumno: Dubón Cornejo, Carlos Emanuel, 29-1286-2006

San Salvador 10 de febrero de 2019


Desarrollo de la Práctica
1 Hacer un programa que despliegue su nombre en la consola usando asteriscos.
Es decir usted debe de hacer cada letra usando asteriscos y debe de construirse de
manera manual.
TITLE REGISTROS
INCLUDE IRVINE32.INC

.DATA
M1 BYTE "***** ***** **** * ***** *****",0
M2 BYTE "* * * * * * * * * ",0
M3 BYTE "* ***** **** * * * *****",0
M4 BYTE "* * * * * * * * *",0
M5 BYTE "***** * * * * ***** ***** *****",0

.CODE
P0205 PROC
MOV EDX,OFFSET M1
CALL WRITESTRING
CALL CRLF
MOV EDX,OFFSET M2
CALL WRITESTRING
CALL CRLF
MOV EDX,OFFSET M3
CALL WRITESTRING
CALL CRLF
MOV EDX,OFFSET M4
CALL WRITESTRING
CALL CRLF
MOV EDX,OFFSET M5
CALL WRITESTRING
EXIT
P0205 ENDP
END P0205
2 Hacer un programa que pida un número desde consola usando el procedimiento
READDEC, luego muestre un mensaje que muestre el número que ha leído.
ENTRE UN NUMERO: 25
USTED ENTRO EL NUMERO: 25

TITLE INGRESO_NUMERO
INCLUDE IRVINE32.INC

.DATA
M1 BYTE "ENTRE UN NUMERO: ",0
M2 BYTE "USTED ENTRO EL NUMERO: ",0

.CODE
P0202 PROC
MOV EDX,OFFSET M1
CALL WRITESTRING
CALL READDEC
MOV EDX,OFFSET M2
CALL WRITESTRING
CALL WRITEDEC
EXIT
P0202 ENDP
END P0202
3 Hacer un programa que en la sección de datos tenga tres identificadores de
memoria ( VARIABLES) llamados: NOMBRE, CARNET Y CARRERA todos de tipo
BYTE y que luego los muestre en consola usando WRITESTRING.

TITLE DATOS
INCLUDE IRVINE32.INC

.DATA
M1 BYTE "NOMBRE: CARLOS DUBON",0
M2 BYTE "CARNET: 29-1286-2006",0
M3 BYTE "CARRERA: ING. EN SISTEMAS",0

.CODE
P0203 PROC
MOV EDX,OFFSET M1
CALL WRITESTRING
CALL CRLF
MOV EDX,OFFSET M2
CALL WRITESTRING
CALL CRLF
MOV EDX,OFFSET M3
CALL WRITESTRING
EXIT
P0203 ENDP
END P0203
4- Hacer un programa en assembler que mueve cantidades a los registros de
propósito general y usando el procedimiento DUMPREGS muestre en consola el
contenido de los registros. Luego usando WRITEBIN muestre el contenido de cada
uno de ellos en binario.

TITLE REGISTROS
INCLUDE IRVINE32.INC

.DATA
M1 BYTE "EAX TENDRA VALOR DE 10 EN HEX ES: ",0
M2 BYTE "EBX TENDRA VALOR DE 20 EN HEX ES: ",0
M3 BYTE "ECX TENDRA VALOR DE 30 EN HEX ES: ",0
M4 BYTE "EDX TENDRA VALOR DE 40 EN HEX ES: ",0
M5 BYTE "VEAMOS DUMPREGS",0

.CODE
P0204 PROC
MOV EDX,OFFSET M1
CALL WRITESTRING
MOV EAX, 10
CALL WRITEHEX
CALL CRLF

MOV EDX,OFFSET M2
CALL WRITESTRING
MOV EAX, 20
CALL WRITEHEX
CALL CRLF
MOV EDX,OFFSET M3
CALL WRITESTRING
MOV EAX, 30
CALL WRITEHEX
CALL CRLF

MOV EDX,OFFSET M4
CALL WRITESTRING
MOV EAX, 40
CALL WRITEHEX
CALL CRLF

MOV EDX,OFFSET M5
CALL WRITESTRING

MOV EAX, 10
MOV EBX, 20
MOV ECX, 30
MOV EDX, 40
CALL DUMPREGS

CALL WRITEBIN
CALL CRLF
MOV EAX, EBX
CALL WRITEBIN
CALL CRLF
MOV EAX, ECX
CALL WRITEBIN
CALL CRLF
MOV EAX, EDX
CALL WRITEBIN

EXIT
P0204 ENDP
END P0204
5- Hacer un programa en assembler con la siguiente sección de datos:
.DATA
M1 BYTE " Efecto del cero"
M2 BYTE " en el procedimiento"
M3 BYTE " writestring de la biblioteca",0

En la sección de código y usando el procedimiento WRITESTRING mostrar el


contenido de M1. Después de ver el resultado de esta operación, agregar al final de
M2 y M3 un cero. Ahora repetir la operación anterior de mostrar M1 de nuevo.

a. Sin el cero, tal como se coloca en el enunciado


TITLE REGISTROS
INCLUDE IRVINE32.INC

.DATA
M1 BYTE " Efecto del cero"
M2 BYTE " en el procedimiento"
M3 BYTE " writestring de la biblioteca",0

.CODE
P0205 PROC
MOV EDX,OFFSET M1
CALL WRITESTRING
EXIT
P0205 ENDP
END P0205
b. Colocando los ceros al final de cada variable tipo byte.
TITLE REGISTROS
INCLUDE IRVINE32.INC

.DATA
M1 BYTE " Efecto del cero",0
M2 BYTE " en el procedimiento",0
M3 BYTE " writestring de la biblioteca",0

.CODE
P0205 PROC
MOV EDX,OFFSET M1
CALL WRITESTRING
EXIT
P0205 ENDP
END P0205
Anexos
Se anexa los códigos y el archivos ejecutables.