SHOW:
|
|
- or go back to the newest paste.
| 1 | __idivs_ASM: | |
| 2 | ; Performs signed interger division | |
| 3 | ; Inputs: | |
| 4 | ; HL : Operand 1 | |
| 5 | ; BC : Operand 2 | |
| 6 | ; Outputs: | |
| 7 | ; HL = HL/BC | |
| 8 | ex de,hl | |
| 9 | xor a,a | |
| 10 | sbc hl,hl | |
| 11 | sbc hl,bc | |
| 12 | jp p,+_ | |
| 13 | push hl | |
| 14 | pop bc | |
| 15 | inc a | |
| 16 | ||
| 17 | _: or a,a | |
| 18 | sbc hl,hl | |
| 19 | sbc hl,de | |
| 20 | jp m,+_ | |
| 21 | ex de,hl | |
| 22 | inc a | |
| 23 | ||
| 24 | _: add hl,de | |
| 25 | rra | |
| 26 | ld a,24 | |
| 27 | ||
| 28 | _: ex de,hl | |
| 29 | adc hl,hl | |
| 30 | ex de,hl | |
| 31 | adc hl,hl | |
| 32 | add hl,bc | |
| 33 | jr c,+_ | |
| 34 | sbc hl,bc | |
| 35 | _: dec a | |
| 36 | jr nz,--_ | |
| 37 | ||
| 38 | ex de,hl | |
| 39 | adc hl,hl | |
| 40 | ret c | |
| 41 | ex de,hl | |
| 42 | sbc hl,hl | |
| 43 | sbc hl,de | |
| 44 | ret | |
| 45 | ||
| 46 | __imuls_ASM: | |
| 47 | __imulu_ASM: | |
| 48 | ; Performs (un)signed integer multiplication | |
| 49 | ; Inputs: | |
| 50 | ; HL : Operand 1 | |
| 51 | ; BC : Operand 2 | |
| 52 | ; Outputs: | |
| 53 | ; HL = HL*BC | |
| 54 | push bc | |
| 55 | push hl | |
| 56 | ex de,hl | |
| 57 | ld hl,2 | |
| 58 | add hl,sp | |
| 59 | ld b,(hl) | |
| 60 | mlt bc | |
| 61 | inc hl | |
| 62 | inc hl | |
| 63 | inc hl | |
| 64 | ld a,d | |
| 65 | ld d,(hl) | |
| 66 | mlt de | |
| 67 | dec hl | |
| 68 | ld l,(hl) | |
| 69 | ld h,a | |
| 70 | mlt hl | |
| 71 | ld a,l | |
| 72 | add a,e | |
| 73 | add a,c | |
| 74 | pop de | |
| 75 | pop bc | |
| 76 | push bc | |
| 77 | or a,a | |
| 78 | sbc hl,hl | |
| 79 | add.s hl,de | |
| 80 | ex de,hl | |
| 81 | ld h,b | |
| 82 | mlt hl | |
| 83 | ld b,d | |
| 84 | mlt bc | |
| 85 | add hl,bc | |
| 86 | add a,h | |
| 87 | ld h,a | |
| 88 | pop bc | |
| 89 | ld d,c | |
| 90 | mlt de | |
| 91 | add hl,hl | |
| 92 | add hl,hl | |
| 93 | add hl,hl | |
| 94 | add hl,hl | |
| 95 | add hl,hl | |
| 96 | add hl,hl | |
| 97 | add hl,hl | |
| 98 | add hl,hl | |
| 99 | add hl,de | |
| 100 | - | ret |
| 100 | + | |
| 101 | ||
| 102 | _abs24de: | |
| 103 | sbc hl, hl | |
| 104 | adc hl, de | |
| 105 | jp p, +_ | |
| 106 | or a, a | |
| 107 | sbc hl, hl | |
| 108 | sbc hl,de | |
| 109 | _: |