Vous êtes sur la page 1sur 17

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

UNIVERSIDAD TCNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e Industrial

Ttulo: SEMNTICA DEL LENGUAJE


ENSAMBLADOR

Carrera: Ingeniera en Sistemas Computacionales e


Informticos

rea Acadmica: Investigacin

Ciclo Acadmico y Paralelo: Tercero Sistemas

Mdulo y Docente: Arquitectura de computadoras


Ing. Hernn Fabricio Naranjo Avalos

Fecha: Ambato, 07 de julio del 2017

Alumno: Villacs Freire Johanna Carolina


Lpez Ricachi Leslie Yazminne
UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

EJERCICIO 1 (DESPLEGA LOS 15 PRIMEROS NMEROS HEXADECIMALES)

; Inicio del programa, definimos el modelo de memoria a usar y el segmento

; de codigo

.MODEL SMALL ; Modelo de memoria

.CODE ; Area de codigo

BEGIN: ; Etiqueta de inicio del programa

MOV AX,@DATA ; Inicializa el registro DS con la direccion dada

MOV DS,AX ; por @DATA (Segmento de datos).

MOV DX, OFFSET Titulo ; Obtiene la direccion de la cadena de caracteres

MOV AH,09 ; Usamos la funcion 09H de la interrupcion 21H

INT 21H ; para desplegar la cadena cuya direccion obtuvimos.

MOV CX,16 ; Contador de caracteres que se mostrar?n

MOV BX, OFFSET Cadena ; Permite acceso a la cadena donde se encuentran los

; valores a desplegar

Ciclo: ; Etiqueta para generar un ciclo

MOV AL,CL ; Coloca en AL el numero a traducir y lo traduce

XLAT ; usando la instruccion XLAT

MOV DL,AL ; Coloca en DL el valor a ser desplegado por medio de la

MOV AH,02 ; funcion 2 de la interrupcion 21H

INT 21H ; Despliega el caracter

MOV DL,10 ; Salta una linea desplegando el caracter 10

INT 21H ; Despliega el caracter

MOV DL,13 ; Produce un retorno de carro desplegando el caracter 13

INT 21H ; Despliega el retorno de carro

LOOP Ciclo ; Decrementa en uno a CX y brinca a la etiqueta Ciclo

; siempre y cuando CX no sea igual a cero


UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

MOV AH,4CH ; Utiliza la funcion 4C de la interrupcion 21H para

INT 21H ; finalizar el programa

; Inicio del segmento de datos

.DATA ;Define el segmento de datos

Titulo DB 13,10,'Lista de numeros hexadecimales del 0 al 15'

DB 13,10,'$' ; Cadena a desplegar al inicio del programa

Cadena DB ' FEDCBA9876543210' ; Cadena con los digitos hexadecimales

; Declaracion del segmento de la pila

.STACK

END BEGIN ;Declaracion del final del programa

[1]

EJERCICIO 2(COMPARACIN DE DOS NMEROS)

LF EQU 0Ah

.model small
UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

.stack

.data

var1 db ?

var2 db ?

msg1 db LF,'++ El primero es mayor++ $',LF

msg2 db LF,'++ El primero es menor++$',LF

msg3 db LF,'++ Son iguales++$',LF

msg4 db LF,'++ Primero valor++ $',LF

msg5 db LF,'++ Segundo valor++ $',LF

.code

.startup

mov ah,00h

mov al,03h

int 10h

mov ah,02h

mov dx,0510h

mov bh,0

int 10h

mov ah,09h

lea dx,msg4

int 21h
UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

mov ah,07h

int 21h

mov ah, 02h

mov dl,al

int 21h

mov var1,al

mov ah,09h

lea dx,msg5

int 21h

mov ah,07h

int 21h

mov ah,02h

mov dl,al

int 21h

mov var2,al

cmp var1,al

ja mayor

jb menor

je igual
UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

mayor:

mov ah,09h

lea dx,msg1

int 21h

jmp salir

menor:

mov ah,09h

lea dx,msg2

int 21h

jmp salir

igual:

mov ah,09h

lea dx,msg3

int 21h

jmp salir

salir:

.exit

end
UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

EJERCICIO 3 (MARGEN A PANTALLA)

.model small; permite seleccionar el modelo de emoria

.stack 100h; reserva memoria en la pila

; declaracion de variables

.data

msg1 DB,10,13,' * * * * * * * * * * * * * * * * * * * *$',10,13

msg2 DB,10,13,' * *$',10,13

msg3 DB,10,13,' * *$',10,13

msg4 DB,10,13,' * UNIVERSIDAD TECNICA DE AMBATO *$',10,13

msg5 DB,10,13,' * FACULTAD DE INGENIERIA *$',10,13

msg6 DB,10,13,' * EN SISTEMAS ELECTRONICA *$',10,13

msg7 DB,10,13,' * *$',10,13

msg8 DB,10,13,' * ALUMNO *$',10,13

msg9 DB,10,13,' * VILLACIS J. LOPEZ L. *$',10,13


UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

msg10 DB,10,13,' * *$',10,13

msg11 DB,10,13,' * CICLO *$',10,13

msg12 DB,10,13,' * TERCERO "A" SISTEMAS *$',10,13

msg13 DB,10,13,' * *$',10,13

msg14 DB,10,13,' * *$',10,13

msg15 DB,10,13,' * FECHA *$',10,13

msg16 DB,10,13,' * 07-07- 2017 *$',10,13

msg17 DB,10,13,' * AMBATO - ECUADOR *$',10,13

msg18 DB,10,13,' * *$',10,13

msg19 DB,10,13,' * ING.HERNAN NARANJO *$',10,13

msg20 DB,10,13,' * *$',10,13

msg21 DB,10,13,' * * * * * * * * * * * * * * * * * * * *$',10,13

;CODIGO DEL PROGRAMA

.code

inicio:

MOV AX,@data

MOV DS,AX

;imprimir el mensaje

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg1

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena


UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

MOV DX,OFFSET msg2

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg3

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg4

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg5

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg6

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg7

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg8

INT 21h ; llamar a dos


UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg9

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg10

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg11

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg12

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg13

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg14

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg15

INT 21h ; llamar a dos


UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg16

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg17

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg18

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg19

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg20

INT 21h ; llamar a dos

MOV AH,9; imprimir una cadena

MOV DX,OFFSET msg21

INT 21h ; llamar a dos


UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

MOV AH,4ch ;detengase

INT 21h ;llamar a dos

END inicio

EJERCICIO 4 (MOVER UN CARCTER POR PANTALLA)

PROG SEGMENT PARA PUBLIC 'CODE'

ASSUME cs:PROG,ss:PROG,ds:PROG

ORG 0100h

programa:

jmp codigo

car DB 0

pox DB 0

poy DB 0
UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

xa DB 0

ya DB 0

aviso DB 'Escriba un caracter y muevalo con las flechas: ','$'

codigo:

mov ah,02h

mov bh,00h

mov dh,5

mov dl,5

int 10h

mov ah,9

mov dx,OFFSET aviso

int 21h

mov ah,01h

int 21h

mov car,al

mov ah,03h

mov bh,00h

int 10h

mov pox,ch

mov poy,dh

dec pox

mov ah,05h

mov al,01h

int 10h

bucle:

mov ah,02h

mov bh,01h
UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

mov dh,ya

mov dl,xa

int 10h

mov ah,02h

mov dl,32

int 21h

mov ah,02h

mov bh,01h

mov dh,poy

mov dl,pox

int 10h

mov ah,02h

mov dl,car

int 21h

mov ah,02h

mov bh,01h

mov dh,poy

mov dl,pox

int 10h

mov xa,dl

mov ya,dh

mov ah,00h

int 16h

cmp ah,75

jnz noleft

dec pox

jmp bucle
UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

noleft:

cmp ah,72

jnz nodown

dec poy

jmp bucle

nodown:

cmp ah,77

jnz noright

inc pox

jmp bucle

noright:

cmp ah,80

jnz noup

inc poy

jmp bucle

noup:

cmp al,27

jz fin

jmp bucle

fin:

mov ah,4ch

mov al,00h

int 21h

PROG ENDS

END programa
UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017
UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: MARZO 2017 SEPTIEMBRE 2017

[2]

Bibliografa

[1] W. P. Velzquez, lwp, WEBSITE, 20 03 2003. [En lnea]. Available:


http://www.lawebdelprogramador.com/codigo/Ensamblador/323-Lista-de-numeros-
hexadecimales.html. [ltimo acceso: 07 07 2017].

[2] M. ALGORITMOS, mis-algoritmos.com/, 07 07 2017. [En lnea]. Available:


http://www.mis-algoritmos.com/.

Vous aimerez peut-être aussi