/
Assembly Language – 1 Assembly Language – 1

Assembly Language – 1 - PowerPoint Presentation

lois-ondreau
lois-ondreau . @lois-ondreau
Follow
442 views
Uploaded On 2016-09-09

Assembly Language – 1 - PPT Presentation

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 t ID: 463469

assembly language assembler data language assembly data assembler machine mov program instruction instructions code start section register lang level

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Assembly Language – 1" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Assembly Language – 1Slide2

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.Slide3

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

assemblerSlide4

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. Slide5

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]Slide6

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.Slide7

name operation operand(s) ;comment

START:

MOV

CX

, 5

;

যা ইচ্ছা লিখ! ‘

;

’ দিও!Slide8

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

.Slide9

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 thisso 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)Slide10

The Intel

opcode

10110

000

(B0

h

) copies an 8-bit value into the

AL

register;

while

10110

001

(B1

h

) moves it into

CL.

10110

010

(B2) does so into

DL.

MOV AL, 1h ; Load AL with immediate value 1MOV CL, 5h ; Load

CL with immediate value 5MOV

DL, 3h ; Load DL with immediate value 3Slide11

--

Transforming assembly language into machine code is the job of an

assembler

, and

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+EAXSlide12

PC to PC: vary…

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.Slide13

.section .data

Anything

starting with a period

isn’t directly translated into a machine instruction.

Instead, it’s an instruction to the assembler itself.

…called

assembler directives

, or

pseudo-operations

because they are handled by the assembler & are

not actually run by the computer.

.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.Slide14

.section .text

which starts the

text section

.

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

.

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 numberSlide16

_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.Slide17

Next is instruction!

MOV

ADD

.

.

.