Unsupported Locations Windowing Example; Using The Linker Locator To Set Up A Window - Intel 8XC196NT User Manual

Table of Contents

Advertisement

8XC196NT USER'S MANUAL
4.3.2.4

Unsupported Locations Windowing Example

Assume that you wish to access location 1FE7H (the EP_PIN register, a memory-mapped SFR)
with direct addressing through a 128-byte window. This location is in the range of addresses
(1FE0–1FFFH) that cannot be windowed. Although you could set up the window by writing 1FH
to the WSR, reading this location through the window would return FFH (all ones) and writing
to it would not change the contents. However, you could directly address the remaining SFRs in
the range of 1F80–1FDFH.
4.3.2.5

Using the Linker Locator to Set Up a Window

In this example, the linker locator is used to set up a window. The linker locator locates the win-
dow in the upper register file and determines the value to load in the WSR for access to that win-
dow. (Please consult the manual provided with the linker locator for details.)
*********
mod1
**************
mod1 module main
public function1
extrn
?WSR
wsr
equ
14h:byte
sp
equ
18h:word
oseg
var1:
dsw
1
var2:
dsw
1
var3:
dsw
1
cseg
function1:
push
wsr
ldb
wsr, #?WSR
add var1, var2, var3
;
;
;
ldb
wsr, [sp]
add sp, #2
ret
end
********
mod2
**************
4-20
;Main module for linker
;Must declare ?WSR as external
;Allocate variables in an overlayable segment
;Prolog code for wsr
;Prolog code for wsr
;Use the variables as registers
;Epilog code for wsr
;Epilog code for wsr

Advertisement

Table of Contents
loading

Table of Contents