22
1 Assembler A short Overview

1 Assembler A short Overview. 2 Content Language Levels High Level micro code Machinecode language Assembler languages Structure Commands

Embed Size (px)

Citation preview

Page 1: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

1

Assembler

A short Overview

Page 2: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

2

Content

Language LevelsHigh Level micro codeMachinecode language

Assembler languagesStructureCommands

Page 3: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

3

Language LevelsHigh Level Language

Assembler Language

Machine Language

Micro -programming

Hardware

„Firmware“

Normally deepest free accessible Level

Page 4: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

4

High Level Micro Code

High Level language Formulating program for certain application

areas Hardware independent

Assembler languages Machine oriented language Programs orient on special hardware

properties More comfortable than machine code

(e.g. by using symbolic notations)

Page 5: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

5

High Level Micro Code

Machine code:

Set of commands directly executable via CPU

Commands in numeric codeLowest semantic levelGenerally 2 executing oportunities:

• Interpretiv via micro code• Directly processing via hardware

Page 6: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

6

High Level Micro Code

Micro programming:Implementing of executing of machine

commands (Control unit - controller)Machine command executed/shown as

sequence of micro code commandsMicro code commands:

• Simpliest process controlling• Moving of data• Opening of grids• Tests

Page 7: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

7

Machinecode language

Machinecode command:Binary word (fix length, causes

elementary operations within CPU)

Machinecode programsequence of machinecode commands

Page 8: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

8

Machinecode language

Structure:Operationcode

• Defining executable operation

Operandaddress• Spezification of operands

• Constants/register addresses/storage addresses

Difference between 1/2/3 address machines

OpCode OpAddress

Page 9: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

9

Machinecode language

Data transport commands Arithmetic and logical commands Process controlling commands In-/output commands Special commands Disadvantage:

Difficultly readable No symbolic names(Mnemomics)

Page 10: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

10

Assembler languages

Translated into machinecode language(Interpreter)

Each operation code(opcode) owns one symbolic command

Assignments of operand addresses are possible

Labels for command addresses

Page 11: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

11

Assembler languages

Usage of pseudo commands Commands for assembler Assigment of values/addresses(variables) Definition of the programstart addresses Allocating of memory for variables

Page 12: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

12

Assembler languages-structure

Label symbolic labeling of an assembler address

(command address at Machine level) Mnemomic

Symbolic description of an operation Operands

Contains of variables or addresse if necessary Comments

<Mnemomic> <Operand> Comments<Label>

Page 13: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

13

Assembler Languages - Machine Instructions

Bitpatterns are created, executed as commands by CPU

Classes: Arithmetic/logical Operations(ADD,SUB,XOR,

administrative commands - EQU, shifting&rotation commands)

Data transfer(load/save operations, speicher<>register, register<>register)

Control commands(jump op. [un-]conditional /relativ,control op. – STOP)

In-/output commands

Page 14: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

14

Assembler – Assembler Instructiuons (Pseudo Commands)

Instructions to assembler Controlling translation process No creation of machine code Affect creation of machine instructions

Types: Program organisation equations and symbolic Addresses Definition of Constants and Memory Addressing

Page 15: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

15

Arithmetic example: Source and Destination Data width has to

euqal AX , BX, CX, DX, SI, DI, BP, SP; arithmetic operations

ADD AX, BX ; AX := AX+BX

SUB AH,AL ; AH := AH - AL

MOV AL, CL ; AL := CL

INC CX ; CX := CX+1

DEC CL ; CL := CL-1

NEG CX ; CX := -CX

Assembler – All purpose Register

AH AL

BH BL

CLCHCX

BX

AX

All purpose Register

Page 16: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

16

Assembler – Special Register

Unless to all-purpose registersSpecial register(SS, DS, CS, ES, IP)

• Never ever are• Destination/Source of a „mov“ command• Destination of arithmetic operations

Page 17: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

17

Assembler – Flag Register

Overflow

Direction

Interrupt enable

Trap

Sign

Zero

Auxiliary carry

Parity

Carry

O D I T S Z A P C

Page 18: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

18

Assembler – Flag Register FLAG-Bits:

C Carry Area crossing of unsigned numbers

A Aux. Carry Area crossing at BCD-design O Overflow Area crossing at arithmetic

operation with signed numbers S Sign True if result = negativ Z Zero Result = Null P Parity Result has an even number of 1

Bits D Direction flag Defines direction of string-

commands I Interrupt Global Interrupt Enable/Disable

Flag T Trap Flag Used by debugger, allows single-

step- modus

Page 19: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

19

Assembler – Flag Register

Missing flags:• V: Two’s complement overflow indicator• H: Half Carry Flag

Operations and flagsADD, SUB, NEG affects O, S, Z, A, P, C

INC, DEC -“- O, S, Z, A, P

MUL, DIV -“- O, C

AND, OR , XOR -“- S, Z, P, C

Page 20: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

20

Assembler – Jump Operations

Un-/conditioned jumpsExample:

Mov AX, 0

CMP CX, 0

again: JZ end (jumpzero, conditioned j.)

ADD AX, CX

DEC CX

JMP again (unconditioned jumped)

end: NOP

Page 21: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

21

Sources

http://www.informatik.ku-eichstaett.de /studium/skripte/ws0203/einf2/Vorlesung12.ppt

http://www-ist.massey.ac.nz/GMoretti/159704/Lectures/1-Languages-Translation-&-Assemblers.pdf

http://www.mathematik.uni-marburg.de/~priebe/lehre/ws0001/ti1/Skript/TechInf1Lo08.ppt

E:\temp\4.Semester\Intro into Dig.Computing\Doku\Befehlssatz.pdf

Page 22: 1 Assembler A short Overview. 2 Content Language Levels High Level  micro code Machinecode language Assembler languages Structure Commands

22

Thanks 4 ur Attention

Any further

questions

??