Changeset 4f508e6 in buchla-68k for lib700/ldiv.s
- Timestamp:
- 07/01/2017 02:34:46 PM (7 years ago)
- Branches:
- master
- Children:
- 08e1da1
- Parents:
- f40a309
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lib700/ldiv.s
rf40a309 r4f508e6 1 *------------------------------------------------------------------------------2 *ldiv.s -- long division3 *Version 1 -- 1988-01-224 *------------------------------------------------------------------------------1 | ------------------------------------------------------------------------------ 2 | ldiv.s -- long division 3 | Version 1 -- 1988-01-22 4 | ------------------------------------------------------------------------------ 5 5 .text 6 * 6 7 7 .xdef _ldiv 8 8 .xdef ldiv 9 * 9 10 10 .xdef _ldivr 11 * 12 ARG1 .equ813 ARG2 .equ1214 * 11 12 ARG1 = 8 13 ARG2 = 12 14 15 15 _ldiv: 16 16 ldiv: link a6,#-2 … … 21 21 move.l ARG2(a6),d6 22 22 bne ldiv1 23 * 24 move.l # $80000000,_ldivr25 move.l # $80000000,d023 24 move.l #0x80000000,_ldivr 25 move.l #0x80000000,d0 26 26 divs #0,d0 27 27 bra ldiv11 28 * 28 29 29 ldiv1: bge ldiv2 30 * 30 31 31 neg.l d6 32 32 addq.w #1,d3 33 * 33 34 34 ldiv2: tst.l d7 35 35 bge ldiv3 36 * 36 37 37 neg.l d7 38 38 addq.w #1,d3 39 * 39 40 40 ldiv3: cmp.l d7,d6 41 41 bgt ldiv9 42 * 42 43 43 bne ldiv4 44 * 44 45 45 moveq.l #1,d5 46 46 clr.l d7 47 47 bra ldiv9 48 * 49 ldiv4: cmp.l # $10000,d748 49 ldiv4: cmp.l #0x10000,d7 50 50 bge ldiv5 51 * 51 52 52 divu d6,d7 53 53 move.w d7,d5 … … 55 55 ext.l d7 56 56 bra ldiv9 57 * 57 58 58 ldiv5: moveq.l #1,d4 59 * 59 60 60 ldiv6: cmp.l d6,d7 61 61 bcs ldiv7 62 * 62 63 63 asl.l #1,d6 64 64 asl.l #1,d7 65 65 bra ldiv6 66 * 66 67 67 ldiv7: tst.l d4 68 68 beq ldiv9 69 * 69 70 70 cmp.l d6,d7 71 71 bcs ldiv8 72 * 72 73 73 or.l d4,d5 74 74 sub.l d6,d7 75 * 75 76 76 ldiv8: lsr.l #1,d4 77 77 lsr.l #1,d6 78 78 bra ldiv7 79 * 79 80 80 ldiv9: cmp.w #1,d3 81 81 bne ldiv10 82 * 82 83 83 neg.l d7 84 84 move.l d7,_ldivr … … 86 86 neg.l d0 87 87 bra ldiv11 88 * 88 89 89 ldiv10: move.l d7,_ldivr 90 90 move.l d5,d0 91 * 91 92 92 ldiv11: tst.l (a7)+ 93 93 movem.l (a7)+,d3-d7 94 94 unlk a6 95 95 rts 96 * 96 97 97 .bss 98 * 98 99 99 _ldivr: .ds.l 1 100 * 100 101 101 .end
Note:
See TracChangeset
for help on using the changeset viewer.