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, 0https://CPCrulez.fr
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser... |
CPCrulez[Content Management System] v8.7-desktop Page créée en 047 millisecondes et consultée 2013 foisL'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. |
|
|