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

14

i

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

Enrollees

Learners at 96% of Fortune 1000 companies trust Cybrary

About this course

Read More

Skills you'll gain

Course Outline

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

ARM Intro

Free

12m

Indirect Addressing and Variables Part 1

Free

6m

Template and Setup

Free

8m

Tools for Code, Reverse Engineering

Free

9m

ARM Template

Free

6m

Indirect Addressing and Variables Part 2

Free

3m

Introduction to Assembly

Free

8m

Reverse Engineering Process

Free

8m

ARM Math and Data Movement

Free

8m

Slack Intro Part 1

Free

7m

Architecture, Registers, and Protected Mode

Free

13m

Setup Reverse Engineering Lab

Free

8m

Branching, If, While, Shift

Free

9m

Slack Intro Part 2

Free

2m

Binary, 2's Complement and Hexadecimal

Free

8m

Structures and Unions

Free

5m

Shift Example

Free

7m

Stack Usage

Free

8m

Assembly Template

Free

7m

Structure Layout

Free

5m

Memory, Offsets, Debugging and Listing

Free

11m

Simple Function Example

Free

11m

Instructions, Directives and Generating a Listing

Free

15m

Structure Creation: Reverse Engineering

Free

7m

Pushing and Popping

Free

5m

Function Prologue

Free

4m

Logical Operators and Memory Layout

Free

15m

Structures, Unions and Malloc

Free

10m

Push Example

Free

5m

Function Epilogue

Free

8m

Segments and Functions

Free

10m

Structures, Unions and Malloc Example

Free

7m

Array Indexing

Free

8m

Function Arguments

Free

8m

Sign Extend, Zero Extend, Multiple, Divide

Free

12m

Array Indexing Example

Free

5m

Saving Registers

Free

10m

Multiply and Divide Examples

Free

7m

Jump Table Example

Free

8m

ARM Multiple Load and Store

Free

6m

More Complicated Function

Free

15m

Compare, Conditionals and Jumps

Free

11m

Function Pointers

Free

7m

ARM Load and Store Multiple Examples

Free

6m

Calling Conventions

Free

8m

Skeleton and Loop Example

Free

11m

Function Pointers Example

Free

7m

VFP and Neon

Free

16m

Local Variables

Free

7m

Shift Left and Right

Free

9m

Inline Assembly

Free

10m

Neon Example

Free

13m

Local Variables Example

Free

13m

Arithmetic Shift

Free

11m

Inline Assembly Example

Free

10m

Neon Floating Point

Free

7m

Enter and Leave

Free

5m

Module 1 Review

Free

5m

Assembly with C

Free

10m

Neon Floating Point Example

Free

8m

Enter and Leave Example Conversion

Free

5m

SysCall and Interrupts

Free

8m

SIMD Load and Store Data

Free

8m

Floating Point

Free

7m

Interrupts Example Use Fork

Free

8m

SIMD Process Data

Free

9m

Floating Point Circle Example

Free

10m

Strings in C

Free

6m

SIMD Encryption Example

Free

11m

Floating Point Comparison

Free

6m

Integers in Assembly

Free

8m

Thumb Mode

Free

5m

Floating Point Comparison Example

Free

10m

64-Bit Assembly

Free

10m

Thumb Mode Example

Free

15m

Max of Three Numbers

Free

13m

MMX, SSE, AES-NI

Free

10m

Conditional Execution

Free

8m

Conditional Move

Free

8m

AES Implementations

Free

9m

Conditional Execution Example

Free

9m

Conditional Move Max Example

Free

7m

Implement Dump Registers

Free

18m

IT Block Assembly

Free

5m

Arrays

Free

11m

Static and Dynamic Linking Assembly

Free

7m

IT Block Example

Free

8m

Arrays Examples

Free

7m

Shared Library

Free

8m

String Instructions

Free

7m

Shared Library Example

Free

13m

Strings Uppercase Example

Free

10m

ARM Intro

12m

ARM Architecture
Indirect Addressing and Variables Part 1

6m

Indirect Addressing, Stack, Arrays and Strings
Template and Setup

8m

Basic Assembly
Tools for Code, Reverse Engineering

9m

C Constructs and Interrupts
ARM Template

6m

ARM Architecture
Indirect Addressing and Variables Part 2

3m

Indirect Addressing, Stack, Arrays and Strings
Reverse Engineering Process

8m

C Constructs and Interrupts
Slack Intro Part 1

7m

Indirect Addressing, Stack, Arrays and Strings
Setup Reverse Engineering Lab

8m

C Constructs and Interrupts
Slack Intro Part 2

2m

Indirect Addressing, Stack, Arrays and Strings
Structures and Unions

5m

C Constructs and Interrupts
Shift Example

7m

ARM Architecture
Stack Usage

8m

Indirect Addressing, Stack, Arrays and Strings
Assembly Template

7m

Basic Assembly
Structure Layout

5m

C Constructs and Interrupts
Simple Function Example

11m

Indirect Addressing, Stack, Arrays and Strings
Pushing and Popping

5m

ARM Architecture
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

    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:
    Become an Incident Handler
    In this Career Path, you will learn the incident response process, from building an incident response kit and developing an incident response team, to identifying, containing, and recovering from incidents. We then steer away from a traditional “defensive-only” approach to introduce you to the attacker’s world.
    Incident Handler Collection

    This collection focuses on the incident response process – from building an incident response kit and developing an incident response team, to identifying, containing, and recovering from incidents. We cover the traditional “defensive-only” approach, then introduce you to the attacker’s world.

    Instructed by

    Provider
    Cybrary Logo
    Certification Body
    Certificate of Completion

    Complete this entire course to earn a Assembly Certificate of Completion