- عنوان کتاب: Introduction to Computer Organization – An under-the-hood look at hardware and ARM A64 assembly
- نویسنده: Robert G. Plantz
- حوزه: معماری کامپیوتر, زبان اسمبلی ARM, معماری سخت افزار
- سال انتشار: 2022
- تعداد صفحه: 520
- زبان اصلی: انگلیسی
- نوع فایل: pdf
- حجم فایل: 5.27 مگابایت
این کتاب مفاهیم نحوه عملکرد سخت افزار کامپیوتر را از دیدگاه یک برنامه نویس معرفی می کند. سخت افزار توسط مجموعه ای از دستورالعمل های ماشین کنترل می شود. روشی که این دستورالعمل ها سخت افزار را کنترل می کنند معماری مجموعه دستورالعمل (ISA) نامیده می شود. وظیفه یک برنامه نویس طراحی دنباله ای از این دستورالعمل ها است که باعث می شود سخت افزار عملیاتی را برای حل یک مشکل انجام دهد. تقریباً تمام برنامه های کامپیوتری به زبان سطح بالا نوشته می شوند. برخی از این زبان ها همه منظوره هستند و برخی دیگر برای کاربردهای خاص طراحی شده اند. اما همه آنها در نظر گرفته شده اند تا مجموعه ای از ساختارهای برنامه نویسی را برای برنامه نویس فراهم کنند که برای حل مسائل از نظر انسانی مناسب تر از کار مستقیم با ISA و جزئیات سخت افزار است. آیا تا به حال به این فکر کرده اید که وقتی برنامه ای را به زبان سطح بالا می نویسید، “زیر سرپوش” چه می گذرد؟ می دانید که رایانه ها را می توان برای تصمیم گیری برنامه ریزی کرد، اما چگونه این کار را انجام می دهند؟ احتمالاً می دانید که داده ها در بیت ها ذخیره می شوند، اما هنگام ذخیره یک عدد اعشاری به چه معناست؟ هدف من در این کتاب پاسخ به این سؤالات و بسیاری از سؤالات دیگر در مورد نحوه کار رایانه است. ما به اجزای سخت افزاری و دستورالعمل های سطح ماشین مورد استفاده برای کنترل سخت افزار نگاه خواهیم کرد. من فرض می کنم که شما اصول برنامه نویسی در یک زبان سطح بالا را می دانید، اما نیازی نیست که یک برنامه نویس خبره باشید. پس از بحث در مورد اجزای سختافزار، برنامههای زیادی را به زبان اسمبلی، زبانی که مستقیماً به دستورالعملهای ماشین ترجمه میشود، بررسی کرده و مینویسیم. نوشتن به زبان اسمبلی فرآیندی خسته کننده، مستعد خطا و زمان بر است، بنابراین تا حد امکان باید از آن اجتناب کرد. بهترین زبان برای اکثر پروژه های برنامه نویسی در Raspberry Pi پایتون است که با Raspberry OS موجود است و از پروژه های الکترونیکی پشتیبانی عالی دارد. پایتون در جدا کردن ما از خستگی نوشتن در زبان اسمبلی بسیار خوب است. با این حال، هدف ما در اینجا مطالعه مفاهیم برنامه نویسی است، نه ایجاد برنامه های کاربردی، بنابراین ما عمدتا از C به عنوان زبان سطح بالای خود استفاده خواهیم کرد.
This book introduces the concepts of how computer hardware works from a programmer’s point of view. The hardware is controlled by a set of machine instructions. The way these instructions control the hardware is called the instruction set architecture (ISA). A programmer’s job is to design a sequence of these instructions that causes the hardware to perform operations to solve a problem. Nearly all computer programs are written in a high-level language. Some of these languages are general-purpose, and others are geared toward specific applications. But they are all intended to provide a programmer with a set of programming constructs more suitable for solving problems in human terms than working directly with the ISA and the details of the hardware. Have you ever wondered what’s going on “under the hood” when you write a program in a high-level language? You know that computers can be programmed to make decisions, but how do they do that? You probably know that data is stored in bits, but what does that mean when storing a decimal number? My goal in this book is to answer these and many other questions about how computers work. We’ll be looking at both the hardware components and the machine-level instructions used to control the hardware. I’ll assume that you know the basics of how to program in a high-level language, but you don’t need to be an expert programmer. After discussing the hardware components, we’ll look at and write lots of programs in assembly language, the language that translates directly into machine instructions. Writing in assembly language is a tedious, error-prone, time-consuming process, so it should be avoided whenever possible. The best language for most programming projects on a Raspberry Pi is Python, which is included with Raspberry Pi OS and has excellent support for electronics projects. Python is very good at isolating us from the tedium of writing in assembly language. However, our goal here is to study programming concepts, not to create applications, so we’ll mainly be using C as our high-level language.
این کتاب را میتوانید از لینک زیر بصورت رایگان دانلود کنید:
Download: Introduction to Computer Organization
نظرات کاربران