This preview shows page 1. Sign up to view the full content.
Unformatted text preview: Data Page Register & Direct Addressing Dr. K. Gugel & Amanda Reilly See spru430e, section 2.2.4 (page 39) and section 5.4 (page 131) You can access the lower 4M of words with the data page. When you load a value into a data page you can access a range of 0 to 63 words from that address (6 bits). Example code: .data ;data is placed in memory at 0xA000 N1 .word 0x1234 N2 .word 0x0 N3 .word 0xAA55 .text ;program is placed in memory at 0x9000 MOV DP,#N1>>6 ;the address for label N1 is right-shifted 6 bits and stored in the data page ;DP = 0x0280 (0xA000 shifted down 6 bits) MOV AH,@N1 ;AH = 0x1234 MOV AL,@N2 ;AL = 0x0 . ;you can quick load up to 2^6 (64) values from a table using direct addressing . Why was 0xA000 shifted to the right by 6 bits? When you use direct addressing with the data page, the DSP determines the address as follows: A31:22 = 0, A21:6 = DP15:0, A(5:0) = 6 bits supplied by the direct addressing instruction. See below. A31:22 A21:6 A5:0 0 Data Page Register 15:0 6 bits from instruction Note that in the case of the instruction "MOV AL,@N2", the effective address is: 0xA001 where A31:22 = all zeros by default, A21:6 are 00 0000 1010 0000 00 from the DP reg and A5:0 = 00 0001 which is obtained from the actual instruction (direct addressing mode) ...
View Full Document
- Spring '09