# What does address like 0xABCD_EFGH means in a memory map?

What does an address like 0xABCD_EFGH means in a memory map?

I am new to programming microcontrollers, so please excuse me if its a bit lame.

What does one mean by "123 Data Input Registers (GPDI0_3–GPDI120_123)"?

• what controller? What datasheet? Commented Jul 12, 2011 at 14:01
• Is oxABCD_EFGH something that is actually in your code or just a random example that you came up with? G and H are not hex letters. Commented Jul 12, 2011 at 14:25
• Just a note, that's 124 registers, not 123. Commented Jul 13, 2011 at 2:45
• Sorry , i am new to stackexchange , here are the page, the999pages.com/temp_save/page220_mpc5604B.jpg the999pages.com/temp_save/page270_mpc5604B.jpg (the first base address says 0xC3F9_0000 , there are a few more in other pages. ) I thought it as a general representation . i was looking at MPC5604B/C Commented Jul 15, 2011 at 18:04

0x is a prefix used to identify hexadecimal (base 16) numbers. the hexadecimal notation uses the digits 0-9 and the letters A-F to represent the 16 values 0-15, the equivalent of 4 binary digits (bits) or a half byte (nibble). Your example 0xABCD_EFGH uses G and H which are invalid hex digits - perhaps the letters are intended only as placeholders.

123 Data Input Registers (GPDI0_3-GPDI120_123) I guess GPDI is acronym for General Purpose Data Input register. the 32-bit wide registers are made by concatenating four, 8-bit wide registers the suffix 0_3 tells us that the first GPDI register (no. 0) is comprised of the 8-bit wide registers numbered 0,1,2,3 the suffix 120_123 tells us that the last GPDI register (no. 30) is comprised of the 8-bit wide registers numbered 120,121,122,123 I expect 123 is a typo as there are thirty-one 32-bit wide registers numbered 0 to 30, 31*4 = 124.

I would interpret "(GPDI0_3–GPDI120_123)" as referring to 31 groups of signals or registers: the first being GPDI0 through GPDI3, the second being GPDI4 through GPDI7, the third GPDI8-GPDI11, etc. up to the last two being GPDI116-119 and GPDI120-GPDI123. Note that that would be 124 signals total, not 123.

In a 32-bit device, it would be common to have groups of four single-byte registers which could either be accessed individually as bytes, or as a group (32-bit word). The manufacturer probably suggests GPDI0_3 as a symbolic name for the 32-bit word comprising the first four registers, GPDI4_7 for the 32-bit word the next four, etc.

The "0x" prefix is C notation to indicate a hexadecimal value follows. Unfortunately that has caught on in the larger world outside C. The underscore shows this is not in C code, but nonetheless is clearly showing a hexadecimal value. Since you mention memory map, this value is probably the memory address of something the memory map is trying to show. They apparently inserted the underscore to make the number a bit more readable. It is a 32 bit value (as can be seen from the 8 hex digits), and the underscore visually separates the high and low 16 bit words of the 32 bit value.

As for the data input registers, that is specific to your particular chip, which you failed to identify. Didn't is occur to you this might be relevant information?

• Your last paragraph would be better as a comment. Commented Jul 12, 2011 at 14:26