sumay resta
DESCRIPTION
8085TRANSCRIPT
UNIVERSIDAD TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
CARRERA DE ELECTRNICA Y COMUNICACIONES
UNIVERSIDAD TCNICA DE AMBATO
Facultad de Ingeniera en Sistemas, Electrnica e Industrial
Carrera de Ingeniera Electrnica y Comunicaciones
MICROPROCESADORES
Ciclo Semestral:
Sexto
Alumnos:
Fecha de Envi:
13 de Enero del 2015
Fecha de Presentacin:
15 de Enero del 2015
OCTUBRE 2014- MARZO 2015
Tema: SUMADOR Y RESTA
Ingresamos en los puerto puerto 00h el valor de 01H los datos y en el 05h seleccionas la suma y la resta en el 01h la resta y en el 10h la suma.
Suma y resta
.org 00h
;inicializar programa
selector:
;Etiqueta o subrutina
in 00h
;Ingreso en Puerto de entrada 00h
mov b,a
; mover el acumulador al registro b
in 01h
; ingresar el dato por el puerto 01h
mov c,a
; mover el acumulador al registro b
in 05h
; ingresar por el puerto 05
cpi 10h
;Compara dato inmediato 10 decimal con el acumulador
jz suma
;comparar el acumulador
jz suma
cpi 01h
;Compara dato inmediato 10 decimal con
jz resta
jnz borrado
jmp selector
borrado:
;etiqueta o subrutina
mvi a,00h
Mover el dato inmediato al acumulador
out 00h
out 01h
jmp selector
suma:
;Rutina o subrutina
mov a,b
;Mover el registro b al acumulador
add c
;sumar el registro
out 00h
jmp selector
resta:
;Rutina o subrutina
mov a,b
;Mover el registro b al acumulador
sub c
;resta el registro c del acumulador
mov e,a
;Mover el registro b al acumulador
jnc imprimir
jc signo
; si el acarreo es cero salte a la etiqueta
jmp selector
imprimir:
mvi a,00h
;Mover el registro b al acumulador
out 01h
mov a,e
;Mover el registro b al acumulador
out 00h
jmp selector
signo:
mvi a,ffh
;Mover el registro b al acumulador
sub e
adi 01h
out 00h
mvi a,ffh
;Mover el registro b al acumulador
out 01h
jmp selector
.org 00h
selector:
in 00h
mov b,a;Mover el registro b al acumulador
in 01h;ingresar un dato por el Puerto 01h
mov c,a
in 05h;ingresar un dato por el Puerto 05h
cpi 10h
jz suma;Si es cero salte a la etiqueta suma
cpi 01h; compara con el dato inmediato 01h
jz resta; si es cero salte a la etiqueta borrador
jnz borrado; si el resultado no es cero salte a la etiqueta borrador
jmp selector; salte a la etiqueta selector
borrado:; etiqueta o subrutina
mvi a,00h;Mover el registro b al acumulador
out 00h;salida en el Puerto 00h
out 01h
jmp selector
suma:
mov a,b;Mover el registro b al acumulador
add c
out 00h
jmp selector
resta:;etiqueta subrutina
mov a,b;mover el registro b al acumulador
sub c; resta el registro b del acumulador
mov e,a; mover el acumulador al registro e
jnc imprimir; salte si el acarreo no es cero
jc signo; salte si el acarreo es cero
jmp selector; saltar a la etiqueta selector
imprimir:
mvi a,00h; mover el dato inmediato 00h al acumulador
out 01h;
mov a,e;mover el registro e al acumulador
out 00h; enviar a la salida 00h
jmp selector; saltar a la etiqueta selector
signo:
mvi a,ffh; mover el dato inmediato ffh al acmulador
sub e; restar el registro b del acumulador
adi 01h; aade un bit al dato inmediato
out 00h
mvi a,ffh; mover un dato inmediato ffh al acumulador
out 01h
jmp selector ;Regresa a la etiqueta inicio en caso de no existir saltos anteriores
Suma:
Resta con el signo positivo
Resta con el signo negativo
El programa realiza la suma y la resta mediante el ingreso de control de 10h como la suma y 01h la resta. En la parte de la resta identifica el bit del signo negativo. Mediante el ingreso por el puerto 05h.