Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
10/24/02 11:38
Read: times


 
#31350 - RE: long number arithmetics
Ando now the listing with the generated code:

<pre>
A51 MACRO ASSEMBLER DIVIS DATE 24/10/02 PAGE 1


MS-DOS MACRO ASSEMBLER A51 V4.6
OBJECT MODULE PLACED IN C:TMPDIVIS.OBJ
ASSEMBLER INVOKED BY: A51 DIVIS.A51 OJ(C:TMPDIVIS.OBJ) PL(65535)

LOC OBJ LINE SOURCE

1 ;************************************************************************/
2 ;* */
3 ;* Scalable Mathematics: Division */
4 ;* */
5 ;* Author: Peter Dannegger */
6 ;* danni@specs.de */
7 ;* */
8 ;************************************************************************/
9 $nosb
10
0005 11 a_size equ 5 ;divident: 5 bytes
0002 12 b_size equ 2 ;divisor: 2 bytes
13
0000 14 ra0 equ r0 ;divident
0001 15 ra1 equ r1
0002 16 ra2 equ r2
0003 17 ra3 equ r3
0004 18 ra4 equ r4
19
0030 20 rb0 equ 30h ;divisor
0031 21 rb1 equ 31h
22
0005 23 rr0 equ r5 ;remainder
0006 24 rr1 equ r6
25
0007 26 ri0 equ r7 ;loop counter
27
32 +1 $rs
33 ;-------------------------------------------------------------------------
0000 34 scaldiv:
0000 E4 35 clr a
48+1+1 $rs
0001 FD 49+1 mov _regr, a ;clear remainder
54+1+1 $rs
0002 FE 55+1 mov _regr, a ;clear remainder
57 +1 $rs
0003 7F28 58 mov ri0, #a_size * 8
0005 C3 59 _scd1: clr c
74+1+1 $rs
0006 E8 75+1 mov a, _rega
0007 33 76+1 rlc a ;shift divident
0008 F8 77+1 mov _rega, a
82+1+1 $rs
0009 E9 83+1 mov a, _rega
000A 33 84+1 rlc a ;shift divident
000B F9 85+1 mov _rega, a
90+1+1 $rs
000C EA 91+1 mov a, _rega
000D 33 92+1 rlc a ;shift divident
000E FA 93+1 mov _rega, a
98+1+1 $rs
000F EB 99+1 mov a, _rega
0010 33 100+1 rlc a ;shift divident
0011 FB 101+1 mov _rega, a
106+1+1 $rs
0012 EC 107+1 mov a, _rega
0013 33 108+1 rlc a ;shift divident
0014 FC 109+1 mov _rega, a
124+1+1 $rs
0015 ED 125+1 mov a, _regr
0016 33 126+1 rlc a ;shift remainder
0017 FD 127+1 mov _regr, a
132+1+1 $rs
0018 EE 133+1 mov a, _regr
0019 33 134+1 rlc a ;shift remainder
001A FE 135+1 mov _regr, a
138 +1 $rs
001B 10D708 139 jbc cy, _scd2
157+1+1 $rs
001E ED 158+1 mov a, _regr
001F 9530 159+1 subb a, _regb ;test subtraction
166+1+1 $rs
0021 EE 167+1 mov a, _regr
0022 9531 168+1 subb a, _regb ;test subtraction
170 +1 $rs
0024 4009 171 jc _scd3
0026 172 _scd2:
190+1+1 $rs
0026 ED 191+1 mov a, _regr
0027 9530 192+1 subb a, _regb ;subtract
0029 FD 193+1 mov _regr, a
200+1+1 $rs
002A EE 201+1 mov a, _regr
002B 9531 202+1 subb a, _regb ;subtract
002D FE 203+1 mov _regr, a
205 +1 $rs
002E 08 206 inc ra0 ;set result bit
002F 207 _scd3:
002F DFD4 208 djnz ri0, _scd1
0031 22 209 ret
210 ;-------------------------------------------------------------------------
211 end



REGISTER BANK(S) USED: 0

ASSEMBLY COMPLETE, NO ERRORS FOUND


List of 7 messages in thread
TopicAuthorDate
long number arithmetics            01/01/70 00:00      
RE: long number arithmetics            01/01/70 00:00      
RE: long number arithmetics            01/01/70 00:00      
RE: Boolean number?            01/01/70 00:00      
RE: Floating Point: Peter            01/01/70 00:00      
RE: Trig functions....CORDIC?            01/01/70 00:00      
RE: Floating Point: Peter            01/01/70 00:00      

Back to Subject List