Está en la página 1de 23

UNIVERSIDAD PRIVADA DEL NORTE

J.CARLOS GONZALES 1

UNIVERSIDAD PRIVADA DEL NORTE
Laureate Internacional Universities
FACULTAD DE INGENIERA
ESCUELA DE INGENIERA MECATRNICA

Curso:
MICROCONTROLADORES
Y
MICROPROCESADORES
DOCENTE:
ING. EULER DOZA FIGUEROA
PARTICIPANTE:
GONZALES AROSTE JUAN CARLOS

Lima Per
2014

UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES 2

EJERCICIO 1
El contenido de la localidad 0200 tiene un dato de 8 bits. Realizar un programa que
coloque en la localidad de memoria 0201 el nibble(4 bits) ms significativo, toman do
en cuenta que el nibble menos significativo debe ser 0.
DIAGRAMA DE FLUJO:

CODIGO ASSEMBLER
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far
MOV [200],60
MOV AL, [200]; mueve el contenido de La localidad 200 a AL
AND AL, 240 ; Coloca 11110000 en AL
MOV [201], AL; Mueve el contenido de AL a la localidad 201
MOV AH, 4Ch ; mueve el contenido de 4C a Ah
INT 21H
MASCARA endp
End

UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES 3

EJERCICIO 03:
Realizar un programa que coloque en la localidad de memoria 202 el nmero menor
de los contenidos en las localidades 200 y 201. Considere nmeros sin signo.
DIAGRAMA DE FLUJO:



CODIGO EN ASSEMBLY
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code

MASCARA proc far
MOV [200],2
MOV AL, [200]
MOV [201],9
MOV AL,[201]
CMP AL,[201]
JNB SII
MOV AL, [201],10
SII:MOV [202],AL
MOV AH,04CH
int 21h

MASCARA endp
End

UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES 4

SEGUNDA FORMA:
mov [200], 0004Ah ;MOVER 0004AH A LA DIRECCIN 200
mov [201], 0004Ch ;MOVER 0004CH A LA DIRECCIN 201
COMPARA: MOV AL, [200]
CMP AL, [201]
JNB SII
MOV AL, [201]
SII: MOV [202], AL
MOV AH, 04CH
INT 21h








UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES 5

EJERCICIO 04:
Sumar 2 nmeros binarios de 24 bits y almacenar el resultado a partir de la localidad
de memoria 0206h. Los bits menos significativos de los nmeros empiezan en las
localidades 0200hy 0203h.
CODIGO EN ASSEMBLY
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far
MOV [200],50
MOV AL, [200] ;mover el contenido de la localidad 200 a AL
MOV [203],40
MOV AL, [203]
ADD AL, [203] ;sumar el contenido de la localidad 201 a AL 8 LSB
MOV [206], AL ;mover el contenido de AL a la localidad 206
MOV AL, [201] ;mover el contenido de la localidad 201 a AL
ADC AL, [204] ;sumar el contenido de la localidad 204 con AL 2 BYTE
MOV [207], AL ;mover el contenido de AL a la localidad 207
MOV AL, [202] ;mover el contenido de la localidad 202 a AL
ADC AL, [205] ;sumar el contenido de la localidad 205 con AL 8 MSB
MOV [208], AL ;mover el contenido de AL a la localidad 208
RET
MOV AH,4Ch ;mueve el contenido de 4C a Ah
INT 21H
MASCARA endp
End

UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES 6

SEGUNDA FORMA:
mov [200], 000AAh
mov [203], 000BBh
mov [201], 000AAh
mov [204], 000BBh
mov [202], 000AAh
mov [205], 000BBh
SUMA:
MOV AL, [200] ;mover el contenido de la localidad 200 a AL
ADD AL, [203] ;sumar el contenido de la localidad 201 a AL 8 LSB
MOV [206], AL ;mover el contenido de AL a la localidad 206
MOV AL, [201] ;mover el contenido de la localidad 201 a AL
ADC AL, [204] ;sumar el contenido de la localidad 204 con AL 2 BYTE
MOV [207], AL ;mover el contenido de AL a la localidad 207
MOV AL, [202] ;mover el contenido de la localidad 202 a AL
ADC AL, [205] ;sumar el contenido de la localidad 205 con AL 8 MSB
MOV [208], AL ;mover el contenido de AL a la localidad 208
RET

UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES 7

EJERCICIO 05:
Uso del registro CX como contador. Vamos a mover los 8 bits menos significativos del
registro BL al registro BH.

DIAGRAMA DE FLUJO:



CODIGO EN ASSEMBLY:
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far
;-------------
ROTA8: MOV BX, 43A6H ;(1)
MOV CX, 08 ;(2)
OTRAVEZ: RCL BX, 1 ;(3)
LOOP OTRAVEZ ;(4)

;-------------
MOV AH,4Ch ;mueve el contenido de 4C a Ah
INT 21H
MASCARA endp
End



UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES 8


OTRA FORMA:
ROTA8: MOV BX, 043A6h ;(1)
MOV CX, 00008h ;(2)
OTRAVEZ: RCL BX, 1 ;(3)
LOOP OTRAVEZ ;(4)
MOV AH, 04Ch ;(5)
INT 21h ;(6)











UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES 9

EJERCICIO 07:
Calcular la suma verificacin de una serie de datos. La longitud de la serie de datos
est en la localidad 201hy la serie comienza en la localidad 202h. Almacenar la suma
verificacin en la localidad 200h. La suma verificacin se forma haciendo la suma O
exclusiva entre todos los nmeros de la serie.
DIAGRAMA DE FLUJO:


COGIDO EN ASSEMBLY:
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far
MOV [201],00018H
MOV [201],00020H
SUMAVERIF:
MOV CH, 0 ;poner 0 en CH
MOV CL, [201] ;mover el contenido de la localidad 201 a CL
MOV BX, 200 ;mover el contenido de 200 a BX
MOV AL, [BX] ;mover el contenido de BX a AL
SUMAO: INC BX ;incrementar BX
XOR AL, [BX] ;O exclusiva contenidos AL y BX
DEC CX ;decrementar CX
LOOP SUMAO
MOV [200], AL ;mover el contenido de AL a la localidad 200
RET

UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
1
0

EJERCICIO 08:
Calcular la suma de una serie de nmeros de 16 bits. La longitud de la serie est en la
localidad de memoria 0202 y la serie empieza en la localidad de memoria 0203.
Almacenar la suma en las localidades de memoria 0200 y 0201. Considere que la
adicin puede estar contenida en 16 bits
DIAGRAMA DE FLUJO:

COGIDO EN ASSEMBLY:
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far
INICIO: CLC
MOV CH, 0
MOV CL, [202]
MOV BX, 203
MOV AX, 0
RETORNO: ADC AX, [BX]
INC BX
LOOP RETORNO
MOV [200], AX
;-------------
MOV AH,4Ch ;mueve el contenido de 4C a Ah
INT 21H
MASCARA endp
End

UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
1
1

OTRA FORMA:
INICIO: CLC
MOV CH, 0
MOV CL, [202]
MOV BX, 203
MOV AX, 0
RETORNO: ADC AX, [BX]
INC BX
LOOP RETORNO
MOV [200], AX
END







UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
1
2


EJERCICIO 09:
Determinar el nmero de elementos que sean positivos, negativos y cero. La longitud
del bloque est en la localidad 0203, el bloque inicia en la localidad 0204. En la
localidad 0200deposite el nmero de elementos negativos, en la 0201el nmero de
elementos ceros y en la 0202el nmero de elementos positivos.
DIAGRAMA DE FLUJO:



















CODIGO EN ASSEMBLY:
include 'emu8086.inc'
org 100h
.model small

UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
1
3

.stack 64
.data
aux db 15
.code
MASCARA proc far
INICIO: MOV AL, 00h
MOV [200], AL
MOV [201], AL
MOV [202], AL
MOV CH, AL
MOV CL, [203]
MOV BX, 0204
MOV AL, [BX]
RETORNO:CMP AL, 00h
JGE SII ;SI es palabra reservada
INC [200]
SIGUE: INC BX ;SI ndice fuente
LOOPNZ RETORNO
FIN: RET
SII: JNZ NO
INC [201]
JMP SIGUE
NO: INC [202]
JMP SIGUE
;-------------
MOV AH,4Ch ;mueve el contenido de 4C a Ah
INT 21H
MASCARA endp
End

UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
1
4

EJERCICIO 10:
Encontrar al elemento ms pequeo de un bloque de datos. La longitud del bloque
est en la localidad 4001y el bloque inicia en la localidad 4002. Almacene el resultado
en la localidad 4000, considerando nmeros sin signo.
DIAGRAMA DE FLUJO:
CODIGOS EN ASSEMBLY:
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far
MENOR: MOV DI, 4002
MOV AL, [DI]
MOV CL, [4001]
MOV CH, 0
X: INC DI
CMP AL, [DI]
JB Y ;JL para nmeros con signo
MOV AL, [DI]
Y: LOOP X
MOV [4000], AL
END
MOV AH,4Ch ;mueve el contenido de 4C a Ah
INT 21H
MASCARA endp
End

UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
1
5

EJERCICIO 11:
Determinar cuntos bits valen 1 en el contenido de la localidad de memoria 200.
Almacene el resultado en la localidad 201
DIAGRAMA DE FLUJO:
CDIGOS EN ASSEMBLY:
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far
MENOR: MOV AL, 00h
MOV [201], AL
MOV AL, [200]
MOV CX, 0008h
X: ROL AL
JNC Y
INC [201]
Y: LOOP X
end
;-------------
MOV AH,4Ch ;mueve el contenido de 4C a Ah
INT 21H
MASCARA endp
end



UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
1
6

EJERCICIO 12:
Determinar la longitud de un mensaje ASCII. Los caracteres son de 7 bits, el octavo es
0. La cadena de caracteres en la cual viene incluido el mensaje inicia en la localidad
201. El mensaje inicia con STX(02h) y finaliza con ETX(03h) Colocar la longitud del
mensaje en la localidad 200(no contar STX ni ETX)
DIAGRAMA DE FLUJO:



CDIGOS DE ASSEMBLY:
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far
LONG: MOV [200], 00h
MOV DI, 0202h
X: MOV AL, [DI]
CMP AL, X
JE FIN
INC [200]
INC DI
JMP X

FIN: ENDP



UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
1
7

EJERCICIO 13. Investigar una cadena de caracteres ASCII para determinar el ltimo
carcter distinto del blanco. La cadena empieza en la localidad 202y finaliza con
CR(0Dh) Colocar la direccin del ltimo carcter diferente del espacio en la localidad
200 y 201
DIAGRAMA DE FLUJO:
CDIGOS EN ASSEMBLY:
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far
DIR: MOV SI, 202
X: MOV AL, [SI]
CMP AL, 0dh ;AL vs CR
JE Almacena
CMP AL, 20h ;AL vs SPACE
JE ANTESALM
INC SI
JMP X
ANTESALM: DEC SI
ALMACENA: MOV 200, SI
END
;-------------
MOV AH,4Ch ;mueve el contenido de 4C a Ah
INT 21H
MASCARA endp
End

UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
1
8

Ejercicio 14.
Reemplazar todos los dgitos que estn a la derecha del punto decimal por caracteres
blancos. La cadena inicia en la localidad 201 y consiste de nmeros decimales
codificados en ASCII y un posible punto decimal ( 2Eh) La longitud est en la localidad
200. Si no aparece punto decimal, asuma que est implcito en el lado derecho.
NOTA : En ASCII los decimales 0,,9se representan como 30,,39
DIAGRAMA DE FLUJO:


UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
1
9

CDIGOS EN ASSEMBLY:
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far
PUNTO: MOV BX, 201
MOV CL, [0200]
MOV CH, 00h
RI: MOV AL, [BX]
CMP AL, 2Eh
JZ SII ; ME SALE ERROR EN ESTA INSTRUCCION
INC BX
LOOP R1
END
SII: MOV AH, 20h
R2: INC BX
MOV [BX], AH
DEC CX
JNZ R2
end
;-------------
MOV AH,4Ch ;mueve el contenido de 4C a Ah
INT 21H
MASCARA endp
End

UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
2
0

EJERCICIO 15
Verificar la paridad par de caracteres ASCII . La longitud de la cadena est en la
localidad 201he inicia en la 202h. Si la paridad de todos los caracteres de la cadena es
correcta, borrar el contenido de la localidad 200h; en caso contrario colocar FF
DIAGRAMA DE FLUJO





CDIGOS EN ASSEMBLY:
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far
PARIDAD: MOV BX, 202
MOV CH, 00
MOV CL, [201]
MOV AL, [BX]
X: CALL 34
INC BX
LOOPNZ X
END



UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
2
1


EJERCICIO 16:
Comparar dos cadenas de caracteres ASCII para determinar cul sigue a la otra en
orden alfabtico. La longitud de las cadenas est en la localidad 201. Una cadena
inicia en la localidad 202 y la otra en la localidad 252. Si la cadena que inicia en la
localidad 202 es menor o igual a la otra cadena, borrarla localidad 200, en caso
contrario almacenar FF en la localidad 200.
DIAGRAMA DE FLUJO:


UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
2
2

CDIGOS EN ASSEMBLY:
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far
COMPARA: SUB [200],5h ;asumimos que cadena 1 es menor o igual a cadena 2
MOV DI, 0202h ;DI apunta al inicio de la cadena 1
MOV CH, 00h ;CX igual a la longitud de las cadenas
MOV CL, [0201]
R: MOV AL, [DI]
CMP AL, [DI+10h] ;apunta a la otra cadena
JNC 12h
INC DI
LOOPNZ R
END
NO: JB SII
MOV [0200], FFh
SII: END
;-------------
MOV AH,4Ch ;mueve el contenido de 4C a Ah
INT 21H
MASCARA endp
End



UNIVERSIDAD PRIVADA DEL NORTE
J.CARLOS GONZALES
2
3

EJERCICIO 18:
Conversin del cdigo GRAY a
cdigo GRAY -EXCESO 3, sin
utilizar la instruccin XLAT.
DIAGRAMA DE FLUJO:

CDIGO EN ASSEMBLY:
include 'emu8086.inc'
org 100h
.model small
.stack 64
.data
aux db 15
.code
MASCARA proc far

GRAY_GEX3:MOV SI, 5000h ;direccin de inicio de la tabla
R: MOV AH, [SI] ;obtenemos GRAY en los 4 bits
LSR 0 ;menos significativos
LSR 1
LSR 2
LSR 3
CMP 4, AL
JE CONVIERTE
INC SI
JMP R