We're offering 20% off September Live Online classes! See which courses are applicable.   |   Details >

  
AccountIcon BigDataIcon BlogIcon default_resource_icon CartIcon checkmark_icon cloud_devops_icon computer_network_admin_icon cyber_security_icon gsa_schedule_icon human_resources_icon location_icon phone_icon plus_icon programming_software_icon project_management_icon redhat_linux_icon search_icon sonography_icon sql_database_icon webinar_icon

Search UMBC Training Centers

Programming

x86-64 Assembly Programming

+ View more dates & times
    
                     
  • Overview

    This course is an introduction to assembly programming for the x86-64bit architecture. Emphasis is placed on best, current practices and methods. Students will write extensive code as part of the course.

  • Who Should Take This Course

    Audience

    This course is suitable for developers or others with moderate experience in programming a compiled language, such as C, C++, Rust, or Fortran. This course is not designed for students who are new to programming.

    PREREQUISITES

    Students should have some previous programming experience, such as C, C++, or Rust. They should be able to write conditionals, loops, and functions, do some basic debugging, and write a simple program that makes use of these skills.

  • Schedule
  • Course Outline

    Introduction to x86

    ● Why Learn Assembly?
    ● Prerequisites
    ● History
    ● Terminology
    ● Optimization & Intuition

    Executable Programs

    ● End-to-End Process
    ● Executable Formats
    ● Sections

    Tools

    ● Build Tools
    ● Reversing Tools
    ● Hello World

    CPU

    ● RISC/CISC Architectures
    ● GPUs
    ● Pipelining
    ● CPU Modes

    Registers

    ● Intel Architecture History
    ● Register Descriptions
    ● Callee-Saved Registers

    Memory and Latency

    ● Memory Structure
    ● Memory Pages
    ● Caches
    ● Latency Numbers Every Programmer Should Know

    The Two Major Syntaxes

    ● Intel
    ● AT&T
    ● Comments
    ● Directives

    Assignment

    ● Indirect Addressing
    ● Load Effective Address
    ● Segment Offsets
    ● RIP-Relative Addressing
    ● Sign Extension

    Arithmetic

    ● No Operation
    ● Basic Operations
    ● Bitwise Operators

    Conditionals

    ● Condition Flags
    ● Condition Codes
    ● Jumps
    ● Conditional Moves
    ● Jump Tables

    Loops

    ● Jump and Loop Optimizations
    ● Loop Instructions

    Functions

    ● Stack Space
    ● Base Pointer, Stack Pointer
    ● Caller- and Callee-Saved Registers
    ● x64 ABI
    ● IA-32 ABI
    ● Return Types
    ● System Calls

    Floats

    ● ST Use
    ● XMM Use

    Strings

    ● String Instructions
    ● String Instruction Prefixes

    SIMD

    ● Concepts
    ● Packed Data
    ● Data Alignment
    ● SIMD Instructions

  • FAQs
    Is there a discount available for current students?

    UMBC students and alumni, as well as students who have previously taken a public training course with UMBC Training Centers are eligible for a 10% discount, capped at $250. Please provide a copy of your UMBC student ID or an unofficial transcript or the name of the UMBC Training Centers course you have completed. Online courses are excluded from this offer.

    What is the cancellation and refund policy?

    Student will receive a refund of paid registration fees only if UMBC Training Centers receives a notice of cancellation at least 10 business days prior to the class start date for classes or the exam date for exams.

Contact Us