![]() |
|
| << Previous | Next >> | |
| | |
LDP (mn),HL
LDP (mn),IX
LDP (mn),IY Load Physical Rabbit 2000/3000/4000/5000 Instruction
Rabbit 2000/3000/4000 Rabbit 5000
Description
Access 20-bit addresses. In all cases, the four most significant bits of the 20-bit address (bits 19 through 16) are defined as the four least significant bits of A (bits 3 though 0). The LDP instructions bypass the MMU's address translation unit for direct access to the 20-bit memory address space.
LDP (mn),HL:Loads memory location whose 16 least significant bits of its 20-bit address are the 16-bit constant mn with the data in L, and then loads the following memory location with data in H.LDP (mn),IX:Loads the memory location whose 16 least significant bits of its 20-bit address are the 16-bit constant mn with the low order byte of IX, and then loads the following memory location with the high order byte of IX.LDP (mn),IY:Loads the memory location whose 16 least significant bits of its 20-bit address are the 16-bit constant mn with the low order byte of IY, and then loads the following memory location with the high order byte of IY.Note that the LDP instructions wrap around on a 64K page boundary. Since the LDP instruction operates on two-byte values, the second byte will wrap around and be written at the start of the page if you try to read or write across a page boundary. Thus, if you fetch or store at address 0xn,0xFFFF, you will get the bytes located at 0xn, 0xFFFF and 0xn,0x0000 instead of 0xn,0xFFFF and 0x(n+1),0x0000 as you might expect. Therefore, do not use LDP at any physical address ending in 0xFFFF.
| Rabbit Instructions | << Previous | Next >> | rabbit.com |