Intel 8XC196MD, 8XC196MH, 8XC196MC manual Windowing and Addressing Modes, LDB WSR, #12H

Models: 8XC196MD 8XC196MH 8XC196MC

1 579
Download 579 pages 24.12 Kb
Page 84
Image 84

MEMORY PARTITIONS

The C compiler can also take advantage of this feature if the “windows” switch is enabled. For details, see the MCS 96 microcontroller architecture software products in the Development Tools Handbook.

4.2.3Windowing and Addressing Modes

Once windowing is enabled, the windowed locations can be accessed both through the window using direct (8-bit) addressing and by the usual 16-bit addressing. The lower register file locations that are covered by the window are always accessible by indirect or indexed operations. To re- enable direct access to the entire lower register file, clear the WSR. To enable direct access to a particular location in the lower register file, you can select a smaller window that does not cover that location.

When windowing is enabled:

a register-direct instruction that uses an address within the lower register file actually accesses the window in the upper register file;

an indirect, indexed, or zero-register instruction that uses an address within either the lower register file or the upper register file accesses the actual location in memory.

The following sample code illustrates the difference between register-direct and indexed address- ing when using windowing.

PUSHA

;

pushes

the contents of WSR onto the

stack

LDB WSR, #12H

;

select

window 12H, a 128-byte block

 

;The next instruction uses register-direct addr

ADD 40H, 80H; mem_word(40H)mem_word(40H) + mem_word(380H)

;The next two instructions use indirect addr

ADD 40H, 80H[0] ; mem_word(40H)mem_word(40H) + mem_word(80H +0)

ADD 40H, 380H[0] ; mem_word(40H)mem_word(40H) + mem_word(380H +0)

POPA

; reloads the previous contents into WSR

4-19

Page 84
Image 84
Intel 8XC196MD, 8XC196MH, 8XC196MC manual Windowing and Addressing Modes, LDB WSR, #12H