ورود به حساب

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

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

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

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

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

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


09117307688
09117179751

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

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

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

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

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

پشتیبانی

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

دانلود کتاب RASPBERRY PI ASSEMBLY LANGUAGE PROGRAMMING: arm processor coding

دانلود کتاب برنامه نویسی زبان Raspberry PI ASSEMBLY: رمزگذاری پردازنده بازو

RASPBERRY PI ASSEMBLY LANGUAGE PROGRAMMING: arm processor coding

مشخصات کتاب

RASPBERRY PI ASSEMBLY LANGUAGE PROGRAMMING: arm processor coding

ویرایش:  
نویسندگان:   
سری:  
ISBN (شابک) : 9781484252864, 1484252861 
ناشر: Apress 
سال نشر: 2019;2020 
تعداد صفحات: 380 
زبان: English 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 4 مگابایت 

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



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

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


در صورت تبدیل فایل کتاب RASPBERRY PI ASSEMBLY LANGUAGE PROGRAMMING: arm processor coding به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب برنامه نویسی زبان Raspberry PI ASSEMBLY: رمزگذاری پردازنده بازو نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی در مورد کتاب برنامه نویسی زبان Raspberry PI ASSEMBLY: رمزگذاری پردازنده بازو

تمام مهارت های مورد نیاز برای فرو رفتن در اصول معماری سخت افزاری Raspberry Pi و نحوه ذخیره داده ها در حافظه Pi را به دست آورید. این کتاب همزمان با توسعه دانش برنامه‌نویسی زبان اسمبلی در Raspberry Pi، نقاط شروع کار برای پروژه‌های خود را در اختیار شما قرار می‌دهد.
شما یاد خواهید گرفت که چگونه با سخت‌افزار Pi از جمله دسترسی به پورت‌های GPIO ارتباط برقرار کنید. این کتاب اصول اولیه بهینه‌سازی کد و همچنین نحوه تعامل با کدهای C و Python را پوشش می‌دهد، بنابراین شما پس‌زمینه کافی برای استفاده از اسناد مرجع رسمی ARM برای پروژه‌های بعدی ایجاد خواهید کرد. بابرنامه‌نویسی زبان Raspberry Pi Assemblyبه‌عنوان راهنمای خود، نحوه خواندن و مهندسی معکوس کد ماشین را مطالعه می‌کنید و سپس آن مهارت‌های جدید را برای مطالعه نمونه‌های کد و کنترل سخت‌افزار و نرم‌افزار Pi خود به کار می‌گیرید.

آنچه یاد خواهید گرفت


زبان اسمبلی 32 بیتی ARM اولیه


رابط با دستگاه های سخت افزاری مختلف در Raspberry Pi


درک کد حاوی زبان اسمبلی


استفاده از اسناد مرجع رسمی ARM








این کتاب برای چه کسی است
< br /> کدنویسانی که قبلا برنامه نویسی به زبان های سطح بالاتری مانند پایتون، جاوا، سی شارپ یا سی را یاد گرفته اند و اکنون مایل به یادگیری برنامه نویسی اسمبلی هستند.


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

Gain all the skills required to dive into the fundamentals of the Raspberry Pi hardware architecture and how data is stored in the Pi's memory. This book provides you with working starting points for your own projects while you develop a working knowledge of Assembly language programming on the Raspberry Pi.
You'll learn how to interface to the Pi's hardware including accessing the GPIO ports. The book will cover the basics of code optimization as well as how to inter-operate with C and Python code, so you'll develop enough background to use the official ARM reference documentation for further projects. WithRaspberry Pi Assembly Language Programmingas your guide you'll study how to read and reverse engineer machine code and then then apply those new skills to study code examples and take control of your Pi's hardware and software both.

What You'll Learn


Program basic ARM 32-Bit Assembly Language


Interface with the various hardware devices on the Raspberry Pi


Comprehend code containing Assembly language


Use the official ARM reference documentation








Who This Book Is For

Coders who have already learned to program in a higher-level language like Python, Java, C#, or C and now wish to learn Assembly programming.



فهرست مطالب

Table of Contents......Page 5
About the Author......Page 14
About the Technical Reviewer......Page 15
Acknowledgments......Page 16
Introduction......Page 17
Chapter 1: Getting Started......Page 19
About the ARM Processor......Page 20
What You Will Learn......Page 21
Why Use Assembly......Page 22
Tools You Need......Page 25
Computers and Numbers......Page 26
ARM Assembly Instructions......Page 29
CPU Registers......Page 30
ARM Instruction Format......Page 31
Raspberry Pi Memory......Page 33
About the GCC Assembler......Page 34
Hello World......Page 35
Where to Start......Page 38
Assembly Instructions......Page 39
Calling Linux......Page 40
Reverse Engineering Our Program......Page 41
Summary......Page 44
About Two’s Complement......Page 45
About Gnome Programmer’s Calculator......Page 47
Big vs. Little-endian......Page 48
Pros of Little-endian......Page 50
About Carry Flag......Page 51
About the Barrel Shifter......Page 52
Rotate Right......Page 53
About MOVT......Page 54
The Dreaded Flexible Operand2......Page 55
Small Number and Rotation......Page 56
MVN......Page 58
MOV Examples......Page 59
ADD/ADC......Page 63
Add with Carry......Page 65
Summary......Page 69
GNU Make......Page 70
A Rule for Building .s files......Page 71
Defining Variables......Page 72
Preparing to Debug......Page 73
Beginning GDB......Page 75
Git......Page 80
Jenkins......Page 81
Summary......Page 82
Unconditional Branch......Page 83
About the CPSR......Page 84
Branch on Condition......Page 86
Loops......Page 87
FOR Loops......Page 88
While Loops......Page 89
If/Then/Else......Page 90
AND......Page 91
BIC......Page 92
Design Patterns......Page 93
Converting Integers to ASCII......Page 94
Storing a Register to Memory......Page 98
Performance of Branch Instructions......Page 99
More Comparison Instructions......Page 100
Summary......Page 101
Chapter 5: Thanks for the  Memories......Page 102
Defining Memory Contents......Page 103
PC Relative Addressing......Page 107
Loading from Memory......Page 110
Indexing Through Memory......Page 111
Write Back......Page 114
Converting to Uppercase......Page 115
Storing a Register......Page 122
Summary......Page 123
Chapter 6: Functions and the  Stack......Page 124
Stacks on Raspbian......Page 125
Branch with Link......Page 126
Nesting Function Calls......Page 127
Managing the Registers......Page 129
Summary of the Function Call Algorithm......Page 130
Uppercase Revisited......Page 131
Stack Frames......Page 136
Stack Frame Example......Page 138
One More Optimization......Page 139
Macros......Page 140
Macro Definition......Page 143
Why Macros?......Page 144
Summary......Page 145
So Many Services......Page 146
Calling Convention......Page 147
Structures......Page 148
Wrappers......Page 149
Converting a File to Uppercase......Page 150
Error Checking......Page 155
Looping......Page 157
Summary......Page 158
GPIO Overview......Page 159
In Linux, Everything Is a File......Page 160
Flashing LEDs......Page 162
Moving Closer to the Metal......Page 166
Virtual Memory......Page 167
In Devices, Everything Is Memory......Page 168
Registers in Bits......Page 169
GPIO Function Select Registers......Page 170
More Flashing LEDs......Page 172
Table Driven......Page 178
Setting Pin Direction......Page 179
Setting and Clearing Pins......Page 180
Summary......Page 181
Calling C Routines......Page 182
Printing Debug Information......Page 183
Calling Printf......Page 185
Adding with Carry Revisited......Page 186
Calling Assembly Routines from C......Page 188
Static Library......Page 191
Shared Library......Page 192
Embedding Assembly Code Inside C Code......Page 195
Calling Assembly from Python......Page 198
Summary......Page 200
Multiplication......Page 201
Examples......Page 203
Division......Page 206
Example......Page 207
Multiply and Accumulate......Page 209
Vectors and Matrices......Page 210
Accumulate Instructions......Page 211
Example 1......Page 213
Accessing Matrix Elements......Page 217
Example 2......Page 218
Summary......Page 222
Chapter 11: Floating-Point Operations......Page 223
Normalization and NaNs......Page 224
Rounding Errors......Page 225
FPU Registers......Page 226
Function Call Protocol......Page 228
Loading and Saving FPU Registers......Page 229
Basic Arithmetic......Page 230
Distance Between Points......Page 232
Floating-Point Conversions......Page 236
Floating-Point Comparison......Page 237
Example......Page 239
Summary......Page 243
Chapter 12: NEON Coprocessor......Page 245
The NEON Registers......Page 246
Stay in Your Lane......Page 248
Arithmetic Operations......Page 249
4D Vector Distance......Page 250
3x3 Matrix Multiplication......Page 255
Summary......Page 260
Chapter 13: Conditional Instructions and Optimizing Code......Page 261
Improved Pipeline......Page 262
Optimizing the Uppercase Routine......Page 263
Simplifying the Range Comparison......Page 264
Using a Conditional Instruction......Page 267
Restricting the Problem Domain......Page 268
Using Parallelism with SIMD......Page 271
Summary......Page 275
Raspbian and GCC......Page 276
Division Revisited......Page 278
Code Created by GCC......Page 282
Reverse Engineering and Ghidra......Page 286
Summary......Page 290
Chapter 15: Thumb Code......Page 291
16-Bit Instruction Format......Page 292
Calling Thumb Code......Page 293
IT Blocks......Page 295
Uppercase in Thumb-2......Page 296
Use the C Compiler......Page 303
Summary......Page 305
Ubuntu MATE......Page 306
About 64 Bits......Page 307
More and Bigger Registers......Page 308
SP and Zero Register......Page 309
Function Call Interface......Page 310
Push and Pop Are Gone......Page 311
Porting from 32 Bits to 64 Bits......Page 312
Porting Uppercase to 64 Bits......Page 313
Conditional Instructions......Page 317
Example with CSEL......Page 318
Registers......Page 320
Instructions......Page 321
Example Using NEON......Page 322
Summary......Page 324
Appendix A: The ARM Instruction Set......Page 326
Linux System Call Numbers......Page 335
Linux System Call Error Codes......Page 350
Integers......Page 355
Floating-Point......Page 356
64 Bits......Page 357
Appendix D: Assembler Directives......Page 358
Appendix E: ASCII Character Set......Page 360
References......Page 372
Index......Page 373




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