non capisco perché esegue la divisione solo dei numeri minori di 133, sapete perché?
Codice:
;;..ACQUISIZIONE PARAMETRI DA PERIFERICA ;LD C,26h
;IN A,(C)
;LD B,A ;;CARICA IN B IL DIVIDENDO
;IN A,(C)
;LD C,A ;;CARICA IN C IL DIVISORE
;;..FINE ACQUISIZIONE PARAMETRI DA PERIFERICA
PUSH BC ;;DIVIDENDO E DIVISORE NELLO STACK (sp-2)
LD B,0
LD C,0
CALL SUBDIV ;;CHIAMATA ALLA SUBRUTINE (sp-2)
;;..........RITORNO ALLO STATO INIZIALE PIU RISULTATI DELLA SUBRUTINE..........................
LD B,0
LD C,0
POP BC ;; (sp+2)
LD D,B ;;RESTO IN D
LD E,C ;;QUOZIENTE IN E
POP BC ;;DIVIDENDO IN B, DIVISORE IN C (sp+2)stack vuoto
HALT
;;..............................................................................................
;;.........................SUBRUTINE DIVISIONE..................................
;;..............................................................................
SUBDIV: ;;..ACQUISIZIONE PARAMETRI
POP IX ;;IX PUNTA ALL'INDIRIZZO DELLA CHIAMATA ALLA SUBRUTINE (sp+2)
POP BC ;;DIVIDENDO-DIVISORE (sp+2) stack vuoto
PUSH BC ;;RICARICHIAMO DIVIDENDO E DIVISORE NELLO STACK (sp-2)
LD A,B
LD B,C
LD C,0 ;;CONTATORE NUMERO DI SOTRAZIONI(RIVELERA IL QUOZIENTE)
;;..FINE ACQUISIZIONE PARAMETRI
INIZIO:
CP B
JP M,FINE
SUB B
INC C
JR INIZIO
FINE:
LD B,A ;;CARICA IL RESTO IN C
PUSH BC ;;IN B C'E IL RESTO, IN C IL QUOZIENTE (sp-2)
PUSH IX ;;NELLO STACK L'INDIRIZO DI RITORNO ALLA MAIN PER ESEGUIRE IL RET(sp-2)
RET
;;...............FINE SUBRUTINE DIVISIONE.......................................