I would really appreciate if some one could tell me how to initiate jump
tables for gnu arm assembler. I have written the below code at the end
of my .s file. I have tried all sorts of things (using .align, .p2align,
.long etc) but i can't get the _input_case_table to get the 4 byte
addresses for str_help and str_sum. Assuming input starts at 0x100e4
memory in the debugger, I have reproduced the 32 byte memory location
following it.
1 | /*
|
2 | * --- Data follows ---
|
3 | */
|
4 |
|
5 |
|
6 | /* Let's pretend this command was entered by the user */
|
7 | input: .ascii "sum"
|
8 | .byte 0, 0, 0, 0, 0
|
9 |
|
10 | str_help:
|
11 | .ascii "HELP"
|
12 | .byte 0, 0, 0, 0
|
13 | str_sum:
|
14 | .ascii "SUM"
|
15 | .byte 0, 0, 0
|
16 |
|
17 | /* Recognized commands */
|
18 | _input_case_table:
|
19 | .word str_sum
|
20 | .word str_help
|
---------_GDB_MEMORY_OUTPUT-------------------
Attached in file
I am using the gcc-4.6-linux-arm-gnueabi compiler tool chain. Using
gdb-multiarch with architecture set to armv4.
I am still new to this so any guidance would be much appreciated.
To reiterate my question, im tyring to compile code for armv4 32bit
processor mode. I know how alignment and 'DCD' statements work but for
Keil Development tools only. I would really appreciate if some one could
point me how to do the using the GNU assembler.