Está en la página 1de 10

UNIVERSIDAD AUTÓNOMA METROPOLITANA

UNIDAD: AZCAPOTZALCO

LABORATORIO DE MICROPROCESADORES

PRÁCTICA 1: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR

NOMBRE: GERMÁN CORTES SORIANO

MATRÍCULA: 2192003288

TRIMESTRE: 21 -P

CATEDRÁTICO: ING. HÉCTOR BOLÍVAR OLMOS RAMÍREZ


INTRODUCCIÓN
Un microprocesador es una unidad Central de procesamiento (CPU), capaz de
llevar a cabo procesos aritméticos y lógicos, el microprocesador esta integrado por
tres bloques que son: Registros, Unidad Aritmética lógica y Unidad de control, el
primer microprocesador fabricado por Intel fue el 4004 aproximadamente por los
años de 1970 con un tamaño de palabra de 4 bits y una capacidad de
direccionamiento de memoria de 4096 palabras. Con un conjunto de 45
instrucciones, un año después apareció otro microprocesador que fue el 8008 en
donde contenía 8 bits con una velocidad de 200Khz y fue así como se fueron
evolucionando varios microprocesadores hasta llegar a un tamaño de 64 bits que
fue el Pentium II donde este microprocesador podía llegar a una velocidad de 200,
233,266 y 300Mhz, Actualmente estos chips pueden llegar hasta los 128 bits, donde
pueden trabajar a gran velocidad y mejorar las instrucciones.
DESARROLLO EXPERIMENTAL
Se empezó descargando el programa Dosbox y MASM en donde al momento de
descargarlo entonces se abrió una pantalla negra en donde se tenían que anotar
los datos (figura 1) como: el lenguaje a utilizar y la carpeta en donde se guardaría(
en este caso en MASM y la sub carpeta Irvine) .Se prosiguió a abrir un block de
notas en donde ahí se debía el poner el código (figura 2) y una vez hecho el código
entonces se tenia que guardar en la carpeta de Irvine y agregándole .asm ,después
se volvió a entrar al programa Dosbox para que primero abriera y buscara el archivo
y una vez encontrado entonces se ejecutara para que apareciera lo que se
programó (figura 3)
Figura 2. Código Anotado en block de notas

Figura 3. Búsqueda y ejecución del programa


En la figura 3 se observa que al buscar el programa lo primero que se hace es abrir
file , buscar y apretar la palabra open para que después se busque el nombre del
programa en el que se guardó, enseguida de buscar la el archivo se aprieta open y
aparecerá el código en azul entonces para ejecutar el programa lo que se hace es
lo siguiente:
run> assamble >enter
run> file> ok
run>run
Una vez hecho esos pasos entonces aparecerá una pantalla negra en el cual se observa el
nombre y la matricula y entonces se agregara una palabra para completar el enunciado y
una vez terminado entonces se aprieta el asterisco (*) para salir.
Ahora para guardarse con .LST entonces se observaran las figuras 4 y 4.1 en el cual para
que su ejecución sea efectiva se ira en la parte de de run y se buscara en la palabra
setpathnames y en la segunda casilla al final se teclea /la y entonces de la misma forma
que en el anterior procedimiento se corre el programa y se presentara la pantalla, pero
ahora esa pantalla azul da los valores en binario como se mostrara a continuación

Figura 4. Agregación de /la en la segunda casilla después de zi

Figura 4.1 Implementacion del programa en .LST


Figura 4.2 ejecución del programa en .LST

CODIGO DE PROGRAMA EN .LST


Microsoft (R) Macro Assembler Version 6.11 09/09/21 11:10:31
C:\IRVINE\PRAC1.asm Page 1 - 1

;PROGRMA ECHO
;PRIMER PROGRAMA DE
LAB.DIGITALES I

= 0024 FIN_MEN EQU "$"


= 000D CR EQU 13
= 000A LF EQU 10
= 0009 Nueve EQU 9
= 0006 Seis EQU 6

0000 STACK_SEG SEGMENT "STACK"


0000 0064 [ DW 100 DUP(?)
0000
]
00C8 = 00C8 TOPE_PILA EQU THIS WORD
00C8 STACK_SEG ENDS

0000 DATA_SEG SEGMENT "DATA"


0000 0D MEN DB CR
0001 0005 [ DB 5 DUP(0AH)
0A
]
0006 20 4E 4F 4D 42 52 DB " NOMBRE :GERMAN CORTES
SORIANO-2192003288"
45 20 3A 47 45 52
4D 41 4E 20 43 4F
52 54 45 53 20 53
4F 52 49 41 4E 4F
2D 32 31 39 32 30
30 33 32 38 38
002F 0D DB CR
0030 0A DB LF
0031 24 DB FIN_MEN
0032 DATA_SEG ENDS

0000 CODE_SEG SEGMENT "CODE"


ASSUME CS: CODE_SEG
ASSUME DS: DATA_SEG
ASSUME SS: STACK_SEG

0000 MAIN PROC FAR


0000 BC 00C8 R MOV SP, OFFSET TOPE_PILA
0003 B8 ---- R MOV AX, DATA_SEG
0006 8E D8 MOV DS, AX
0008 B8 ---- R MOV AX, STACK_SEG
000B 8E D0 MOV SS, AX
000D BA 0000 R MOV DX, OFFSET MEN
0010 B4 09 MOV AH, Nueve
0012 CD 21 INT 21H

0014 B4 06 INICIA: MOV AH, Seis


0016 B2 FF MOV DL, 0FFH
0018 CD 21 INT 21H
001A 74 F8 JE INICIA
001C 3C 2A CMP AL, 2AH
001E 74 08 JE FINAL
0020 B4 06 MOV AH, Seis
0022 8A D0 MOV DL, AL
0024 CD 21 INT 21H
0026 EB EC JMP INICIA

0028 B4 4C FINAL: MOV AH, 4CH


002A CD 21 INT 21H

002C MAIN ENDP


002C CODE_SEG ENDS
END MAIN

Microsoft (R) Macro Assembler Version 6.11 09/09/21 11:10:31


C:\IRVINE\PRAC1.asm Symbols 2 - 1

Segments and Groups:

Name Size Length Align Combine Class

CODE_SEG . . . . . . . . . . . . 16 Bit 002C Para Private 'CODE'


DATA_SEG . . . . . . . . . . . . 16 Bit 0032 Para Private 'DATA'
STACK_SEG . . . . . . . . . . . 16 Bit 00C8 Para Private 'STACK'

Procedures, parameters and locals:

Name Type Value Attr

MAIN . . . . . . . . . . . . . . P Far 0000 CODE_SEG Length= 002C


Private

Symbols:

Name Type Value Attr

CR . . . . . . . . . . . . . . . Number 000Dh
FINAL . . . . . . . . . . . . . L Near 0028 CODE_SEG
FIN_MEN . . . . . . . . . . . . Number 0024h
INICIA . . . . . . . . . . . . . L Near 0014 CODE_SEG
LF . . . . . . . . . . . . . . . Number 000Ah
MEN . . . . . . . . . . . . . . Byte 0000 DATA_SEG
Nueve . . . . . . . . . . . . . Number 0009h
Seis . . . . . . . . . . . . . . Number 0006h
TOPE_PILA . . . . . . . . . . . Number 00C8h

0 Warnings
0 Errors
DIAGRAMA DE FLUJO

CÓDIGO DE PROGRAMA en .ASM


;PROGRMA ECHO
;PRIMER PROGRAMA DE LAB.DIGITALES I

FIN_MEN EQU "$"


CR EQU 13
LF EQU 10
Nueve EQU 9
Seis EQU 6

STACK_SEG SEGMENT "STACK"


DW 100 DUP(?)
TOPE_PILA EQU THIS WORD
STACK_SEG ENDS

DATA_SEG SEGMENT "DATA"


MEN DB CR
DB 5 DUP(0AH)
DB " NOMBRE :GERMAN CORTES SORIANO-2192003288"
DB CR
DB LF
DB FIN_MEN
DATA_SEG ENDS

CODE_SEG SEGMENT "CODE"


ASSUME CS: CODE_SEG
ASSUME DS: DATA_SEG
ASSUME SS: STACK_SEG

MAIN PROC FAR


MOV SP, OFFSET TOPE_PILA
MOV AX, DATA_SEG
MOV DS, AX
MOV AX, STACK_SEG
MOV SS, AX
MOV DX, OFFSET MEN
MOV AH, Nueve
INT 21H

INICIA: MOV AH, Seis


MOV DL, 0FFH
INT 21H
JE INICIA
CMP AL, 2AH
JE FINAL
MOV AH, Seis
MOV DL, AL
INT 21H
JMP INICIA

FINAL: MOV AH, 4CH


INT 21H

MAIN ENDP

CODE_SEG ENDS
END MAIN
CONCLUSIONES
Durante esta primera practica se aprendió a utilizar el programa Dosbox en el cual
tiene como objetivo simular todo lo que nosotros le pedimos que simule, en mi
caso me costara algo entenderle ya que apenas empezare a trabajar con ello , sin
embargo con el paso del tiempo se podrá ir mejorando la habilidad para que se
espere una buena práctica. Lo que se denoto en el código es que utilizan algo
similar a la programación estructurada ya que primero se empieza con un inicio,
luego declarando las variables, luego lo que quiera que se ejecute y por ultimo la
pila, puesto que su diferencia en este simulador seria que en el los programas
como c o c++ para comentar algo se utilizan las diagonales “/” , mientras que en
DosBox se utiliza el punto y coma.

También podría gustarte