System Programming: System Programming Tutorial-concept of assembly language-Assembler and it’s working with diagram
System Programming: System Programming Tutorial-concept of assembly language-Assembler and it’s working with diagram.
Contents [hide]
- 1 System Programming: Assembly Language and Assembler
- 2 1. Introduction to Assembly Language
- 3 Features of Assembly Language
- 4 2. What is an Assembler?
- 5 Assembler Functions:
- 6 3. Working of an Assembler (With Diagram)
- 7 Step-by-Step Assembler Workflow:
- 8 Diagram: Working of an Assembler
- 9 4. Types of Assemblers
- 10 1. Single-Pass Assembler
- 11 2. Two-Pass Assembler
- 12 5. Conclusion
- 13 System Programming: System Programming Tutorial-concept of assembly language-Assembler and it’s working with diagram
- 14 The Art of Assembly Language
- 15 Unit 1 What is System Programming?
System Programming: Assembly Language and Assembler
1. Introduction to Assembly Language
Assembly Language is a low-level programming language that provides a direct mapping to a computer’s machine code. It is written using mnemonics instead of binary opcodes, making it easier for humans to read and write.
Features of Assembly Language
Uses symbolic mnemonics (e.g., MOV
, ADD
, SUB
).
Provides direct hardware control.
Faster execution compared to high-level languages.
Requires an Assembler to convert it into machine code.
2. What is an Assembler?
An Assembler is a system program that translates assembly language into machine code (binary form) that a computer’s CPU can execute.
Assembler Functions:
- Converts mnemonics into opcodes (e.g.,
MOV A, B
→78H
). - Allocates memory for instructions and data.
- Handles labels and addresses (symbol table management).
- Detects syntax errors in the assembly code.
3. Working of an Assembler (With Diagram)
Step-by-Step Assembler Workflow:
-
Input: Assembly Program
- Programmer writes instructions using mnemonics.
- Example code:
-
Lexical Analysis
- The assembler scans the program and extracts mnemonics, labels, and operands.
-
Syntax Analysis
- Checks for errors like invalid mnemonics or incorrect operand usage.
-
Symbol Table Generation
- Creates a table of labels and their corresponding addresses.
-
Opcode Conversion
- Converts mnemonics into machine code instructions.
-
Address Resolution
- Assigns memory addresses to instructions and data.
-
Output: Machine Code (Object File)
- Generates an executable binary code.
Diagram: Working of an Assembler
4. Types of Assemblers
1. Single-Pass Assembler
- Processes code in one scan.
- Fast but struggles with forward references.
- Example: Basic 8-bit microcontrollers.
2. Two-Pass Assembler
- Pass 1: Creates a symbol table.
- Pass 2: Converts mnemonics to machine code using the symbol table.
- Example: Intel 8086 assembler.
5. Conclusion
- Assembly Language provides direct hardware control and efficient execution.
- Assemblers translate it into machine code using symbol tables, opcode conversion, and address resolution.
- Multi-pass assemblers handle forward references more efficiently.
Would you like a real-world example of an assembly program and its machine code conversion?