Category talk:ARM Assembly

From Rosetta Code

Bonjour. Absent depuis plusieurs mois, je reviens sur ce site qui a bien évolué. Je ne trouve plus le liens qui donnaint les tâches non encore programmées dans un langage. Quelqu'un peut-il me dire où ce trouve ce lien maintenant. Merci

Hello Absent for several months, I return to this site which has evolved. I can no longer find the link giving the tasks not yet scheduled in a language. Can someone tell me where this link is now. THANKS

The unimplemented page had not yet been recreated after the server move. It has been now. Tasks not implemented in ARM Assembly --Thundergnat (talk) 14:16, 31 March 2023 (UTC)

OK thanks


I bought an 'Archimedes A440' soon after they became available. I have an assortment of Acorn produced computers and have an A5000 with RISC OS 3.10 with C Release 4. Also a RISC-PC StrongARM SA-110 microprocessor produced by Digital. The original microprocessors VL86C010 and VL86C020 produced by VLSI for Acorn were very simple in comparison to the Cortex chips now on the market. I suspect that some code produced for the early chips would fail on the later chips.

As the Cortex chips were progressively developed, the original 24/32 bit addressing became entirely 32 bit then extended further to 64 bit. That was only possible by changing the meaning of some of the bits in an instruction that were considered unnecessary (eg the condition to NV = NeVer execute the instruction). My personal opinion is that some useful instructions have been abandoned along the way.

Consistent is that the programmer can see 16 registers numbered R0 to R15. R15 is the PC (Program Counter). There is not a RTS (Return from Subroutine) instruction, instead typically a MOVS PC, R14 (Acorn often used an ORRS PC, R14 etc instruction) is used to return to the calling point. NB R14 is the return address not R13 as stated in the text. R13 was usually assigned the meaning of a SP (Stack Pointer) but that was a convention recommended by Acorn rather than being a fundamental design of the microprocessor.

Along the way I have written a Mandelbrot program mostly in ANSI-C but with the calculation in ARM code using fixed point and a choice of 32 bits or 64 bits or 256 bits precision. It can use the MUL instruction or the UMULL if it detects that it is running on a suitable ARM microprocessor.

I also wrote an interrupt code fragment when my Caps Lock stopped working.

--BlueWren (talk) 17:27, 29 September 2023 (UTC)