ALT by Bilal Ahmed Shaik - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.

 

 

 

  Table of Content

 

  Assembly Programming Tutorial .............................................. 2

  Audience.................................................................................. 2

  Prerequisites ............................................................................ 2

  Copyright & Disclaimer Notice.................................................. 3

  Assembly Introduction.............................................................. 8

  What is Assembly Language?................................................. 8

  Advantages of Assembly Language ...........................................................8

  Basic Features of PC Hardware .................................................................9

  The Binary Number System .......................................................................9

  The Hexadecimal Number System.............................................................9

  Binary Arithmetic ......................................................................................10

  Addressing Data in Memory .....................................................................11

  Assembly Environment Setup ................................................ 13

  Installing NASM........................................................................................13

  Assembly Basic Syntax .......................................................... 15

  The data Section ......................................................................................15

  The bss Section .......................................................................................15

  The text section ........................................................................................15

  Comments ................................................................................................15

  Assembly Language Statements..............................................................16

  Syntax of Assembly Language Statements ..............................................16

  The Hello World Program in Assembly.....................................................16

  Compiling and Linking an Assembly Program in NASM ...........................17

  Assembly Memory Segments................................................. 18

  Memory Segments ...................................................................................18

  Assembly Registers ............................................................... 20

  Processor Registers .................................................................................20

  Data Registers .........................................................................................20

  Pointer Registers......................................................................................21

  Index Registers ........................................................................................21

  Control Registers .....................................................................................22

  Segment Registers...................................................................................22

  Example: ..................................................................................................23

  Assembly System Calls.......................................................... 24

  Linux System Calls...................................................................................24

  Example ...................................................................................................25

  Addressing Modes ................................................................. 27

 

 

 

 

 

  Register Addressing .................................................................................27

  Immediate Addressing..............................................................................27

  Direct Memory Addressing .......................................................................28

  Direct-Offset Addressing ..........................................................................28

  Indirect Memory Addressing.....................................................................28

  The MOV Instruction ................................................................................28

  SYNTAX: ..................................................................................................28

  E XAMPLE: ............................... ................................ ............................... 29

  Assembly Variables ............................................................... 31

  Allocating Storage Space for Initialized Data ...........................................31

  Allocating Storage Space for Uninitialized Data .......................................32

  Multiple Definitions ...................................................................................32

  Multiple Initiali zations ...............................................................................33

  Assembly Constants .............................................................. 34

  The EQU Directive ...................................................................................34

  Example: ..................................................................................................34

  The %assign Directive..............................................................................35

  The %define Directive ..............................................................................35

  Arithmetic Instructions............................................................ 37

  SY NT A X : ............................... ................................ ................................ .. 37

  E XAMPLE: ............................... ................................ ............................... 37

  The DEC Instruction .................................................................................37

  SY NT A X : ............................... ................................ ................................ .. 37

  E XAMPLE: ............................... ................................ ............................... 37

  The ADD and SUB Instructions ................................................................38

  SYNTAX: ..................................................................................................38

  EXAMPLE: ...............................................................................................38

  The MUL/IMUL Instruction .......................................................................40

  SYNTAX: ..................................................................................................40

  EXAMPLE: ...............................................................................................41

  E XAMPLE: ............................... ................................ ............................... 41

  The DIV/IDIV Instructions.........................................................................42

  SY NT A X : ............................... ................................ ................................ .. 42

  E XAMPLE: ............................... ................................ ............................... 43

  Logical Instructions ................................................................ 45

  The AND Instruction .................................................................................45

  Example: ..................................................................................................46

  The OR Instruction ...................................................................................46

  Example: ..................................................................................................47

 

 

 

 

 

  The XOR Instruction.................................................................................47

  The TEST Instruction ...............................................................................48

  The NOT Instruction .................................................................................48

  Assembly Conditions.............................................................. 49

  The CMP Instruction.................................................................................49

  SYNTAX...................................................................................................49

  EXAMPLE: ...............................................................................................49

  Unconditional Jump..................................................................................50

  SYNTAX: ..................................................................................................50

  EXAMPLE: ...............................................................................................50

  Conditional Jump .....................................................................................50

  Example: ..................................................................................................51

  Assembly Loops..................................................................... 53

  Example: ..................................................................................................53

  Assembly Numbers ................................................................ 55

  ASCII Representation...............................................................................56

  BCD Representation ................................................................................57

  Example: ..................................................................................................57

  Assembly Strings ................................................................... 59

  String Instructions ....................................................................................59

  MOVS.......................................................................................................60

  LODS .......................................................................................................61

  CMPS.......................................................................................................62

  SCAS .......................................................................................................63

  Repetition Prefixes ...................................................................................64

  Assembly Arrays .................................................................... 65

  Example: ..................................................................................................66

  Assembly Procedures ............................................................ 67

  Syntax: .....................................................................................................67

  Example: ..................................................................................................67

  Stacks Data Structure: .............................................................................68

  E XAMPLE: ............................... ................................ ............................... 69

  Assembly Recursion .............................................................. 70

  Assembly Macros................................................................... 72

  Example: ..................................................................................................73

  Assembly File Management ................................................... 74

  File Descriptor ..........................................................................................74

  File Pointer ...............................................................................................74

  File Handling System Calls ......................................................................74

 

 

 

 

 

  Creating and Opening a File ....................................................................75

  Openi ng an Existing File ..........................................................................75

  Reading from a File ..................................................................................75

  Writing to a File ........................................................................................76

  Closing a File ...........................................................................................76

  Updating a File .........................................................................................76

  Example: ..................................................................................................77

  Memory Management ............................................................ 79

  Example: ..................................................................................................79