ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب RISC-V Assembly Language Programming: Unlock the Power of the RISC-V Instruction Set

دانلود کتاب برنامه نویسی زبان اسمبلی RISC-V: قدرت مجموعه دستورالعمل RISC-V را باز کنید

RISC-V Assembly Language Programming: Unlock the Power of the RISC-V Instruction Set

مشخصات کتاب

RISC-V Assembly Language Programming: Unlock the Power of the RISC-V Instruction Set

ویرایش: 1 
نویسندگان:   
سری: Maker Innovations Series 
ISBN (شابک) : 9798868801365, 9798868801372 
ناشر: Apress 
سال نشر: 2024 
تعداد صفحات: 0 
زبان: English 
فرمت فایل : EPUB (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 5 مگابایت 

قیمت کتاب (تومان) : 83,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 3


در صورت تبدیل فایل کتاب RISC-V Assembly Language Programming: Unlock the Power of the RISC-V Instruction Set به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب برنامه نویسی زبان اسمبلی RISC-V: قدرت مجموعه دستورالعمل RISC-V را باز کنید نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی درمورد کتاب به خارجی



فهرست مطالب

Table of Contents
About the Author
About the Technical Reviewer
Acknowledgments
Introduction
Chapter 1: Getting Started
	History and Evolution of the RISC-V CPU
	What You Will Learn
	Ten Reasons to Learn Assembly Language Programming
	Running Programs on RISC-V Systems
	Coding a Simple “Hello World” Program
		Hello World on the Starfive Visionfive 2
		Programming Hello World in the QEMU Emulator
			Install QEMU on Windows
			Install QEMU on Linux
			Compiling in Emulated Linux
		About Hello World on the ESP32-C3 Microcontroller
	Summary
	Exercises
Chapter 2: Loading and Adding
	Computers and Numbers
	Negative Numbers
		About Two’s Complement
	RISC-V Assembly Instructions
		CPU Registers
		RISC-V Instruction Format
	About the GCC Assembler
	Adding Registers
	32-bits in a 64-bit World
	Moving Registers
		About Pseudoinstructions
	About Immediate Values
	Loading the Top
	Shifting the Bits
		Loading Larger Numbers into Registers
		More Shift Instructions
	About Subtraction
	Summary
	Exercises
Chapter 3: Tooling Up
	GNU Make
		Rebuild a Project
		Rule for Building .S files
		Define Variables
	Build with CMake
	Debugging with GDB
		Preparation to Debug
		Setup for Linux
			Start GDB
		Set Up gdb for the ESP32-C3
		Debugging with GDB
	Summary
	Exercises
Chapter 4: Controlling Program Flow
	Creating Unconditional Jumps
	Understanding Conditional Branches
		Using Branch Pseudoinstructions
	Constructing Loops
		Create FOR Loops
		Code While Loops
	Coding If/Then/Else
	Manipulating Logical Operators
		Using AND
		Using XOR
		Using OR
	Adopting Design Patterns
	Converting Integers to ASCII
		Using Expressions in Immediate Constants
		Storing a Register to Memory
		Why Not Print in Decimal?
	Performance of Branch Instructions
	Using Comparison Instructions
	Summary
	Exercises
Chapter 5: Thanks for the Memories
	Defining Memory Contents
		Aligning Data
	About Program Sections
	Big vs. Little Endian
		Pros of Little Endian
	About Memory Addresses
	Loading a Register with an Address
		PC Relative Addressing
	Loading Data from Memory
	Combining Loading Addresses and Memory
	Storing a Register
	Optimizing Through Relaxing
	Converting to Uppercase
	Summary
	Exercises
Chapter 6: Functions and the Stack
	About Stacks
	Jump and Link
	Nesting Function Calls
	Function Parameters and Return Values
	Managing the Registers
	Summary of the Function Call Algorithm
	Uppercase Revisited
	Stack Frames
		Stack Frame Example
			Defining Symbols
	Macros
		Include Directive
		Macro Definition
		Labels
		Why Macros?
		Using Macros to Improve Code
	Summary
	Exercises
Chapter 7: Linux Operating System Services
	So Many Services
	Calling Convention
		Finding Linux System Call Numbers
		Return Codes
		Structures
	About Wrappers
	Converting a File to Uppercase
		Building .S Files
		Opening a File
		Error Checking
		Looping
	Summary
	Exercises
Chapter 8: Programming GPIO Pins
	GPIO Overview
	In Linux, Everything is a File
	Flashing LEDs
	Moving Closer to the Metal
	Virtual Memory
	In Devices, Everything is Memory
	Registers in Bits
		GPIO Enable Registers
		GPIO Output Set Registers
	More Flashing LEDs
		GPIOTurnOn in Detail
		Root Access
	Summary
	Exercises
Chapter 9: Interacting with C and Python
	Calling C Routines
		Printing Debug Information
			Preserving State
			Calling Printf
			Passing a String
		Register Masking Revisited
	Calling Assembly Routines from C
	Packaging the Code
		Static Library
		Shared Library
	Embedding Assembly Language Code inside C Code
	Calling Assembly from Python
	Summary
	Exercises
Chapter 10: Multiply and Divide
	Multiplication
		Examples
	Division
		Division by Zero and Overflow
		Example
	Example: Matrix Multiplication
		Vectors and Matrices
		Multiplying 3x3 Integer Matrices
			Accessing Matrix Elements
			Register Usage
	Summary
	Exercises
Chapter 11: Floating-Point Operations
	About Floating Point Numbers
		About Normalization and NaNs
		Recognizing Rounding Errors
	Defining Floating Point Numbers
	About Floating Point Registers
		The Status and Control Register
	Defining the Function Call Protocol
	Loading and Saving FPU Registers
	Performing Basic Arithmetic
	Calculating Distance Between Points
	Performing Floating-Point Conversions
		Floating-Point Sign Injection
	Comparing Floating-Point Numbers
		Example
	Summary
	Exercises
Chapter 12: Optimizing Code
	Optimizing the Uppercase Routine
		Simplifying the Range Comparison
		Restricting the Problem Domain
	Tips for Optimizing Code
		Avoiding Branch Instructions
		Moving Code Out of Loops
		Avoiding Expensive Instructions
		Use Macros
		Loop Unrolling
		Delay Preserving Registers in Functions
		Keeping Data Small
		Beware of Overheating
	Summary
	Exercises
Chapter 13: Reading and Understanding Code
	Browsing Linux & GCC Code
		Comparing Strings
			About the Algorithm
			Macros and Kernel Options
	Code Created by GCC
	Reverse Engineering and Ghidra
	Summary
	Exercises
Chapter 14: Hacking Code
	Buffer Overrun Hack
	Causes of Buffer Overrun
	Stealing Credit Card Numbers
		Stepping Through the Stack
	Mitigating Buffer Overrun Vulnerabilities
		Do Not Use strcpy
		PIE Is Good
		Poor Stack Canaries Are the First to Go
		Preventing Code Running on the Stack
	Tradeoffs of Buffer Overflow Mitigation Techniques
	Summary
	Exercises
Appendix A: The RISC-V Instruction Set
	RV32I Base Integer Instruction Set
	RV64I Base Integer Instruction Set—in Addition to RV32I
	RV32M Standard Extension
	RV64M Standard Extension—in Addition to RV32M
	RV32F Standard Extension
	RV64F Standard Extension—in Addition to RV32F
	RV32D Standard Extension
	RV64D Standard Extension—in Addition to RV32D
Appendix B: Binary Formats
	Integers
	Floating Point
	Addresses
Appendix C: Assembler Directives
Appendix D: ASCII Character Set
Appendix E: Answers to Exercises
	Chapter 2
	Chapter 3
	Chapter 5
	Chapter 6
	Chapter 8
	Chapter 10
	Chapter 12
Index




نظرات کاربران