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