You are on page 1of 2

; *****************************************************************************

**
; UNIVERSIDAD MAYOR DE SAN ANDRES
; FACULTAD DE INGENIERIA
; CARRERA DE INGENIERIA ELECTRONICA
; ETN 801 - MICROPROCESADORES
; ******************************************************************************
**
; Programa: Multiplicacion de 2 bytes por 2 bytes, usando
;
desplazamiento a la izquierda
; Procesador : 6800
; Univ. Ren Alonzo Choque Saire
; 19/09/05
; ******************************************************************************
**
; **************
**

DATOS

Prod

.dseg
.org
.byte
.byte
.byte
.byte
.block

AuxCando
AuxCador
cont

.block 4
.block 2
.block 1

MCando
MCador

0h
0
2
0
4
4

********************************

;Multiplicando
;Multiplicador
;Producto
;Multiplicando Auxiliar
;Multiplicador Auxiliar
;Contador de trabajo

; **************
PROGRAMA
*
.cseg
;INICIAR VARIABLES
ldab
#8
ldx
#Prod - 1
;Ciclo de Borrado
Borrar:
inx
clr
0,x

********************************

decb
bne

Borrar

ldx
stx

MCando
AuxCando + 2

; Transfiriendo Multiplicando

ldx
stx

MCador
AuxCador

;Transfiriendo Multiplicador

ldaa
staa

#16
cont

;Contador del proceso

;ANALIZAR BITS
Continuar:
clc
;CY = 0
ror
AuxCador
ror
AuxCador + 1
;
Desicion Bit = 0 o 1
bcc
Bit0

Si bit es igual a 1

;ACTUALIZAR PRODUCTO
ldab
ldx
clc
;Ciclo
Ciclo0:
dex
ldaa
adca
staa

#4
#Prod + 4

0,x
4,x
0,x

decb
bne
Ciclo0
;DESPLAZAR MULTIPLICANDO Auxiliar
Bit0:
clc
rol
AuxCando+3
rol
AuxCando+2
rol
AuxCando+1
rol
AuxCando
; ULTIMO PROCESO ?
dec
bne
wai
.end

cont
Continuar

You might also like