CODINGSOURCES ★ CODING Source &010 - Multiplcation ★

Multiplication ( 2 src's )Coding Sources
Solution 1:

;
; INPUT: THE VALUES IN REGISTER B EN C
; OUTPUT: HL = B * C
; CHANGES: AF,DE,HL,B
;
MUL: LD HL,0
  LD A,B
  OR A
  RET Z
  LD D,0
  LD E,C
LOOP: ADD HL,DE
  DJNZ LOOP
  RET

Solution 2:

Très gourmand en mémoire , mets extremement rapide

; IN : A and D are to be multiplied
; OUT: HL is result
; CHANGES : AF,BC,E,HL
;
ORG &1000
MUL: LD   E,A
  SUB  D
  LD   H,MULTAB/256
  LD   L,A
  LD   C,(HL)
  INC  H
  LD   B,(HL)
  LD   A,E
  ADD  A,D
  LD   L,A
  LD   E,(HL)
  DEC  H
  LD   L,(HL)
  LD   H,E
  OR   A
  SBC  HL,BC
  RET
; MULTITAB dois avoir une adresse d'implémentaion ayant un poid
; faible nul ( &xx00 )
ORG &1300
MULTAB: DB   0, 0, 1, 2, 4, 6, 9, 12, 16, 20
  DB   25, 30, 36, 42, 49, 56, 64, 72, 81, 90
  DB   100, 110, 121, 132, 144, 156, 169, 182, 196, 210
  DB   225, 240, 0, 16, 33, 50, 68, 86, 105, 124
  DB   144, 164, 185, 206, 228, 250, 17, 40, 64, 88
  DB   113, 138, 164, 190, 217, 244, 16, 44, 73, 102
  DB   132, 162, 193, 224, 0, 32, 65, 98, 132, 166
  DB   201, 236, 16, 52, 89, 126, 164, 202, 241, 24
  DB   64, 104, 145, 186, 228, 14, 57, 100, 144, 188
  DB   233, 22, 68, 114, 161, 208, 0, 48, 97, 146
  DB   196, 246, 41, 92, 144, 196, 249, 46, 100, 154
  DB   209, 8, 64, 120, 177, 234, 36, 94, 153, 212
  DB   16, 76, 137, 198, 4, 66, 129, 192
  DB   0, 192, 129, 66, 4, 198, 137, 76, 16, 212
  DB   153, 94, 36, 234, 177, 120, 64, 8, 209, 154
  DB   100, 46, 249, 196, 144, 92, 41, 246, 196, 146
  DB   97, 48, 0, 208, 161, 114, 68, 22, 233, 188
  DB   144, 100, 57, 14, 228, 186, 145, 104, 64, 24
  DB   241, 202, 164, 126, 89, 52, 16, 236, 201, 166
  DB   132, 98, 65, 32, 0, 224, 193, 162, 132, 102
  DB   73, 44, 16, 244, 217, 190, 164, 138, 113, 88
  DB   64, 40, 17, 250, 228, 206, 185, 164, 144, 124
  DB   105, 86, 68, 50, 33, 16, 0, 240, 225, 210
  DB   196, 182, 169, 156, 144, 132, 121, 110, 100, 90
  DB   81, 72, 64, 56, 49, 42, 36, 30, 25, 20
  DB   16, 12, 9, 6, 4, 2, 1, 0
  DB   0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  DB   0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  DB   0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  DB   0, 0, 1, 1, 1, 1, 1, 1, 1, 1
  DB   1, 1, 1, 1, 1, 1, 2, 2, 2, 2
  DB   2, 2, 2, 2, 2, 2, 3, 3, 3, 3
  DB   3, 3, 3, 3, 4, 4, 4, 4, 4, 4
  DB   4, 4, 5, 5, 5, 5, 5, 5, 5, 6
  DB   6, 6, 6, 6, 6, 7, 7, 7, 7, 7
  DB   7, 8, 8, 8, 8, 8, 9, 9, 9, 9
  DB   9, 9, 10, 10, 10, 10, 10, 11, 11, 11
  DB   11, 12, 12, 12, 12, 12, 13, 13, 13, 13
  DB   14, 14, 14, 14, 15, 15, 15, 15
  DB   16, 15, 15, 15, 15, 14, 14, 14, 14, 13
  DB   13, 13, 13, 12, 12, 12, 12, 12, 11, 11
  DB   11, 11, 10, 10, 10, 10, 10, 9, 9, 9
  DB   9, 9, 9, 8, 8, 8, 8, 8, 7, 7
  DB   7, 7, 7, 7, 6, 6, 6, 6, 6, 6
  DB   5, 5, 5, 5, 5, 5, 5, 4, 4, 4
  DB   4, 4, 4, 4, 4, 3, 3, 3, 3, 3
  DB   3, 3, 3, 2, 2, 2, 2, 2, 2, 2
  DB   2, 2, 2, 1, 1, 1, 1, 1, 1, 1
  DB   1, 1, 1, 1, 1, 1, 1, 0, 0, 0
  DB   0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  DB   0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  DB   0, 0, 0, 0, 0, 0, 0, 0

https://CPCrulez.fr

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding Src's » Manipulation des Tastatureingabepuffers (Schneider Magazin)
» Coding Src's » Dots (Demoniak)
» Coding Src's » .PT3 Player
» Coding Src's » CPCRetroDev 2015 Sources pack collection
» Coding Src's » MC-Hinter
» Coding Src's » Mega-Mad - Mix Demo (sourcepack)
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.732-desktop/c
Page créée en 460 millisecondes et consultée 2593 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.