Request for ARM Assembly (32 bit) Track

As I have seen no one else has requested an ARM Assembly track yet. I want to request one and I would be willing to contribute to it so it gets created and updated.
I would be happy about any feedback.

Tracks are volunteer ran. Exercism staff doesn’t build them so … is this an open request for volunteers? Are you interested in building and maintaining it? We already have a RISC assembly track; would adding ARM on top of MIPS add much?

I was following the guide in the exercism docs which says that I need to file a request if I want a language to be added. And yes I want to maintain and build it up. I don’t really have a good answers for your last question but I think it would be nice to have another RISC assembly language available.

My personal idea is to instead of doing a 32-bit track would be to continue working on the 64-bit. Since it feels like there isn’t a huge difference between 32 and 64 and more and more stuff will be created with 64-bit in mind. And someone has already started on 64-bit: exercism/arm64-assembly: Exercism exercises in ARM64 Assembly. (

Both could exist next to each other. In my opinion arm32 is easier to learn for beginners. And with that we have more options available.
But sure continueing arm64 is more towards the future. On the other hand there are also older programming languages available so I don’t see a problem having arm32 available aswell

Do you have a sense for how different the two languages are? If they’re 90% the same, is it worth the work to build a second track?

Atleast the register addressing is different and the conventions about the usage of the registers aswell. Just to name some. I’d say they might be 75% equally or so. I was also thinking about arm because it is more popular than mips and you can use it for programming on a raspberry pi for example.

And as I said before I would volunteer to build the course.

Do you have a sense for how different the two languages are?

I think the biggest difference (for instructional purposes) is how they pass control between subroutines. The older ISA’s convention of pairing BL <address> with BX LR will not assemble in 64-bit ARM, which instead has a ret instruction similar to Intel x86.

A student can’t go far without writing subroutines, so the topic of branching would have to be covered in substantially different, mutually exclusive ways.

32-bit ARM does have the advantage of being better documented, by virtue of being around for longer.

1 Like

Just to bring in another point ARM is being used on more devices than MIPS as far as I know.

My suggest would be that we could open up a track for arm32 assembly and I would take over the maintenance for it. Maybe with someone else if we find another volunteer.

I’d like to know about how we could move on.

We’ll need to create the track repo (might take a little time) and add you as a maintainer. That will set you up to start building the track. In the meantime, I would start reading the New track docs.

Thanks for your reply. Alright good to know. I already started looking at it few days ago.

@ChrisBoerner Thanks for taking this on. Katrina’s currently offline for a couple of weeks and owns the bootstrapping magic, so it’s taking a little longer than normal, sorry.

@kytrinyx Could you bootstrap this when you’re back online pls if you’ve not already seen this.

@iHiD Thanks for the information. You guys don’t have to rush it. I’m quite patient.