Page 1 of 2

ARM(StrongArm) assembler resources(for PocketSX(fpse(PSX Emu

PostPosted: Jun 16, 2002 @ 4:58am
by Jadam

ARM assembly language -v- Intel

PostPosted: Jun 16, 2002 @ 8:27am
by Conan
There's not much point in buying an Intel assembly language book to help with learning assembly language for ARM. Though many concepts are the same there's too big a difference for the Intel book to be worth it's money. It's not like buying a VC6++ book to help with eVC++ 3 where so much is similar.

Here's a site I found for you. It has all the basics


I'm looking at the assembly language in PocketGL as I write this ( it's my first look at ARM assembler ). Many of the instructions are the same as you would find in any online assembly article ( add mov sub bne ). Other than the ARM assembly docs which will give you info on the commands & registers you need to know about the memory locations on the hardware some of which you can get from existing ARM coders.

The really good news is that assembler is miles easier to understand than C++ as there's no complex contrived syntax to worry about. You do need to document much more. I document every single line of assembly.

(I am one of the small band of people on PocketMatrix who have been writing games for 20 years or more so I've written more assembly language than most people ever will mostly for Motorola & Intel chips)

PostPosted: Jun 16, 2002 @ 3:45pm
by James S

PostPosted: Jun 16, 2002 @ 5:00pm
by R0B

PostPosted: Jun 16, 2002 @ 5:15pm
by Jadam

PostPosted: Jun 16, 2002 @ 6:27pm
by billcow
Since the ARM processor is used in the Gameboy Advanced, just about any GBA dev site will have lots of info. The two I can remember off the top of my head are and . These both have lots of links to other sites, and you should be able to find some stuff there.

You can also set eVC to output assembly (with the source code embedded as comments) by going to project settings/C++/Listing files and setting listing type to "Assembly with Source".

As has been mentiponed before, ASM is really simple, writing anything in it is just a matter of planning and writing verbose comments.

PostPosted: Jun 16, 2002 @ 7:51pm
by James S

PostPosted: Jun 16, 2002 @ 9:12pm
by refractor

PostPosted: Jun 16, 2002 @ 10:18pm
by Jadam

PostPosted: Jun 17, 2002 @ 9:01am
by refractor
I didn't mean to imply that your entire emulator will be in ARM, I was simply saying that the Dynarec WILL produce pure ARM code, thus to get something to produce working ARM code you must know how to write working ARM code. :)

If you want to learn MIPS or PowerPC, sure, get a MIPS or PowerPC book. If you want to learn ARM, buy a book on ARM (like the Furber book). Sheesh.

PostPosted: Jun 17, 2002 @ 9:10am
by TechMage
Refractor, you seem to know ALOT about Pocket PC programming. Why havn't I seen any applications or games from you? With your knowledge you could make some killer 3D PPC/HPC games, and make a butt load of money! :D

PostPosted: Jun 17, 2002 @ 9:20am
by T¹
I'd have to agree with Refractor's sentiments. Writing a dynamic recompiler would be a fairly ambitious project for many coders, but to do so without any knowledge of asm, let alone ARM seems just... well, brave. :)

I'm assuming that PocketSX is more an educational experience than just getting another emu out on PPC - if so, you should be considerably wiser by the project's completion :)

PostPosted: Jun 17, 2002 @ 9:56am
by refractor

PostPosted: Jun 17, 2002 @ 7:11pm
by Guest
once this emu is working correctly, im going to make a 3D RPG engine(with downloadable content(like Kyle's Quest)), then work on ... dunno but... a DreamCast emulator with a dynamic recompiler for the SH4, FOR MACS ONLY!!! Emulating RISC on RISC is better than RISC on CISC. both commercial of course :), this emu is a learning experience also. The hard part will be the Recompiler part of the emulator, but it seems that there are tons of emus that have dynamic recompilers.

PostPosted: Jun 17, 2002 @ 8:10pm
by Dave
By the way about the Dynarec - I told you guys that making a ARM DynaRec could speed up the PSX emulator.

However I've realised something since, it might not be the cpu emulation which is slowing it down, it could be the matrix coprocessor. PSX has a matrix coprocessor I think which may use floating point operations.

Now a 400 mhz Pentium processor natively has a floating point coprocessor, but the equavalent ARM processor doesn't does it? That could be the reason for the massive slowdown that was reported for 3D games (notice it's very suspicous that 2D games which don't use the Matrix calculator are faster on ARM...)

Just thought I'd better warn you - profile the code, see what it really slowing down before you assume it's definitely the cpu emulation which needs a DynaRec...