Gain the skills required to dive into the fundamentals of the RISC-V instruction set architecture. This book explains the basics of code optimization, as well as how to interoperate with C and Python code, thus providing the starting points for your own projects as you develop a working knowledge of assembly language for various RISC-V processors.
The RISC-V processor is the new open-source CPU that is quickly gaining popularity and this book serves as an introduction to assembly language programming for the processor in either 32- or 64-bit mode. You’ll see how to write assembly language programs for several single board computers, including the Starfive Visionfive 2 and the Espressif ESP32-C3 32-bit RISC-V microcontroller. The book also covers running RISC-V Linux with the QEMU emulator on and Intel/AMD based PC or laptop and all the tools required to do so.
Moving on, you’ll examine the basics of the RISC-V hardware architecture, all the groups of RISC-V assembly language instructions and understand how data is stored in the computer’s memory. In addition, you’ll learn how to interface to hardware such as GPIO ports. With RISC-V Assembly Language Programming you’ll develop enough background to use the official RISC-V reference documentation for your own projects.
What You’ll Learn
- Program basic RISC-V Assembly Language
- See how data is represented and stored in a RISC-V based computer
- Make operating system calls from Assembly Language and include other software libraries in projects
- Interface to various hardware devices
- Comprehend code containing Assembly Language
- Reverse engineer and hack code
- Use the official RISC-V reference documentation
Who This Book Is For
Those who have already learned to program in a higher-level language like Python, Java, C# or even C and now wish to learn Assembly Language programming.
Tabela de Conteúdo
Chapter 1: Getting Started. – Chapter 2: Loading and Adding. – Chapter 3: Tooling Up. – Chapter 4: Controlling Program Flow. – Chapter 5: Thanks for the Memories. – Chapter 6: Functions and the Stack. – Chapter 7: Linux Operating System Services. – Chapter 8: Programming GPIO Pins. – Chapter 9: Interacting with C & Python. – Chapter 10: Multiply and Divide. – Chapter 11: Floating-Point Operations. – Chapter 12: Optimizing Code. – Chapter 13: Reading and Understanding Code. – Chapter 14: Hacking Code. – Appendix A: The RISC-V Instruction Set. – Appendix B: Binary Formats. – Appendix C: Assembler Directives. – Appendix D: ASCII Character Set. – Appendix E: Answers to Exercises.