I'm sure you are a lot more experienced than me
Well, no. But it's an interesting exercise.
The ST programming manual has all the details on instructions
Except that this documents the official ARM instruction syntax, and has examples using the ARM assembler syntax, and that's NOT quite what the gnu assembler actually implements. gas happily ignores manufacturer syntax in favor of something that is maximally "common" across the architectures that it supports, or is convenient to the C compiler, or something. As a minor ridiculous example, the comment character in gnu as for ARM is "@" instead of ";"
I was going batty trying to figure out how to get it to accept my blink program (from the ghetto thread) which compiled fine in Keil (official) assembler. Most of that seems to have been solved by the ".syntax unified" addition (which I'm still not sure is the correct thing for cm3/etc.) But I still have the gnu assembler generating different code than Keil for "sub r1, r1, #1" instruction, and I don't know why :-(
Here's my contribution; I edited the CMSIS stm32f10x.h file provided by ST to make it usable by the gnu assembler. This provide the base address of the various peripherals, and the various bit constants for registers, but it doesn't include the offsets of registers within a peripheral (which are implemented via structure definitions in the original. Mostly, this version replaces #define with .equiv)
Edit 6-sep: new version of .asmh file; now includes GPIO peripheral offsets and better bitvalues.
2nd edit 6-sep: defines for the RCC individual registers.
3rd edit 9-sep: create some macros to allow easier conversion from C structures for ASM offset definitions, and include most of the peripheral data structures from the .h include file.
4th edit 10-sep: new version (including a sample that assembles) attached here:
https://www.eevblog.com/forum/microcontrollers/one-dollar-one-minute-arm-development/msg511012/#msg511012