لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش ARM Assembly Language From Ground Up‚Ñ¢ 1 [ویدئو]
ARM Assembly Language From Ground Up‚Ñ¢ 1 [Video]
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
برنامهنویسی اسمبلی تعبیهشده ARM از بسیاری از دستگاههایی که روزانه استفاده میکنید پشتیبانی میکند و اگر میخواهید یک قدم جلوتر بروید و نحوه نوشتن برنامههای بیعیب، توسعه الگوریتمها و ساخت ماشینها در مونتاژ را بررسی کنید، در اینجا چیزی است که باید در نظر بگیرید.
قبل از نوشتن برنامه های مونتاژ بدون خطا برای یک پردازنده، درک معماری پردازنده بسیار مهم است. این دوره ویدیویی شما را از طریق معماری ARM راهنمایی می کند و به شما کمک می کند الگوریتم ها و ماشین های بی عیب و نقصی را در مونتاژ ARM توسعه دهید.
این دوره با مقدمه ای بر زبان اسمبلی ARM شروع می شود و شما را قادر می سازد تا ابزار اسمبلی و نحو را درک کنید. در مرحله بعد، با فلسفه طراحی ARM و معماری RISC آشنا می شوید و درک دقیقی از مجموعه دستورالعمل های ARM، مجموعه دستورالعمل های Thumb و مجموعه دستورالعمل های Thumb-2 به دست خواهید آورد. با حرکت رو به جلو، ساختارهای داده ای مانند FIFO و LIFO ایجاد می کنید و الگوریتم های پیچیده ای را برای انجام جستجوی باینری در اسمبلی طراحی می کنید. شما همچنین مشکلات ریاضی پیشرفته مانند سری تیلور و الگوریتم Bisection را حل خواهید کرد. در پایان، ماشینهای حالت محدود مانند ماشینهای Moore و Mealy را توسعه میدهید و یک دید کلی از Keil uVision 5 - راهحل توسعه نرمافزار برای کنترلکنندههای مبتنی بر ARM را خواهید داشت.
در پایان این دوره، مهارت هایی را که برای شروع حرفه خود به عنوان یک توسعه دهنده تعبیه شده ARM نیاز دارید، توسعه خواهید داد. بسته کد این دوره در https://github.com/PacktPublishing/ARM-Assembly-Language-from-Ground-Up-1 در دسترس است. درک ابزارها و نحوهای زبان اسمبلی ARM
مجموعه دستورالعمل های Thumb و Thumb-2 را با جزئیات مطالعه کنید
ایجاد ساختارهای داده و ماشین های حالت در مونتاژ
نحوه نوشتن درایورهای سخت افزاری در اسمبلی را بیابید
داده ها را از یک مکان حافظه به مکان دیگر کپی کنید
الگوریتم های بازگشتی و متقابل کد در اسمبلی اگر شما یک مبتدی در برنامه نویسی جاسازی شده یا یک برنامه نویس باتجربه هستید که می خواهید جزئیاتی در مورد معماری ARM و برنامه نویسی اسمبلی بیاموزید، این دوره برای شما مناسب است. برای شروع این دوره به هیچ تجربه برنامه نویسی نیاز نیست. تنها چیزی که نیاز دارید یک تخته STM32F4-Discovery برای برخی از دروس عملی است. با معماری ARM و برنامه نویسی اسمبلی آشنا شوید * آموزش ساخت الگوریتم های پیچیده در اسمبلی * حل مسائل ریاضی پیشرفته مانند سری تیلور و الگوریتم Bisection
سرفصل ها و درس ها
معرفی
Introduction
معرفی
Introduction
مقدمه ای بر زبان اسمبلی ARM
Introduction to the ARM Assembly Language
دستگاه محاسباتی
Computing Device
سیستم های اعداد
Number Systems
ابزار مونتاژ
Assembly Tools
ترجمه بیت ها به دستورات
Translating Bits to Commands
نحو اسمبلی
Assembly Syntax
فلسفه طراحی و معماری مجموعه آموزش کاهش یافته کامپیوتر (RISC).
Design Philosophy and Reduced Instruction Set Computer (RISC) Architecture
فلسفه طراحی کامپیوتر مجموعه دستورالعمل کاهش یافته (RISC).
The Reduced Instruction Set Computer (RISC) Design Philosophy
فلسفه طراحی ARM
The ARM Design Philosophy
سیستم های جاسازی شده با پردازنده های ARM
Embedded Systems with the ARM Processors
پروتکل گذرگاه فناوری ARM Bus و معماری گذرگاه میکروکنترلر پیشرفته (AMBA)
ARM Bus Technology and Advanced Microcontroller Bus Architecture (AMBA) Bus Protocol
حافظه
Memory
لوازم جانبی
Peripherals
فون نویمان و معماری هاروارد
Von Neumann and Harvard Architecture
حافظه کش و محکم زوج
Cache and Tightly Couple Memory
برنامه های افزودنی مدیریت حافظه
Memory Management Extensions
برنامه های افزودنی کمک پردازنده
Coprocessor Extensions
مدل برنامه نویس
The Programmer's Model
انواع داده ها
Data Types
حالت های پردازنده
Processor Modes
رجیسترهای ARM7TDMI
ARM7TDMI Registers
جدول وکتور ARM7TDMI
ARM7TDMI Vector Table
ARM Cortex-M Registers
ARM Cortex-M Registers
جدول وکتور ARM Cortex-M
ARM Cortex-M Vector Table
مدل جریان داده ARM
ARM Data Flow Model
خط لوله
The Pipeline
خانواده پردازنده های ARM
ARM Processor Family
پردازنده های ARM Cortex-A و Cortex-R
ARM Cortex-A and Cortex-R Processors
پردازنده ARM Cortex-M
ARM Cortex-M Processor
خلاصه بخش
Section Summary
قوانین و دستورالعمل های اسمبلر
Assembler Rules and Directives
ساختار یک ماژول مونتاژ
Structure of an Assembly Module
مجموعه دستورات ARM، Thumb و Thumb-2
The ARM, Thumb, and Thumb-2 Instruction Sets
نام های ثبت از پیش تعریف شده
Predefined Register Names
دستورالعمل های پرکاربرد
Frequently Used Directives
یک پروژه اسمبلی ساده با یک فایل راه اندازی ایجاد کنید
Create a Simple Assembly Project with a Startup File
اهمیت کنترل کننده بازنشانی
Importance of the Reset Handler
پروژه مونتاژ ساده بدون فایل راه اندازی
Simple Assembly Project without a Startup File
تخصیص فضا در حافظه با استفاده از دستورالعمل SPACE
Allocating Space in Memory Using the SPACE Directive
مروری بر اپراتورهای باینری
Overview of Binary Operators
کپی کردن داده ها از یک مکان حافظه به مکان دیگر
Copying Data from One Memory Location to Another
برخورد با ثابت ها و لفظ ها
Dealing with Constants and Literals
رمزگذاری دستورالعمل MOV
Encoding the MOV Instruction
طرح چرخش ARM
ARM Rotation Scheme
بارگذاری ثابت ها با استفاده از دستورالعمل LDR
Loading Constants Using the LDR Instruction
بارگذاری ثابت ها با استفاده از دستورالعمل های MOVW و MOVT.
Loading Constants Using the MOVW and MOVT Instructions.
بارگیری برچسب ها با استفاده از دستورالعمل های ADR، ADRL و LDR
Loading Labels Using the ADR, ADRL, and LDR Instructions
حل یک معادله ساده (روش 1)
Solving a Simple Equation (Method 1)
حل یک معادله ساده (روش 2) - ذخیره کردن ثابت ها در حافظه
Solving a Simple Equation (Method 2) - Storing Constants in Memory
حل یک معادله ساده (روش 3) - با استفاده از آدرس دهی نسبی ثبت نام
Solving a Simple Equation (Method 3) - Using Register Relative Addressing
حل یک معادله ساده (روش 4) - کد فشرده
Solving a Simple Equation (Method 4) - Compact Code
دستورات حساب و منطق
Arithmetic and Logic Instructions
پرچم ها
Flags
پرچم های منفی (N) و سرریز امضا شده (V).
The Negative (N) and Signed Overflow (V) Flags
پرچم صفر (Z) و حمل (C).
The Zero (Z) and Carry (C) Flags
مقایسه/دستورالعمل تست
Compare/Test Instructions
مروری بر عملیات بولی
Overview of Boolean Operations
آزمایش با پرچمهای ثبت وضعیت برنامه (PSR).
Experimenting with the Program Status Register (PSR) Flags
در حال آزمایش با Carry Flag
Experimenting with the Carry Flag
در حال آزمایش با پرچم سرریز
Experimenting with the Overflow Flag
مقدمه ای بر شیفت ها و چرخش ها
Introduction to Shifts and Rotations
درک تغییرات منطقی
Understanding Logical Shifts
درک چرخش ها
Understanding Rotations
چند مثال Shift و Rotation
Some Shift and Rotation Examples
آزمایش با دستور Logical Shift Left
Experimenting with the Logical Shift Left Instruction
مروری بر دستورالعمل های جمع و تفریق
Overview of the Addition and Subtraction Instructions
یافتن حداکثر مقدار در یک مجموعه داده
Finding the Maximum Value in a Dataset
افزودن داده های امضا شده
Adding Signed Data
یافتن حداقل داده های امضا شده
Finding the Minimum Signed Data
مروری بر دستورات حسابی اشباع
Overview of the Saturation Arithmetic Instructions
مروری بر دستورالعمل های ضرب
Overview of the Multiply Instructions
ضرب در ثابت
Multiplying by Constants
حل معادله پیچیده تر
Solving More Complex Equation
مروری بر دستورالعمل بخش
Overview of the Division Instruction
انجام تقسیم با تفریق
Performing Division by Subtraction
مروری بر دستورالعمل های پردازش سیگنال دیجیتال (DSP).
Overview of the Digital Signal Processing (DSP) Instructions
دستورالعمل های دستکاری بیت
Bit Manipulation Instructions
نماد کسری
Fractional Notation
درک نماد Q
Understanding Q Notation
دستورالعمل های شاخه و حلقه
Branch and Loop Instructions
مقدمه ای بر شاخه ها و حلقه ها
Introduction to Branches and Loops
انشعاب
Branching
مقایسه کنید و شاخه بزنید
Compare and Branch
حلقه ها در زبان اسمبلی
Loops in Assembly Language
اعدام مشروط
Conditional Execution
اگر-پس بلوک
The If-Then Block
محاسبه فاکتوریل یک عدد با استفاده از بلوک If-Then
Computing the Factorial of a Number Using the If-Then Block
جداول
Tables
مقدمه ای بر جداول
Introduction to Tables
پیمایش در جدول جستجو
Navigating a Lookup Table
ساخت جدول جستجوی ممیز شناور
Constructing a Floating-Point Lookup Table
ساخت جدول جستجوی ممیز شناور - نسخه 2
Constructing a Floating-Point Lookup Table - Version 2
ایجاد یک برنامه برای محاسبه سریع سینوس یک مقدار (قسمت اول)
Creating a Program to Rapidly Compute the Sine of a Value (Part I)
ایجاد یک برنامه برای محاسبه سریع سینوس یک مقدار (قسمت دوم)
Creating a Program to Rapidly Compute the Sine of a Value (Part II)
ایجاد یک برنامه برای محاسبه سریع سینوس یک مقدار (قسمت سوم)
Creating a Program to Rapidly Compute the Sine of a Value (Part III)
ایجاد جداول پرش
Creating Jump Tables
دستورات پشته
Stack Instructions
مقدمه ای بر پشته
Introduction to the Stack
دستورالعمل های LDM و STM
The LDM and STM Instructions
نحو دستورات PUSH و POP
Syntax of the PUSH and POP Instructions
ایجاد یک پشته ساده
Creating a Simple Stack
ذخیره و بازیابی متن
Saving and Restoring Context
واحد ممیز شناور
The Floating-Point Unit
کمک های یک واحد ممیز شناور به یک پردازنده تعبیه شده
Contributions of a Floating-Point Unit to an Embedded Processor
انواع داده های ممیز شناور
Floating-Point Data Types
نحو دستورات ممیز شناور
Syntax of Floating-Point Instructions
مروری بر دستورالعمل های ممیز شناور
Overview of Floating-Point Instructions
فعال کردن Coprocessor Floating-Point
Enabling the Floating-Point Coprocessor
انتقال داده ها بین رجیسترهای اصلی و رجیسترهای ممیز شناور
Transferring Data between the Main Registers and Floating-Point Registers
ترکیب C و زبان اسمبلی
Mixing C and Assembly Language
مونتاژ درون خطی
Inline Assembly
صادرات یک زیربرنامه از اسمبلی به C
Exporting a Subroutine from Assembly to C
صادر کردن یک تابع از C به اسمبلی
Exporting a Function from C to Assembly
توسعه درایورهای جانبی (STM32-F411-Nucleo Board)
Peripheral Drivers Development (STM32-F411-Nucleo Board)
تخصیص نام های نمادین به رجیسترهای ورودی/خروجی مربوط به هدف عمومی (GPIO)
Assigning Symbolic Names to the Relevant General Purpose Input/Output (GPIO) Registers
نوشتن درایور خروجی ورودی/خروجی عمومی (GPIO).
Writing the General Purpose Input/Output (GPIO) Output Driver
جابجایی خروجی های ورودی/خروجی عمومی (GPIO).
Toggling General Purpose Input/Output (GPIO) Outputs
جابجایی خروجی های ورودی/خروجی عمومی (GPIO) با ثبت BSRR
Toggling General Purpose Input/Output (GPIO) Outputs with the BSRR Register
توسعه درایورهای جانبی (TM4C123-TIVA C Board)
Peripheral Drivers Development (TM4C123-TIVA C Board)
تخصیص نام های نمادین به رجیسترهای ورودی/خروجی مربوط به هدف عمومی (GPIO)
Assigning Symbolic Names to the Relevant General Purpose Input/Output (GPIO) Registers
پیاده سازی درایور خروجی ورودی/خروجی عمومی (GPIO).
Implementing the General Purpose Input/Output (GPIO) Output Driver
تخصیص نام های نمادین به رجیسترهای ورودی/خروجی مربوط به هدف عمومی (GPIO)
Assigning Symbolic Names to the Relevant General Purpose Input/Output (GPIO) Input Registers
پیاده سازی درایور ورودی/خروجی عمومی (GPIO).
Implementing the General Purpose Input/Output (GPIO) Input Driver
جابجایی خروجی های ورودی/خروجی عمومی (GPIO).
Toggling General Purpose Input/Output (GPIO) Outputs
ساختارهای داده
Data Structures
مقدمه ای بر FIFO ها
Introduction to FIFOs
پیاده سازی FIFO (قسمت اول)
FIFO Implementation (Part I)
پیاده سازی FIFO (قسمت دوم)
FIFO Implementation (Part II)
پیاده سازی FIFO (قسمت سوم)
FIFO Implementation (Part III)
توسعه الگوریتم ها
Algorithms Development
توسعه الگوریتم فاکتوریل بازگشتی (قسمت اول)
Developing the Recursive Factorial Algorithm (Part I)
توسعه الگوریتم فاکتوریل بازگشتی (قسمت دوم)
Developing the Recursive Factorial Algorithm (Part II)
الگوریتم بسط سری تیلور (قسمت اول)
Taylor Series Expansion Algorithm (Part I)
الگوریتم گسترش سری تیلور (قسمت دوم)
Taylor Series Expansion Algorithm (Part II)
مروری بر الگوریتم ریشه مربع متقابل
Overview of the Reciprocal Square Root Algorithm
الگوریتم تخمین ریشه مربع متقابل (قسمت اول)
The Reciprocal Square Root Estimate Algorithm (Part I)
الگوریتم تخمین ریشه مربع متقابل (قسمت دوم)
The Reciprocal Square Root Estimate Algorithm (Part II)
مروری بر الگوریتم دوبخشی
Overview of the Bisection Algorithm
ماشین حالت محدود (FSM)
Finite State Machine (FSM)
مقدمه ای بر ماشین حالت محدود (FSM)
Introduction to Finite State Machine (FSM)
آشنایی با ماشین حالت محدود مور (FSM)
Understanding the Moore's Finite State Machine (FSM)
پیاده سازی ماشین حالت محدود مور (FSM)
Implementation of the Moore's Finite State Machine (FSM)
Keil µVision 5 را تنظیم کنید
Set up Keil µVision 5
دانلود Keil µVision 5
Downloading Keil µVision 5
نصب Keil µVision 5
Installing Keil µVision 5
نصب پک ها
Installing Packs
مروری بر Keil µVision 5
Overview of Keil µVision 5
بسته شدن
Closing
سخنان پایانی
Closing Remarks
نمایش نظرات
Packtpub یک ناشر دیجیتالی کتابها و منابع آموزشی در زمینه فناوری اطلاعات و توسعه نرمافزار است. این شرکت از سال 2004 فعالیت خود را آغاز کرده و به تولید و انتشار کتابها، ویدیوها و دورههای آموزشی میپردازد که به توسعهدهندگان و متخصصان فناوری اطلاعات کمک میکند تا مهارتهای خود را ارتقا دهند. منابع آموزشی Packtpub موضوعات متنوعی از جمله برنامهنویسی، توسعه وب، دادهکاوی، امنیت سایبری و هوش مصنوعی را پوشش میدهد. محتوای این منابع به صورت کاربردی و بهروز ارائه میشود تا کاربران بتوانند دانش و تواناییهای لازم برای موفقیت در پروژههای عملی و حرفهای خود را کسب کنند.
Bohobiom Engineering یک آکادمی آنلاین مهندسی کامپیوتر در قرن بیست و یکم مستقر در لندن انگلستان است که دارای مدرسان مجرب در زمینههای برنامهنویسی مونتاژ، مهندسی سختافزار، پردازش سیگنال و تصویر، توسعه سیستمافزار تعبیهشده، یادگیری عمیق و سایر مهارتهای قرن بیست و یکمی با تقاضای بالا است.
تا امروز، آنها بیش از 35000 دانش آموز را آموزش داده اند. برای بررسی دوره های موجود با آنها و پیام دادن به آنها در صورت داشتن هر گونه سوال، از وب سایت آنها بازدید کنید.
نمایش نظرات