Help Programming ARM7TDMI-S in Assembly

Click For Summary
SUMMARY

The discussion focuses on programming the ARM7TDMI-S processor in assembly language, with participants recommending various resources and tools. Key suggestions include the ARM7TDMI-S Technical Reference Manual and textbooks such as "ARM System Developers Guide" and "ARM Architecture Reference Manual (2nd ed.)". For development boards, the NXP LPC2300 is highlighted as a suitable option. Additionally, Ghidra is mentioned as a valuable tool for reverse engineering ROMs into assembly code.

PREREQUISITES
  • Familiarity with assembly language concepts
  • Basic understanding of ARM architecture
  • Experience with reverse engineering tools, specifically Ghidra
  • Knowledge of embedded systems programming
NEXT STEPS
  • Research the ARM7TDMI-S Instruction Set Reference for detailed instruction information
  • Explore online courses on ARM assembly programming from accredited institutions
  • Investigate the NXP LPC2300 development board and its capabilities
  • Learn about embedded systems concepts, including RTOS and interrupts
USEFUL FOR

This discussion is beneficial for aspiring embedded systems developers, reverse engineers, and anyone interested in programming the ARM7TDMI-S processor in assembly language.

JohnSmith0909
Messages
14
Reaction score
1
Hello friends,

I'm looking to program the ARM7TDMI-S in assembly. Can anyone recommend any good development boards? Can anyone recommend an IDE? Can anyone recommend a textbook that would be good for leaning how to program this processor in Assembly? I know various other programming languages but have never learned ARM assembly.

Thanks and let me know.
 
Last edited:
Computer science news on Phys.org
I'd recommend checking out ARM's website.
 
The ARM7 architecture is nearly 30 years old so I think you are going to struggle finding usable resources for it. Why are you interested in this? Do you have any assembly language experience? Do you have any RISC assembly language experience?
 
Hey thanks. I'm interested in it because it was the cpu used in the Nintendo Gameboy advance. I'd like to learn reverse engineering of games on it and just programming it in general. I've been using Ghidrea to break down the ROMs to raw assembly code and trying to understand them but it's so many functions.
.I don't have any Arm assembly experience. So I was hoping somebody could recommend like a good textbook on this as well as a development board?

I do have knowledge of other programming languages but not assembly.
 
JohnSmith0909 said:
I don't have any Arm assembly experience.
Following up on @pbuk's question, do you have an assembly programming experience? It's quite different from programming in higher-level languages.

There aren't a lot of textbooks on ARM programming out there, but I found a website (http://www.davespace.co.uk/arm/introduction-to-arm/books.html) that lists three resources
  • ARM System Developers Guide
  • ARM System-on-Chip Architecture (2nd ed.)
  • ARM Architecture Reference Manual (2nd ed.)
 
JohnSmith0909 said:
I've been using Ghidrea to break down the ROMs to raw assembly code and trying to understand them but it's so many functions.
Once you get an assembly language listing, are you able to follow what different blocks of the code are doing? Can you work out excactly whate each instruction does?
Have you got a copy of the Instruction Set Reference? It contains all the detail you need.
https://www.ecs.csun.edu/~smirzaei/docs/ece425/arm7tdmi_instruction_set_reference.pdf
 
  • Like
Likes   Reactions: sysprog
Hello friends, I am able to figure out what different pieces of code are doing. Is anyone able to point me towards perhaps a fully online class on ARM assembly from a college or university that I can take?
 
  • #10
YoshiMoshi said:
Hello friends, I am able to figure out what different pieces of code are doing. Is anyone able to point me towards perhaps a fully online class on ARM assembly from a college or university that I can take?

Regarding the developer's kit, it should be something built around a good microcontroller, e.g. the NXP LPC2300 (link is to a Power Point Presentation pdf).

Perhaps also check out hitex.com ##-## you could start here: Hitex Indsider's Guide (pdf) to the LPC2300 microcontroller). Hitex offers free webinars and priced training courses, mostly in German, but some in English.

You can learn a lot about embedded systems ##-## RTOS, interrupts, etc. ##-## while doing all of your coding in C language; however, your ambitious reverse engineering project will require strong assembly language skills . . .
 

Similar threads

  • · Replies 102 ·
4
Replies
102
Views
2K
  • · Replies 16 ·
Replies
16
Views
4K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 9 ·
Replies
9
Views
11K
  • · Replies 10 ·
Replies
10
Views
807
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 10 ·
Replies
10
Views
3K
Replies
16
Views
4K
Replies
7
Views
3K
  • · Replies 4 ·
Replies
4
Views
18K