HP 64700 User Manual page 82

Emulators terminal interface
Hide thumbs Also See for 64700:
Table of Contents

Advertisement

U>tl -210
Line
addr,H
-----
------
-210
0048e
-209
00492
-208
00490
-207
00494
-206
004a7
-205
004a8
-204
004a7
-203
004aa
-202
00824
-201
004aa
-200
004ac
-199
00600
-198
004ac
-197
004ae
-196
004b0
-195
005ff
-194
004ae
-193
004b2
-192
00600
-191
004b0
Accessing Full Analyzer Capability 3-34
8018x mnemonic,H
------------------------------------
CMP DI,SI
f5ebH, opcode fetch
JLE SHORT 04a7H
3a4fH, opcode fetch
8bxxH, opcode fetch
0276H, opcode fetch
MOV SI,WORD PTR 02H[BP]
158aH, opcode fetch
05ffH, mem read
MOV DL,BYTE PTR [DI]
1488H, opcode fetch
xx39H, mem read
MOV BYTE PTR [SI],DL
0588H, opcode fetch
568bH, opcode fetch
39xxH, mem write
MOV BYTE PTR [DI],AL
5204H, opcode fetch
xx7eH, mem write
MOV DX,WORD PTR 04H[BP]
From these lines of the trace list, you can see that the instructions at ad-
dresses 4AAH and 4ACH are the ones that cause the problems. These
are the instructions associated with the OUT section of the QSORT
subroutine. They are used to swap the dividing value and the value at
the high index after a segment of the list to be sorted is split. You can
see that the high index is address 600H, which it should never be. How-
ever, looking back at the program you see that the increment of the
high index so that DEC_HIGH works the first time through will cause
problems when the JLE OUT instruction gets executed in the
INC_LOW loop. Changing the program in the following manner will
fix the problem (notice the instructions surrounded by the "# " charac-
ter).
count,R
seq
---------
---
0.160 uS
.
0.400 uS
.
0.120 uS
.
0.400 uS
.
0.680 uS
.
0.560 uS
.
0.120 uS
.
0.400 uS
.
0.840 uS
.
0.400 uS
.
0.120 uS
.
0.840 uS
.
0.400 uS
.
0.120 uS
.
1.080 uS
.
0.560 uS
+
0.120 uS
.
1.240 uS
.
0.520 uS
.
0.160 uS
.

Advertisement

Table of Contents
loading

Table of Contents