Metropoli BBS
VIEWER: ex6_3.ibm MODE: TEXT (ASCII)
#data

; The following code sequence tests checks the amount of time required
; to load word variables from even and odd addresses.
;
; Note that this code assumes that IBM/L inserts all user variables
; at the beginning of the data segment.  If you modify the sources
; to IBMLINC.A and insert stuff before the marker, this code may
; not work properly.
;
; The three bytes between I and J make sure that J's address is at
; an address where (adrs mod 4) = 3 to guarantee slow performance
; on a 386/486.

I		dw	?	;Variable at even address
		db	0
J		dw	?	;Variable at odd address.

#enddata

#repetitions 1000000
#unravel 128

#code ("MOV AX, EVENADRS")
%do
		mov	ax, i
#endcode

#code ("MOV AX, ODDADRS")
%do
		mov	ax, j
#endcode

#code ("MOV BX, EVENADRS")
%do
		mov	bx, i
#endcode

#code ("MOV BX, ODDADRS")
%do
		mov	bx, j
#endcode

#end

[ RETURN TO DIRECTORY ]