Anda di halaman 1dari 3

; variable/data section

VARIABLES:SECTION
DATA1 ds.w 1
DATA2 ds.w 1
RESULT1 ds.w 1
RESULT2 ds.w 1
RESULT_hi ds.w 1
RESULT_lo ds.w 1
PROD ds.w 2
ACUM ds.w 2
; code section
MyCode:
SECTION
main:
_Startup:
Entry:
LDS #__SEG_END_SSTACK
;

; initialize the stack pointer

; SUMA
LDD DATA1 ; CARGO EN D EL VALOR QUE STA ALMACENADO EN LA
DIRECCION DE DATA1
; OSEA LO QUE VALE DATA1
ADDD DATA2 ; SE LE SUMA A D QUE CONTIENE EL VALOR DE DATA1 EL
VALOR DE DATA2
STD RESULT1 ; EL RESULTADO SE ALMACENA A LA DIRECCION DE RESULT
; RESTA
;LDD DATA1 NO LO VUELVO A CARGAR PUES YA LO HICE
SUBD DATA2 ; SE LE RESTA A D QUE CONTIENE EL VALOR DE DATA1 EL
VALOR DE DATA2
STD RESULT2 ; EL RESULTADO SE ALMACENA A LA DIRECCION DE RESULT2
; DIVISION
;LDD DATA1 NO LO VUELVO A CARGAR PUES YA LO HICE
LDX DATA2 ; CARGO EN X EL VALOR QUE ESTA ALMACENADO EN LA
DIRECCION DE DATA2
; OSEA LO QUE VALE DATA1
IDIV ; USO ESTA INSTRUCION PUES NO ESPECIFIC SI ERA CON SIGNO O SIN
SIGNO
; SI FUERA CONSIGNO SE USA IDIVS

STX RESULT_hi ; PUES CUANDO SE USA LA INSTRUCION IDIV SE GUARDA EN


X EL COCIENTE DE
; LA DIVISION Y CON STX SE ALMACENA ESTE VALOR A LA
DIRECION DE RESULT_HI
STD RESULT_hi ; PUES CUANDO SE USA LA INSTRUCION IDIV SE GURDA EN D
EL RESIDUO DE
; LA DIVISION Y CON STD SE ALMACENA ESTE VALOR A LA
DIRECION DE RESULT_HI
; MULTIPLICACION
LDD DATA1 ; CARGO EN D EL VALOR QUE STA ALMACENADO EN LA
DIRECCION DE DATA1
; OSEA LO QUE VALE DATA1
LDY DATA2 ; CARGO EN Y EL VALOR QUE STA ALMACENADO EN LA
DIRECCION DE DATA2
; OSEA LO QUE VALE DATA2
EMUL ; INSSTRUCION DE MULTIPLICACIN USA LOS REGISTROS D*Y E
GUARDA EN Y LOS
; 16 MSB DIGITOS Y EN D LOS 16 LSB DIGITOS
STY PROD ; ALMACENO LOS 16 MSB DIGITOS A LAS DOS PRIMERAS BITS DE
PROD
STD (PROD+2) ; ALMACENO LOS 16 LSB DIGITOS A LAS DOS ULTIMOS BITS
DE PROD
; ACUM
; COMO EN LA PARTE ANTERIOR D TIENE LO 16 LSB DE PROD
ADDD (ACUM+2) ; LE SUMO A LOS 16 LSB BITS DE PROD LOS 16 LSB BITS DE
ACUM
STD (ACUM+2); ALMACENO EL RESULTADO DE LA SUMA EN LOS 16 LSB DE
ACUM
LDD Y ; ; CARGO EN D EL VALOR QUE STA ALMACENADO EN LA DIRECCION
DE Y
; OSEA LOS 16 MSB BITS DE PROD
ADDD ACUM ; LE SUMO LOS 16 MSB BITS DE ACUM A D
STD ACUM ; ALMACENO EL RESULTADO DE LA SUMA DE LOS 16 MSB BITS EN
LOS
; 16 MSB BITS DE ACUM