Help Programming ARM7TDMI-S in Assembly

Click For Summary

Discussion Overview

The discussion revolves around programming the ARM7TDMI-S processor in assembly language. Participants seek recommendations for development boards, IDEs, textbooks, and online courses, while also sharing their experiences and challenges related to learning ARM assembly and reverse engineering.

Discussion Character

  • Exploratory
  • Technical explanation
  • Conceptual clarification
  • Homework-related

Main Points Raised

  • One participant inquires about development boards and IDEs suitable for programming the ARM7TDMI-S in assembly.
  • Another suggests checking ARM's official website for resources.
  • A recommendation is made to obtain the ARM7TDMI-S Technical Reference Manual for detailed information.
  • Concerns are raised about the availability of resources for the ARM7 architecture, which is considered outdated.
  • A participant expresses interest in the ARM7 due to its use in the Nintendo Gameboy Advance and mentions using Ghidra for reverse engineering.
  • Some participants question the original poster's experience with assembly language and suggest that it differs significantly from higher-level programming languages.
  • Several resources for ARM programming textbooks are proposed, including the ARM System Developers Guide and the ARM Architecture Reference Manual.
  • A participant shares a link to an Instruction Set Reference for the ARM7TDMI, emphasizing its importance for understanding assembly code.
  • Another participant seeks recommendations for fully online classes on ARM assembly from colleges or universities.
  • Suggestions for development kits include the NXP LPC2300 and resources from Hitex, highlighting the importance of assembly skills for reverse engineering projects.

Areas of Agreement / Disagreement

Participants express varying levels of experience with assembly language, and while some resources are suggested, there is no consensus on the best approach or materials for learning ARM assembly programming.

Contextual Notes

Some participants note the challenges of finding up-to-date resources for the ARM7 architecture and the differences in learning assembly compared to higher-level languages. The discussion reflects a range of experiences and knowledge levels among participants.

Who May Find This Useful

This discussion may be useful for individuals interested in programming the ARM7TDMI-S processor, reverse engineering, or learning assembly language, particularly those with a background in other programming languages.

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
3K
  • · Replies 16 ·
Replies
16
Views
5K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 9 ·
Replies
9
Views
11K
  • · Replies 10 ·
Replies
10
Views
937
  • · 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