Assembly Language – 1.

Slides:



Advertisements
Similar presentations
Intel 8086.
Advertisements

8086 Ahad.
Princess Sumaya Univ. Computer Engineering Dept. Chapter 2: IT Students.
 Suppose for a moment that you were asked to perform a task and were given the following list of instructions to perform:
1 COMS 361 Computer Organization Title: Instructions Date: 9/28/2004 Lecture Number: 10.
The Assembly Language Level
System Programming Mr. M. V. Nikum (B.E.I.T). Introduction What is System? System is the collection of various components Ex:- College is a system What.
The CPU Revision Typical machine code instructions Using op-codes and operands Symbolic addressing. Conditional and unconditional branches.
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#4)
Lab6 – Debug Assembly Language Lab
TK 2633 Microprocessor & Interfacing Lecture 3: Introduction to 8085 Assembly Language Programming (2) 1 Prepared By: Associate Prof. Dr Masri Ayob.
CSCE 121, Sec 200, 507, 508 Fall 2010 Prof. Jennifer L. Welch.
Room: E-3-31 Phone: Dr Masri Ayob TK 2633 Microprocessor & Interfacing Lecture 1: Introduction to 8085 Assembly Language.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
8051 ASSEMBLY LANGUAGE PROGRAMMING
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#1) By Dr. Syed Noman.
Joseph L. Lindo Assembly Programming Sir Joseph Lindo University of the Cordilleras.
INTRODUCTION TO IBM PC ASSEMBLY LANGUAGE
Chapter 2 Software Tools and Assembly Language Syntax.
1/2002JNM1 Basic Elements of Assembly Language Integer Constants –If no radix is given, the integer is assumed to be decimal. Int 21h  Int 21 –A hexadecimal.
Chapter 3 Elements of Assembly Language. 3.1 Assembly Language Statements.
Machine Instruction Characteristics
COMP2011 Assembly Language Programming and Introduction to WRAMP.
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
Chapter 1: Basic Concepts
Debug and Assembler By, B.R.Chandavarkar Lect. COMP Department NITK, Surathkal.
ITEC 352 Lecture 12 ISA(3). Review Buses Memory ALU Registers Process of compiling.
INSTRUCTION SET AND ASSEMBLY LANGUAGE PROGRAMMING
Assembly Language A Brief Introduction. Unit Learning Goals CPU architecture. Basic Assembler Commands High level Programming  Assembler  Machine Language.
Execution of an instruction
UHD:CS2401: A. Berrached1 The Intel x86 Hardware Organization.
Represents different voltage levels High: 5 Volts Low: 0 Volts At this raw level a digital computer is instructed to carry out instructions.
Sahar Mosleh California State University San MarcosPage 1 Assembly language and Digital Circuit By Sahar Mosleh California State University San Marcos.
Question What technology differentiates the different stages a computer had gone through from generation 1 to present?
Processor Fundamentals Assembly Language. Learning Objectives Show understanding of the relationship between assembly language and machine code, including.
CMSC 104, Lecture 061 Stored Programs A look at how programs are executed.
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
Computer Organization & Assembly Language University of Sargodha, Lahore Campus Prepared by Ali Saeed.
Introduction to Intel IA-32 and IA-64 Instruction Set Architectures.
Winter 2016CISC101 - Prof. McLeod1 Today Numeric representation (or “How does binary and hexadecimal work?”). How can a CPU understand instructions written.
First Foray into Programming (the hard way). A reminder from last lesson: A machine code instruction has two parts:  Op-code  Operand An instruction.
CC410: System Programming Dr. Manal Helal – Fall 2014 – Lecture 4 - Assembler 1.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ read/write and clock inputs Sequence of control signal combinations.
CHAPTER NINE.
Component 1.6.
Assembly language.
Assembly Lab 3.
Assembly Language (CSW 353)
Assembly Language programming
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Microprocessor and Assembly Language
Chapter 3 Machine Language and Assembly Language.
Chapter 3 Machine Language and Assembly Language.
Microprocessor and Assembly Language
INTRODUCTION ABOUT ASSEMBLY
Computer Organization and Assembly Language (COAL)
Introduction to Assembly Language
BIC 10503: COMPUTER ARCHITECTURE
CSCE Fall 2013 Prof. Jennifer L. Welch.
Winter 2018 CISC101 11/29/2018 CISC101 Reminders
Introduction to Intel IA-32 and IA-64 Instruction Set Architectures
Fundamentals of Computer Organisation & Architecture
Processor Fundamentals
CSCE Fall 2012 Prof. Jennifer L. Welch.
Instructions in Machine Language
CISC101 Reminders Labs start this week. Meet your TA! Get help with:
8051 ASSEMBLY LANGUAGE PROGRAMMING
Computer Organization and Assembly Language
Computer Organization and Assembly Language
Computer Architecture and System Programming Laboratory
Presentation transcript:

Assembly Language – 1

1. Machine Language This is what the computer actually sees and deals with. Every command the computer sees is given as a number or sequence of numbers. 2. Assembly Language This is the same as machine language, except the command numbers have been replaced by letter sequences which are easier to memorize. Other small things are done to make it easier as well. 3. High-Level Language They are there to make programming easier. Assembly language requires you to work with the machine itself. High-level languages allow you to describe the program in a more natural language. A single command in a high-level language usually is equivalent to several commands in an assembly language.

To study… - SELF-study Syntax Variables Basic data movements and arithmetic instructions Program organization – comprising code, data & stack Assembly lang prog MUST be converted to a machine lang prog before it can be executed  by an assembler

1. Syntax Assembly lang – low-level programming language An assembly language is specific to a certain computer architecture, in contrast to most high-level programming languages, which generally are portable to multiple systems.

Assembler Assembly language programs are converted into executable machine code by a utility program referred to as an assembler, the conversion process being referred to as assembly or assembling the program. Assembler  Microsoft Macro Assembler [MASM]

Assembly lang A program written in assembly language consists of a series of (mnemonic) processor instructions and meta-statements (known variously as directives, pseudo-instructions and pseudo-ops), comments and data. Assembly lang. instructions usually consist of  an opcode mnemonic  followed by a list of data, arguments or parameters. These are translated by an assembler into machine language instructions that can be loaded into memory and executed.

name operation operand(s) ;comment START: MOV CX, 5 ;যা ইচ্ছা লিখ! ‘;’ দিও!

Example The instruction that tells an x86 processor to move an immediate 8-bit value into a register. The binary code for this instruction: 10110 followed by a 3-bit identifier for which register to use. The identifier for the AL register is 000, so the following machine code loads the AL register with the data 01100001.

MOV AL, 61h ; Load AL with 97 decimal (61 hex) 10110 000 01100001 Instruction AL data B0 61 Instruction AL data In HEX  Intel assembly language provides the mnemonic MOV (an abbreviation of move) for instructions such as this so the machine code above can be written as follows in assembly language, complete with an explanatory comment if required, after the semicolon. MOV AL, 61h ; Load AL with 97 decimal (61 hex)

while 10110001 (B1) moves it into CL 0110010 (B2) does so into DL. The Intel opcode 10110000 (B0) copies an 8-bit value into the AL register, while 10110001 (B1) moves it into CL 0110010 (B2) does so into DL. MOV AL, 1h ; Load AL with immediate value 1 MOV CL, 5h ; Load AL with immediate value 5 MOV DL, 3h ; Load AL with immediate value 3

The reverse can at least partially be achieved by a disassembler. MOV EAX, [EBX] ; Move the 4 bytes in memory at the address contained in EBX into EAX MOV [ESI+EAX], CL ; Move the contents of CL into the byte at address ESI+EAX Transforming assembly language into machine code is the job of an assembler, and The reverse can at least partially be achieved by a disassembler.

Each computer architecture has its own machine language. Computers differ in the number and type of operations they support, in the different sizes and numbers of registers, and in the representations of data in storage. While most general-purpose computers are able to carry out essentially the same functionality, the ways they do so differ; the corresponding assembly languages reflect these differences.

.section .data Anything starting with a period isn’t directly translated into a machine instruction. Instead, it’s an instruction to the assembler itself. These are called assembler directives or pseudo-operations because they are handled by the assembler and are not actually run by the computer. The .section command breaks your program up into sections. This command starts the data section, where you list any memory storage you will need for data

.section .text which starts the text section. The text section of a program is where the program instructions live.

.globl _start This instructs the assembler that _start is important to remember. _start is a symbol, which means that it is going to be replaced by something else either during assembly or linking. Symbols are generally used to mark locations of programs or data, so you can refer to them by name instead of by their location number

_start: It defines the value of the _start label. A label is a symbol followed by a colon. Labels define a symbol’s value. When the assembler is assembling the program, it has to assign each data value and instruction an address. Labels tell the assembler to make the symbol’s value be wherever the next instruction or data element will be. This way, if the actual physical location of the data or instruction changes, you don’t have to rewrite any references to it - the symbol automatically gets the new value.

Next is instruction! MOV ADD .

Just a recap – Imp – on 8086 processor

8086 Internal Configuration

Simplified block diagram over Intel 8088 (a variant of 8086); 1=main registers; 2=segment registers and IP; 3=address adder; 4=internal address bus; 5=instruction queue; 6=control unit (very simplified!); 7=bus interface; 8=internal data bus; 9=ALU; 10/11/12=external address/data/control bus