ARQUITECTURA DE COMPUTADORES. ACTIVIDAD INDIVIDUAL
moncayo12Trabajo26 de Mayo de 2016
2.107 Palabras (9 Páginas)351 Visitas
ARQUITECTURA DE COMPUTADORES
TRBAJO COLABORATIVO 3
ACTIVIDAD INDIVIDUAL
Realizado por
RAFAEL MARTIN MONCAYO
Código: 12993081
GRUPO 208018—6
ANYELO GERLEY QUINTERO
TUTOR
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍAS E INGENIERÍA – ECBTI
INGENIERÍA ELECTRONICA
SAN JUAN DE PASTO
Mayo 2016
INTRODUCCIÓN
los lenguajes de programación en los últimos tiempos se han convertido en el factor predominante del desarrollo de los pueblos en el aspecto ingenieril y tecnológico, es por eso que como estudiantes de ingeniería es muy necesario conocer sobre los conceptos básicos y aplicaciones, con ayudas tecnológicas computacionales y software de utilización específica, y el desarrollo de este trabajo permite incursionar en el campo de la programación en lenguaje ensamblador desarrollando aplicaciones con instrucciones específicas, que son preparadas a manera de exposición en un video, que permite entender de una manera apropiada su
OBJETIVOS
Estudiar las instrucciones de lenguaje ensamblador para aplicaciones de carácter específico.
Elaborar programas de aplicación para evidenciar el correcto funcionamiento del algoritmo.
Identificar las instrucciones más relevantes para ser tenidas en cuenta en el momento de brindar soluciones específicas.
GRAFICO de instruccones
[pic 3]
CÓDIGO ASSEMBLER.
Código de interpretación de números (positivo, negativo, cero).
Para este caso el código permite que un número ingresado por el usuario sea analizado a través del código y le diga al usuario si el número es POSITIVO, NEGATIVO o CERO.
Para ello, la estructura del programa en lenguaje de Maquina (Assembler) es la siguiente
.model small---------------------------------------- .stack 64--------------------------------------------- .data-------------------------------------------------- var1 db ?----------------------------------------- msg1 db 'ingrese numero: $'-------------- msg2 db '=> El numero es positivo$'---- msg3 db '=> El numero es negativo$'-- msg4 db '=> El numero es cero$'--------- .code-------------------------------------------------- .startup------------------------------------------------ mov ah,09h-------------------------------------- lea dx, msg1 ------------------------------------ int 21h---------------------------------------------- mov ah,01h-------------------------------------- int 21h---------------------------------------------- sub al, 30h---------------------------------------- mov var1,al-------------------------------------- mov al,0h---------------------------------------- cmp var1, al ja mayor jb menor je igual mayor: mov ah, 09h lea dx,msg2 int 21h jmp salir menor: mov ah, 09h lea dx,msg3 int 21h jmp salir igual: mov ah, 09h lea dx,msg4 int 21h jmp salir salir: .exit end | ➔modelo de ventana ➔stock de arranque ➔definición de variables, constantes o atributos ➔Variable de ingreso de datos. ➔atributo para la respuesta 1 ➔ atributo para la respuesta 2 ➔ atributo para la respuesta 3 ➔atributo para la respuesta 4 ➔etiqueta de inicio de código ➔inicio del programa ➔ ➔impresión del mensaje1 en pantalla ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ identificador del método (nombre) ➔ impresión del mensaje1 en pantalla ➔ ➔ ➔ ➔ ➔ identificador del método (nombre) ➔ ➔ impresión del mensaje1 en pantalla ➔ ➔ ➔ ➔ ➔ identificador del método (nombre) ➔ impresión del mensaje1 en pantalla ➔ ➔ ➔salto a ejecución de código, método Salir: ➔ ➔identificador del método (nombre) ➔etiqueta de salida de ejecución del programa ➔representa el final de la ejecución del programa |
El anterior código representa la ejecución de un programa en un ventana de terminal, para este caso, el resultado es el siguiente.
[pic 4]
[pic 5]
[pic 6]
Código de multiplicación y potenciación de números.
Para este caso el código permite una multiplicación entre números enteros, estos mismos son ingresados como parámetros por el usuario; una vez ingresados los dos números a opera, el programa ejecutara códigos que multiplique entre si los números ingresados y posterior a ello nos de la potencia de los resultados.
Para ello, la estructura del programa en lenguaje de Maquina (Assembler) es la siguiente.
.model small .stack .data var1 db ? var2 db ? var3 db ? var4 db ? cen db 0 dece db 0 uni db 0 resul_mul db ? resul_pot db ? msg1 db 'ingrese primer valor: $' msg2 db 'ingrese segundo valor: $' msg3 db 'Resultado de la multiplicacion: $' msg4 db 'Resultado de la potencia:$' .code .startup mov ah, 09h lea dx, msg1 int 21h
mov ah,01h int 21h
sub al, 30h mov var1, al
mov AH, 02H mov DL, 0AH int 21H
mov ah, 09h lea dx, msg2 int 21h
mov ah, 01h int 21h
sub al, 30h mov var2, al
mov AH, 02H mov dl, 0Ah int 21H
mov al, 0 mov var3, al
mov al, 0 mov resul_mul, al
mov cx, 9
bucle: mov al, var1 add resul_mul , al
mov al, var2 inc var3 cmp var3, al je Acaba
loop bucle
Acaba: mov ah, 09h lea dx, msg3 int 21h
mov al, resul_mul aam
mov uni , al mov al, ah
aam mov cen, ah
mov dece, al
mov ah, 02h
mov dl, cen add dl, 30h int 21h
mov dl, dece add dl, 30h int 21h
mov dl, uni add dl, 30h int 21h
mov AH, 02H mov dl, 0Ah int 21h
mov al, 1 mov var4, al
mov al, 0 mov resul_mul, al
mov al, 0 mov resul_pot, al
bucle2: mov cx, 9
mov al, 0 mov var3, al
bucle1: mov al, var1 add resul_pot, al
mov al, var1 inc var3 cmp var3, al je Acaba1
loop bucle1
Acaba1: mov al, var2 inc var4 cmp var4,al je Acaba2
loop bucle2
Acaba2: mov ah, 09h lea dx, msg4 int 21h
mov al, 0 mov uni, al
mov al, 0 mov cen, al
mov al, 0 mov dece, al
mov al, resul_pot aam
mov uni, al mov al, ah
aam mov cen, ah
mov dece, al
mov ah, 02h
mov dl, cen add dl, 30h int 21h
mov dl, dece add dl, 30h int 21h
mov dl, uni add dl, 30h int 21h
mov ah, 04ch int 21h .exit end | ➔modelo de ventana ➔stock de arranque ➔definición de variables, constantes o atributos ➔Variable de ingreso de datos. ➔atributo para la respuesta 1 ➔ atributo para la respuesta 2 ➔ atributo para la respuesta 3 ➔atributo para la respuesta 4 ➔etiqueta de inicio de código ➔inicio del programa ➔ ➔impresión del mensaje1 en pantalla ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ identificador del método (nombre) ➔ impresión del mensaje1 en pantalla ➔ ➔ ➔ ➔ ➔ identificador del método (nombre) ➔ ➔ impresión del mensaje1 en pantalla ➔ ➔ ➔ ➔ ➔ identificador del método (nombre) ➔ impresión del mensaje1 en pantalla ➔ ➔ ➔salto a ejecución de código, método Salir: ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔ ➔identificador del método (nombre) ➔etiqueta de salida de ejecución del programa ➔representa el final de la ejecución del programa |
...