Part 1: Assembly Language with Its system properties

Assembly Language

What is Assembly Language?

Assembly Language (AL) is one line of code translates to one machine instruction. Every computer has a microprocessor that achieves the computer’s arithmetical, logical, and control actions. ALs are NOT machine-independent that is each different machine or processor has a different machine languages. Any particular machine can have more than one assembly language. This is a low-level language that represents various instructions in symbolic code and a clearer form. A processor understands only machine language instructions, which are strings of 1’s and 0’s. Each set of processors has own instructions set for handling numerous operations such as getting input from keyboard, displaying information on screen and performing many works where each set of instructions are named ‘machine language instructions’.

Assembly language makes one aware of:

  • How OS, processor, and BIOS programs interface mutually;
  • How data is represented in memory with other devices;
  • How the processor accesses and executes instruction;
  • How each instruction access to process data;
  • How a program accesses external device

Assembly Language Advantages:

  • The language requires less memory and execution time;
  • It allows hardware-specific complex jobs in an easier way;
  • It is suitable for time-critical trades;
  • It is most suitable for writing interrupt service routines along other memory resident programs.

A computer Hardware Basic Features

The main internal hardware of a PC consists of processor, memory, and registers. Registers are processor components where data and address are hold. To execute a program, the system copies it from the external device into the internal memory. The processor executes the program instructions.

The fundamental unit of computer storage is a bit; it could be ON (1) or OFF (0) and a group of 8 bits and makes a byte on most of the modern computers.

The parity bit is used to make the number of bits in a byte odd. If the parity is even, the system assumes that there had been a parity error (though rare), which might have been caused due to hardware fault or electrical disturbance.

The processor supports data sizes:

  • Word: Contain a 2-byte data item
  • Doubleword: Consist of a 4-byte (32 bit) data item
  • Quadword: Contain an 8-byte (64 bit) data item
  • Paragraph: Have a 16-byte (128 bit) area
  • Kilobyte: Have 1024 bytes
  • Megabyte: Have 1,048,576 bytes

Binary Number System

Every number system uses positional notation. Each position is power of the base, which is 2 for binary number system, and these powers begin at 0 and increase by 1.
The positional values for an 8-bit binary number, with all bits are set ‘ON’

Bit value 1 1 1 1 1 1 1 1
Position value as a power of base 2 128 64 32 16 8 4 2 1
Bit number 7 6 5 4 3 2 1 0

The value of a binary number is based on the presence of 1 bits and their positional value. So, the value of a given binary number is:

1 + 2 + 4 + 8 +16 + 32 + 64 + 128 = 255

which is same as 28 – 1.

Hexadecimal Number System

Hexadecimal number system uses base 16 range from 0 to 15 each digit. The letters A through F is represented corresponding to decimal values 10 through 15.

Decimal number Binary representation Hexadecimal representation
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

To convert a binary number to its hexadecimal equivalent, break it into groups of 4 consecutive groups each, starting from the right, and write those groups over the corresponding digits of the hexadecimal number.

Example − Binary number 1000 1100 1101 0001 is equivalent to hexadecimal – 8CD1

To convert a hexadecimal number to binary, just write each hexadecimal digit into its 4-digit binary equivalent.

Example − Hexadecimal number FCD7 is equivalent to binary – 1111 1100 1101 0111

Binary Arithmetic

The following table illustrates four simple rules for binary addition −

(i) (ii) (iii) (iv)
1
0 1 1 1
+0 +0 +1 +1
=0 =1 =10 =11

Rules (iii) and (iv) show a carry of a 1-bit into the next left position.

Example

Decimal Binary
60 00111100
+42 00101010
102 01100110

A negative binary value is expressed in two’s complement notation. According to this rule, to convert a binary number to its negative value is to reverse its bit values and add 1.

Example

Number 53 00110101
Reverse the bits 11001010
Add 1 00000001
Number -53 11001011

To subtract one value from another, convert the number being subtracted to two’s complement format and add the numbers.

Example

Subtract 22 from 33

Number 33 00100001
Number 22 00010110
Reverse the bits of 42 11101001
Add 1 00000001
Number -22 00010110
33 – 22 = 11 00001011

Overflow of the last 1 bit is lost.

Addressing Data in Memory

The processor which the controls process of execution of instructions is denoted as the fetch-decode-execute cycle or the execution cycle. It consists of three continuous steps:

  1. Fetching the instruction from memory
  2. Decoding or identifying the instruction
  3. Executing the instruction

The processor may access one or more bytes of memory at a time. Let us consider a hexadecimal number 0225H. This number will require two bytes of memory. The high-order byte or most significant byte is 02 and the low-order byte is 25. The processor stores data in reverse-byte sequence, i.e., a low-order byte is stored in a low memory address and a high-order byte in high memory address. So, if the processor brings the value 0225H from register to memory, it will transfer 25 first to the lower memory address and 02 to the next memory address.

There are two kinds of memory addresses:

  • Absolute address: It is a direct reference of specific location.
  • Segment address (or offset) : It is a starting address of a memory segment with the offset value.

0 Comments

You may find interest following article

Chapter 4 Relational Algebra

Relational Algebra The part of mathematics in which letters and other general symbols are used to represent numbers and quantities in formula and equations. Ex: (x + y) · z = (x · z) + (y · z). The main application of relational algebra is providing a theoretical foundation for relational databases, particularly query languages for such databases. Relational algebra...

Chapter 3 Components of the Database System Environment

Components of the Database System Environment There are five major components in the database system environment and their interrelationships are. Hardware Software Data Users Procedures Hardware:  The hardware is the actual computer system used for keeping and accessing the database. Conventional DBMS hardware consists of secondary storage devices, usually...

Chapter 2: Database Languages and their information

Database Languages A DBMS must provide appropriate languages and interfaces for each category of users to express database queries and updates. Database Languages are used to create and maintain database on computer. There are large numbers of database languages like Oracle, MySQL, MS Access, dBase, FoxPro etc. Database Languages: Refers to the languages used to...

Database basic overview

What is DBMS? A Database Management System (DBMS) is a collection of interrelated data and a set of programs to access those data. Database management systems (DBMS) are computer software applications that interact with the user, other applications, and the database itself to capture and analyze data. Purpose of Database Systems The collection of data, usually...

Laravel – Scopes (3 Easy Steps)

Scoping is one of the superpowers that eloquent grants to developers when querying a model. Scopes allow developers to add constraints to queries for a given model. In simple terms laravel scope is just a query, a query to make the code shorter and faster. We can create custom query with relation or anything with scopes. In any admin project we need to get data...