Ahmed Sallam
  • Home
  • Puplications
    • Google Scholar
    • Research Gate
  • CV
    • Printable PDF file
    • Closer >
      • Blog
      • Stream
      • YouTube Channel
    • LinkedIn
  • Keynotes
  • Activites
    • IBM TOT summer 2017
    • Summer Training 2017
    • IBM Cloud course spring 2017
    • FCI Infrastructure
    • Logo Contest
    • IBM Summer Camp 2015
    • IBM Summer Camp 2016
  • Courses
  • G Projects
    • Resources
    • Projects
  • Useful
    • Source Code
    • Mobile Apps
    • How to start your research? (Video)
    • Suez Canal University
    • Hunan University
    • Scholarships information
    • الحج من الخارج
    • Hajj from Abroad
  • +Feeds

Assembly Language
Wednesday 12:00 PM
 

Abstract 
An assembly language is a low-level programming language for a computer, or other programmable device, in which there is a very strong (generally one-to-one) correspondence between the language and the architecture's machine code instructions. Each assembly language is specific to a particular computer architecture, in contrast to most high-level programming languages, which are generally portable across multiple architectures, but require interpreting or compiling.

Assembly language is converted into executable machine code by a utility program referred to as an assembler; the conversion process is referred to as assembly, or assembling the code.

Assembly language uses a mnemonic to represent each low-level machine instruction or operation. Typical operations require one or more operands in order to form a complete instruction, and most assemblers can therefore take labels, symbols and expressions as operands to represent addresses and other constants, freeing the programmer from tedious manual calculations. Macro assemblers include a macroinstruction facility so that (parameterized) assembly language text can be represented by a name, and that name can be used to insert the expanded text into other code. Many assemblers offer additional mechanisms to facilitate program development, to control the assembly process, and to aid debugging.

Applications
  • Drivers & embedded systems
  • Games & Graphics
  • Hardware management (CPU, Memory, ...etc)
  • Reverse Engineering
Level: 3rd "CS"
Place: Hall 3
Credit: 5 hours
Grading: Total=100 ( Written Exam=70, Oral&Lab.=15, Tests,=15)


Assistant: Esraa ( [email protected] )

References:
Assembly Language for x86 Processors 6th ed ( Kip Irvine ) 
Picture


Date


15th Oct.

22th Oct.



29th Oct.

5th Nov.

12th Nov.

19th Nov.

26th Nov.

4th Dec.

10th Dec.



 17th Dec.

24th Dec


4th Jan

Lecture


Lecture 1

Lecture 2



Lecture 3

Quiz model answer

Lecture 4 (Lecture 3 cont.)

Lecture 5

Lecture 6 (Lecture 5 cont.)

Midterm model answer 

Lecture 7 updated



 Lecture 8 (Lecture 7 cont.)

 Lecture 9


Practical exam model answer
Online

 Watch

Watch



Watch

   َQuiz results

Watch

 Watch

Watch

   َResults

Watch



 Watch

 Watch


Assign


Assignment 1 

Assignment 2



Assignment 3.A

 

Assignment 3.B

ِAssignment 4.A

 Assignment 4.B

 

Assignment 5.A



 Assignment 5.B

 


Supplementary 


History of computing hardware

* Debug exe
* DosBox [X86 emulator with DOS]
* Using Debug (Tutorial)

* 16 bit assembly utilities

 

* Reverse program

 * Lecture Test code

 

 

* Lecture test code 1
* Lecture test code 2
* Lecture test code 3 

 * Bonus task

* Lecture test code 1
* Lecture test code 2


* Course Harvest
Powered by Create your own unique website with customizable templates.