COURSE

Assembly

Course

Assembly is the lowest-level programming language and is useful in reverse engineering and malware analysis. It can also be used for direct hardware manipulation or to address critical performance issues. This course requires a background in basic programming concepts and access to a Linux system. Learn Assembly online today!
Full access included with 
Insider Pro
 and 
Teams

13

H

15

M
Time

beginner

i
Designed for learners who have no prior work experience in IT or Cybersecurity, but are interested in starting a career in this exciting field.
Designed for learners with prior cybersecurity work experience who are interested in advancing their career or expanding their skillset.
Designed for learners with a solid grasp of foundational IT and cybersecurity concepts who are interested in pursuing an entry-level security role.
Experience Level

2924

Enrollees

930

XP

14

i

Earn qualifying credits for certification renewal with completion certificates provided for submission.
CEU's

Learners at 96% of Fortune 1000 companies trust Cybrary

About this course

Read More

Skills you'll gain

Course Outline

1
Module 1: Basic Assembly
2
H
29
Min
1
Module 2: Indirect Addressing, Stack, Arrays and Strings
3
H
34
Min
1
Module 3: ARM Architecture
3
H
29
Min
1
Module 4: C Constructs and Interrupts
3
H
41
Min

3.1 ARM Intro

Free

10 XP

0H

11m

2.1 Indirect Addressing and Variables Part 1

Free

10 XP

0H

6m

1.1 Template and Setup

Free

10 XP

0H

8m

3.2 ARM Template

Free

10 XP

0H

6m

2.2 Indirect Addressing and Variables Part 2

Free

10 XP

0H

3m

1.2 Introduction to Assembly

Free

1 XP

0H

7m

3.3 ARM Math and Data Movement

Free

10 XP

0H

8m

2.3 Slack Intro Part 1

Free

10 XP

0H

7m

1.3 Architecture, Registers, and Protected Mode

Free

10 XP

0H

13m

3.4 Branching, If, While, Shift

Free

10 XP

0H

8m

2.4 Slack Intro Part 2

Free

10 XP

0H

1m

1.4 Binary, 2's Complement and Hexadecimal

Free

10 XP

0H

7m

3.5 Shift Example

Free

10 XP

0H

7m

2.5 Stack Usage

Free

10 XP

0H

7m

1.5 Assembly Template

Free

10 XP

0H

14m

3.6 Memory, Offsets, Debugging and Listing

Free

10 XP

0H

10m

2.6 Simple Function Example

Free

XP

0H

11m

1.6 Instructions, Directives and Generating a Listing

Free

10 XP

0H

14m

3.7 Pushing and Popping

Free

10 XP

0H

5m

2.7 Function Prologue

Free

10 XP

0H

3m

1.7 Logical Operators and Memory Layout

Free

10 XP

0H

15m

3.8 Push Example

Free

10 XP

0H

5m

2.8 Function Epilogue

Free

10 XP

0H

8m

1.8 Segments and Functions

Free

10 XP

0H

9m

3.9 Array Indexing

Free

10 XP

0H

8m

2.9 Function Arguments

Free

10 XP

0H

8m

1.9 Sign Extend, Zero Extend, Multiple, Divide

Free

10 XP

0H

11m

3.10 Array Indexing Example

Free

10 XP

0H

4m

2.10 Saving Registers

Free

10 XP

0H

9m

1.10 Multiply and Divide Examples

Free

10 XP

0H

6m

3.11 ARM Multiple Load and Store

Free

10 XP

0H

5m

2.11 More Complicated Function

Free

10 XP

0H

14m

1.11 Compare, Conditionals and Jumps

Free

10 XP

0H

11m

3.12 ARM Load and Store Multiple Examples

Free

10 XP

0H

6m

2.12 Calling Conventions

Free

10 XP

0H

8m

1.12 Skeleton and Loop Example

Free

10 XP

0H

11m

3.13 VFP and Neon

Free

10 XP

0H

15m

2.13 Local Variables

Free

10 XP

0H

6m

1.13 Shift Left and Right

Free

10 XP

0H

9m

3.14 Neon Example

Free

10 XP

0H

12m

2.14 Local Variables Example

Free

10 XP

0H

12m

1.14 Arithmetic Shift

Free

10 XP

0H

10m

2.15 Enter and Leave

Free

10 XP

0H

5m

2.16 Enter and Leave Example Conversion

Free

10 XP

0H

4m

3.15 Neon Floating Point

Free

10 XP

0H

6m

1.15 Module 1 Review

Free

10 XP

0H

5m

3.16 Neon Floating Point Example

Free

10 XP

0H

7m

3.17 SIMD Load and Store Data

Free

10 XP

0H

8m

2.17 Floating Point

Free

10 XP

0H

7m

3.18 SIMD Process Data

Free

10 XP

0H

8m

2.18 Floating Point Circle Example

Free

10 XP

0H

10m

3.19 SIMD Encryption Example

Free

10 XP

0H

11m

2.19 Floating Point Comparison

Free

10 XP

0H

6m

3.20 Thumb Mode

Free

10 XP

0H

4m

2.20 Floating Point Comparison Example

Free

10 XP

0H

9m

3.21 Thumb Mode Example

Free

10 XP

0H

14m

2.21 Max of Three Numbers

Free

10 XP

0H

12m

3.22 Conditional Execution

Free

10 XP

0H

7m

2.22 Conditional Move

Free

10 XP

0H

8m

3.23 Conditional Execution Example

Free

10 XP

0H

8m

2.23 Conditional Move Max Example

Free

10 XP

0H

6m

3.24 IT Block Assembly

Free

10 XP

0H

5m

2.24 Arrays

Free

XP

0H

11m

3.25 IT Block Example

Free

10 XP

0H

7m

2.25 Arrays Examples

Free

10 XP

0H

6m

4.1 Tools for Code, Reverse Engineering

Free

10 XP

0H

8m

4.2 Reverse Engineering Process

Free

10 XP

0H

7m

4.3 Setup Reverse Engineering Lab

Free

10 XP

0H

8m

4.4 Structures and Unions

Free

10 XP

0H

5m

4.5 Structure Layout

Free

10 XP

0H

5m

4.6 Structure Creation: Reverse Engineering

Free

10 XP

0H

7m

4.7 Structures, Unions and Malloc

Free

10 XP

0H

9m

4.8 Structures, Unions and Malloc Example

Free

10 XP

0H

6m

4.9 Jump Tables and Switch Statements

Free

10 XP

0H

5m

4.10 Jump Table Example

Free

10 XP

0H

8m

4.11 Function Pointers

Free

10 XP

0H

7m

4.12 Function Pointers Example

Free

10 XP

0H

7m

4.13 Inline Assembly

Free

10 XP

0H

9m

4.14 Inline Assembly Example

Free

10 XP

0H

10m

4.15 Assembly with C

Free

10 XP

0H

10m

4.16 SysCall and Interrupts

Free

10 XP

0H

8m

4.17 Interrupts Example Use Fork

Free

10 XP

0H

8m

4.18 Strings in C

Free

10 XP

0H

5m

4.19 Integers in Assembly

Free

10 XP

0H

7m

4.20 64-Bit Assembly

Free

10 XP

0H

10m

4.21 MMX, SSE, AES-NI

Free

10 XP

0H

9m

4.22 AES Implementations

Free

10 XP

0H

8m

4.23 Implement Dump Registers

Free

10 XP

0H

18m

4.24 Static and Dynamic Linking Assembly

Free

10 XP

0H

6m

4.25 Shared Library

Free

10 XP

0H

7m

4.26 Shared Library Example

Free

10 XP

0H

12m

2.26 String Instructions

Free

10 XP

0H

7m

2.27 Strings Uppercase Example

Free

10 XP

0H

9m

4.11 Function Pointers

7m

Module 4: C Constructs and Interrupts
4.12 Function Pointers Example

7m

Module 4: C Constructs and Interrupts
4.13 Inline Assembly

9m

Module 4: C Constructs and Interrupts
4.14 Inline Assembly Example

10m

Module 4: C Constructs and Interrupts
4.15 Assembly with C

10m

Module 4: C Constructs and Interrupts
4.16 SysCall and Interrupts

8m

Module 4: C Constructs and Interrupts
4.17 Interrupts Example Use Fork

8m

Module 4: C Constructs and Interrupts
4.18 Strings in C

5m

Module 4: C Constructs and Interrupts
4.19 Integers in Assembly

7m

Module 4: C Constructs and Interrupts
4.20 64-Bit Assembly

10m

Module 4: C Constructs and Interrupts
4.21 MMX, SSE, AES-NI

9m

Module 4: C Constructs and Interrupts
4.22 AES Implementations

8m

Module 4: C Constructs and Interrupts
4.23 Implement Dump Registers

18m

Module 4: C Constructs and Interrupts
4.24 Static and Dynamic Linking Assembly

6m

Module 4: C Constructs and Interrupts
4.25 Shared Library

7m

Module 4: C Constructs and Interrupts
4.26 Shared Library Example

12m

Module 4: C Constructs and Interrupts
2.26 String Instructions

7m

Module 2: Indirect Addressing, Stack, Arrays and Strings
2.27 Strings Uppercase Example

9m

Module 2: Indirect Addressing, Stack, Arrays and Strings
Course Description

Prerequisites

This Assembly language course requires a background in basic programming concepts. Students should have access to a Linux system or setup a Linux virtual machine.

Course Goals

By the end of the course, students should be able to:

  • Write Assembly Programs (x86, ARM)
  • Read Assembly Programs
  • Understand Different Data Representations (Binary Hex, 2's Complement)
  • Understand how Functions, Stack and Data Storage Work
  • Programmers who understand and can code with assembly programming have the ability to manipulate a computer’s hardware directly, and can do so with great speed compared to that of high-level languages such as Java or Python.

    People who learn assembly online (also known as ASM) will understand the machine code specific to the machine they’re working on. While high-level languages, such as Python and Java, have gained popularity in recent years among the programming community, assembly language programs are more efficient and operate at a quicker pace.

    What is assembly language?

    Assembly language is a low-level programming language for a computer or programming device. A low-level programming language means the instructions are basic and the computer can easily recognize what it is being told to do. Using assembler, assembly language can be converted into machine language, which is the lowest language.

    Why should programmers learn assembly language programming?

    ASM allows programmers to write a language that is easier for people to read than machine language, which is usually a series of numbers. Assembly language also helps a programmer manipulate the computer with maximum control.

    Assembly language helps optimize the speed of the computer and creates a program that runs quicker than high-level language programs can. Learning assembly programming enables programmers to tell the computer not to just do something, but how to execute the command.

    Assembly language can also be useful in reverse engineering and malware analysis. While assembly language can’t be the only language a programmer knows, it is helpful while debugging.

    Is it still relevant to learn assembly online today?

    In 2020, it is not as common for an entire application to be written in assembly. But understanding and writing some of an application in assembly enables the programmer to give additional functionality. Instead of just telling the computer to do something, assembly allows programmers to tell them how to do it with specific instructions.

    Many programmers prefer high-level languages because they are more portable in a world where cloud-based applications are becoming more and more prevalent. But there are still many benefits to understanding assembly for more traditional programs and more complex applications.

    How do you start assembly language programming?

    Students can learn assembly online by taking this course. Cybrary’s online course allows them to learn at their own pace, making it convenient and easy to add assembly language as a skill in one’s repertoire. To start Cybrary’s Introduction to Assembly Programming course, students need a background in basic programming concepts. Students should also have access to a Linux system.

    Students can complete Cybrary’s assembly language course at their own pace, either taking all the modules consecutively to quickly earn the certification or over the course of a few weeks when they have spare time. At the end of the course, students will be able to write and read assembly programs, understand different data representations, such as Binary, hex, and 2’s compliment. Students will also be able to understand Functions, Stack and Data Storage.

    Students could also learn assembly languaging through books or online blogs, but taking an online course like Cybrary provides interactive modules to help master the language.

    Programmers who receive an assembly certification can increase their ability to address critical computer performance issues, as well as, give the processor specific instructions.

    How do programmers use assembly language?

    Programmers use assembly language when they are trying to directly manipulate computer hardware. Assembly allows programmers to create better algorithms than they can create exclusively using C, which is a high-level language. But the best reason and motivation for using assembly remains speed.

    Assembly language can be used in the system’s boot code, general blocks of data, and in reverse engineering.

    Is assembly programming hard?

    Assembly programming is seen as “bare” and “transparent." There are only a small number of operations, which makes it easier for a programmer to debug it and makes for easier algorithm analysis. While assembly programming is specific to each processor, generally once a student has learned assembly they can transfer this knowledge from one CPU to another.

    Commands used in assembly are simple, such as MOV (move), ADD (add), and SUB (subtract). When taking an online assembly programming course, students will learn these commands and how to execute them.

    Train Your Team

    Cybrary’s expert-led cybersecurity courses help your team remediate skill gaps and get up-to-date on certifications. Utilize Cybrary to stay ahead of emerging threats and provide team members with clarity on how to learn, grow, and advance their careers within your organization.

    Included in a Path

    No items found.
    No items found.

    Instructors

    Matthew Miller
    Assistant Professor at the University of Nebraska at Kearney
    Read Full Bio
    Learn

    Learn core concepts and get hands-on with key skills.

    Practice

    Exercise your problem-solving and creative thinking skills with security-centric puzzles

    Prove

    Assess your knowledge and skills to identify areas for improvement and measure your growth

    Get Hands-on Learning

    Put your skills to the test in virtual labs, challenges, and simulated environments.

    Measure Your Progress

    Track your skills development from lesson to lesson using the Cybrary Skills Tracker.

    Connect with the Community

    Connect with peers and mentors through our supportive community of cybersecurity professionals.

    Success from Our Learners

    "Cybrary really helped me get up to speed and acquire a baseline level of technical knowledge. It offers a far more comprehensive approach than just learning from a book. It actually shows you how to apply cybersecurity processes in a hands-on way"

    Don Gates

    Principal Systems Engineer/SAIC

    "Cybrary’s SOC Analyst career path was the difference maker, and was instrumental in me landing my new job. I was able to show the employer that I had the right knowledge and the hands-on skills to execute the role."

    Cory

    Cybersecurity analyst/

    "I was able to earn my CISSP certification within 60 days of signing up for Cybrary Insider Pro and got hired as a Security Analyst conducting security assessments and penetration testing within 120 days. This certainly wouldn’t have been possible without the support of the Cybrary mentor community."

    Mike

    Security Engineer and Pentester/

    "Cybrary really helped me get up to speed and acquire a baseline level of technical knowledge. It offers a far more comprehensive approach than just learning from a book. It actually shows you how to apply cybersecurity processes in a hands-on way"

    Don Gates

    Principal Systems Engineer/SAIC

    "Cybrary’s SOC Analyst career path was the difference maker, and was instrumental in me landing my new job. I was able to show the employer that I had the right knowledge and the hands-on skills to execute the role."

    Cory

    Cybersecurity analyst/

    "I was able to earn my CISSP certification within 60 days of signing up for Cybrary Insider Pro and got hired as a Security Analyst conducting security assessments and penetration testing within 120 days. This certainly wouldn’t have been possible without the support of the Cybrary mentor community."

    Mike

    Security Engineer and Pentester/

    "Becoming a Cybrary Insider Pro was a total game changer. Cybrary was instrumental in helping me break into cybersecurity, despite having no prior IT experience or security-related degree. Their career paths gave me clear direction, the instructors had real-world experience, and the virtual labs let me gain hands-on skills I could confidently put on my resume and speak to in interviews."

    Cassandra

    Information Security Analyst/Cisco Systems

    "I was able to earn both my Security+ and CySA+ in two months. I give all the credit to Cybrary. I’m also proud to announce I recently accepted a job as a Cyber Systems Engineer at BDO... I always try to debunk the idea that you can't get a job without experience or a degree."

    Casey

    Cyber Systems Engineer/BDO

    "Cybrary has helped me improve my hands-on skills and pass my toughest certification exams, enabling me to achieve 13 advanced certifications and successfully launch my own business. I love the practice tests for certification exams, especially, and appreciate the wide-ranging training options that let me find the best fit for my goals"

    Angel

    Founder,/ IntellChromatics.

    Assembly

    Assembly is the lowest-level programming language and is useful in reverse engineering and malware analysis. It can also be used for direct hardware manipulation or to address critical performance issues. This course requires a background in basic programming concepts and access to a Linux system. Learn Assembly online today!
    13
    15
    M
    Time
    beginner
    difficulty
    14
    ceu/cpe

    Course Content

    Course Description

    Prerequisites

    This Assembly language course requires a background in basic programming concepts. Students should have access to a Linux system or setup a Linux virtual machine.

    Course Goals

    By the end of the course, students should be able to:

  • Write Assembly Programs (x86, ARM)
  • Read Assembly Programs
  • Understand Different Data Representations (Binary Hex, 2's Complement)
  • Understand how Functions, Stack and Data Storage Work
  • Programmers who understand and can code with assembly programming have the ability to manipulate a computer’s hardware directly, and can do so with great speed compared to that of high-level languages such as Java or Python.

    People who learn assembly online (also known as ASM) will understand the machine code specific to the machine they’re working on. While high-level languages, such as Python and Java, have gained popularity in recent years among the programming community, assembly language programs are more efficient and operate at a quicker pace.

    What is assembly language?

    Assembly language is a low-level programming language for a computer or programming device. A low-level programming language means the instructions are basic and the computer can easily recognize what it is being told to do. Using assembler, assembly language can be converted into machine language, which is the lowest language.

    Why should programmers learn assembly language programming?

    ASM allows programmers to write a language that is easier for people to read than machine language, which is usually a series of numbers. Assembly language also helps a programmer manipulate the computer with maximum control.

    Assembly language helps optimize the speed of the computer and creates a program that runs quicker than high-level language programs can. Learning assembly programming enables programmers to tell the computer not to just do something, but how to execute the command.

    Assembly language can also be useful in reverse engineering and malware analysis. While assembly language can’t be the only language a programmer knows, it is helpful while debugging.

    Is it still relevant to learn assembly online today?

    In 2020, it is not as common for an entire application to be written in assembly. But understanding and writing some of an application in assembly enables the programmer to give additional functionality. Instead of just telling the computer to do something, assembly allows programmers to tell them how to do it with specific instructions.

    Many programmers prefer high-level languages because they are more portable in a world where cloud-based applications are becoming more and more prevalent. But there are still many benefits to understanding assembly for more traditional programs and more complex applications.

    How do you start assembly language programming?

    Students can learn assembly online by taking this course. Cybrary’s online course allows them to learn at their own pace, making it convenient and easy to add assembly language as a skill in one’s repertoire. To start Cybrary’s Introduction to Assembly Programming course, students need a background in basic programming concepts. Students should also have access to a Linux system.

    Students can complete Cybrary’s assembly language course at their own pace, either taking all the modules consecutively to quickly earn the certification or over the course of a few weeks when they have spare time. At the end of the course, students will be able to write and read assembly programs, understand different data representations, such as Binary, hex, and 2’s compliment. Students will also be able to understand Functions, Stack and Data Storage.

    Students could also learn assembly languaging through books or online blogs, but taking an online course like Cybrary provides interactive modules to help master the language.

    Programmers who receive an assembly certification can increase their ability to address critical computer performance issues, as well as, give the processor specific instructions.

    How do programmers use assembly language?

    Programmers use assembly language when they are trying to directly manipulate computer hardware. Assembly allows programmers to create better algorithms than they can create exclusively using C, which is a high-level language. But the best reason and motivation for using assembly remains speed.

    Assembly language can be used in the system’s boot code, general blocks of data, and in reverse engineering.

    Is assembly programming hard?

    Assembly programming is seen as “bare” and “transparent." There are only a small number of operations, which makes it easier for a programmer to debug it and makes for easier algorithm analysis. While assembly programming is specific to each processor, generally once a student has learned assembly they can transfer this knowledge from one CPU to another.

    Commands used in assembly are simple, such as MOV (move), ADD (add), and SUB (subtract). When taking an online assembly programming course, students will learn these commands and how to execute them.

    This course is part of a Career Path:
    No items found.

    Instructed by

    Provider
    Cybrary Logo
    Certification Body
    Certificate of Completion

    Complete this entire course to earn a Assembly Certificate of Completion