I set out to write this book because I couldn’t find it in a single volume elsewhere.
The closest published work on this topic appear to be select portions of The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 2.2[?], The RISC-V Reader[?], and Computer Organization and Design RISC-V Edition: The Hardware Software Interface[?].
There are some terse guides on the Internet that are suitable for those who already know an assembly language. With all the (deserved) excitement brewing over system organization (and the need to compress the time out of university courses targeting assembly language programming [?]), it is no surprise that RISC-V texts for the beginning assembly programmer are not (yet) available.
When I started in computing, I learned how to count in binary in a high school electronics course using data sheets for integrated circuits such as the 74191[?] and 74154[?] prior to knowing that assembly language even existed.
I learned assembly language from data sheets and texts, that are still sitting on my shelves today, such as:
All of these manuals discuss each CPU instruction in excruciating detail with both a logical and narrative description. For RISC-V this is also the case for the RISC-V Reader[?] and the Computer Organization and Design RISC-V Edition[?] books and is also present in this text (I consider that to be the minimal level of responsibility.)
Where I hope this text will differentiate itself from the existing RISC-V titles is in its attempt to address the needs of those learning assembly language for the first time. To this end I have primed this project with some of the curriculum material I created when teaching assembly language programming in the late ’80s.