0% encontró este documento útil (0 votos)
17 vistas3 páginas

Lab. #1-Amc Ii

Cargado por

JUAN LEIVA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas3 páginas

Lab. #1-Amc Ii

Cargado por

JUAN LEIVA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Universidad Nacional de Ingeniería

UNI
Facultad de Electrotecnia y Computación
Carrera: Ingeniería en Computación
Departamento de Arquitectura de Sistemas y Aplicaciones
Asignatura: Arquitectura de Maquinas Computadoras II

LABORATORIO #1
ENTRADA/SALIDA ESTANDAR EN TAS
Objetivo:

Realiza programación en lenguaje ensamblador de la arquitectura R2 ix86, ix386 o ix64


para realizar operaciones de procesamiento matemático o textual sencillo aplicando
diferentes modos de direccionamiento.

Actividades:

1. Identifica los problemas a resolver en la lista que se provee en la sección


[Problemas].

2. Selecciona el entorno de desarrollo a emplear para codificar tu programa en


ensamblador. La opción propuesta es: GUI Turbo Assembler. No aplica el
EMU8086.

3. Planifica (algoritmiza) la solución a tu problema, codifica, prueba y valida tu


programa.

PROBLEMAS:

1. Captura básica de cadenas en TASM

Solución:

.model Small ;Indiaca el modelo de memoria


.stack ;Indica el modelo de pila
.data ;Indica el inicio del segmento de datos

msg db 10,13,"INGRESE LA CADENA: ","$"


cadena db 100 dup(' '),'$'

.code ;Inicia el segmento de codigo


main: ;Inicia el proceso de segmento de codigo

mov ax, seg @data ;Se asigna la localizacion del segmento de datos al registro
AX
mov ds, ax ;DS=AX
1
mov ah, 09h ;Para imprimir una cadena
lea dx, msg ;Para leer el mensaje
int 21h ;Imprime el texto de msg
;Codigo para la captura de la cadena
mov ah, 3FH
mov bx, 00
mov cx, 100
mov dx, offset[cadena]
int 21h

;Para imprimir la cadena introducida


mov ah, 09h
mov dx, offset[cadena]
int 21h

;SERVICIO DE FINALIZACION
MOV AH, 4cH
INT 21H

end main

2. Capturar números de 2 cifras en TASM.

Solución:

.MODEL SMALL
.STACK
.DATA
u DB 0 ;VARIABLE PARA ENTRADA 1
d DB 0 ;VARIABLE PARA ENTRADA 2
r DB 0 ;VARIABLE PARA RESULTADO
M1 DB 10,13,'Ingrese un Numero: ','$' ;VARIABLE DE MENSAJE 1
M2 DB 10,13,'Numero Ingresado: ','$' ;VARIABLE DE MENSAJE 2

.CODE
MAIN:
MOV AX, seg @DATA ;ACUMULAR DIRECCION DE DATA
MOV DS, AX ;MOVER LA DIRECCION A DS

MOV AH, 9 ;SERVICIO DE IMPRESION


LEA DX, M1 ;OBTIENE LA DIRECCION DE M1
INT 21H ;IMPRIME M1

;Para capturar el digito de las decenas


MOV AH, 01h
INT 21h
SUB AL, 30H
2
MOV d, AL

;Para capturar el digito de las unidades


MOV AH, 01h
INT 21h
SUB AL, 30H
MOV u, AL

;Une los dígitos de las unidades y decenas


mov al,d
mov bl,10
mul bl
add al,u
mov r,al

MOV AH, 9 ;SERVICIO DE IMPRESION


LEA DX, M2 ;OBTIENE LA DIRECCION DE M2
INT 21H ;IMPRIME M2

;PARA IMPRIMIR LOS 2 ENTEROS


mov al,r
AAM
mov bx,ax
mov ah,02h
mov dl,bh
add dl,30h
int 21h

mov ah,02h
mov dl,bl
add dl,30h
int 21h

;SERVICIO DE FINALIZACION
MOV AH, 4cH
INT 21H
END MAIN

También podría gustarte