home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
zip
/
program
/
arp68bok.zoo
/
arp.src
/
compare.s
< prev
next >
Wrap
Text File
|
1985-11-20
|
2KB
|
72 lines
; Program Name: COMPARE.S
; Version: 1.003
; Assembly Instructions:
; Assemble in PC-relative mode and save with a TOS extension.
; Program Function:
; Compares the relative speed and memory requirements of
; cmpi.l #d8, dn
; to moveq #d8, dm
; cmp.l dm, dn
; in an effort to confirm or refute the assertion on page 202 of the
; Kelly-Bootle book that the second algorithm is a faster. The execution
; time reported is for 50,000 executions of each algorithm.
calculate_program_size:
lea -$102(pc), a1 ; Fetch basepage start address.
lea program_end, a0 ; Fetch program end = array address.
trap #6 ; Return unused memory to op system.
lea stack, a7
initialize_registers_1:
lea header_1, a0
lea header_2, a1
lea cmpi_start, a3
lea cmpi_end, a4
lea heading, a5
move.w #50000, d7
trap #9
initialize_registers_2:
lea header_3, a0
lea header_4, a1
lea moveq_cmp_start, a3
lea moveq_cmp_end, a4
lea heading, a5
move.b #0, (a5) ; Store a NULL in first byte to create a
move.w #50000, d7 ; null string so that heading gets printed
trap #9 ; only once.
terminate:
trap #8
cmpi_start:
cmpi.l #0, d1
cmpi_end:
moveq_cmp_start:
moveq #0, d0
cmp.l d0, d1
moveq_cmp_end:
data
heading: dc.b "COMPARE Program Results",$D,$A,$D,$A,0
header_1: dc.b " Elapsed time for cmpi.l #d8, dn: ",0
header_2: dc.b " Memory required for first algorithm: ",0
header_3: dc.b $D,$A," Elapsed time for moveq #d8, dm",$D,$A
dc.b " cmp.l dm, dn: ",0
header_4: dc.b " Memory required for second algorithm: ",0
bss
align
label: ds.l 1
ds.l 96
stack: ds.l 0
program_end: ds.l 0
end