Professional Documents
Culture Documents
A short Overview
1
Content
Language Levels
High Level micro code
Machinecode language
Assembler languages
Structure
Commands
2
Language Levels
High Level Language
Assembler Language
Micro „Firmware“
-programming
Hardware
3
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)
4
High Level Micro Code
Machine code:
5
High Level Micro Code
Micro programming:
Implementing of executing of machine
commands (Control unit - controller)
Machine command executed/shown as
sequence of micro code commands
Micro code commands:
• Simpliest process controlling
• Moving of data
• Opening of grids
• Tests
6
Machinecode language
Machinecode command:
Binary word (fix length, causes
elementary operations within CPU)
Machinecode program
sequence of machinecode commands
7
Machinecode language
Operationcode
• Defining executable operation
Operandaddress
• Spezification of operands
• Constants/register addresses/storage
addresses
Difference between 1/2/3 address
machines
8
Machinecode language
In-/output commands
Special commands
Disadvantage:
Difficultly readable
No symbolic names(Mnemomics)
9
Assembler languages
10
Assembler languages
Usage of pseudo commands
Commands for assembler
Assigment of values/addresses(variables)
Definition of the programstart addresses
Allocating of memory for variables
11
Assembler languages-structure
<Label> <Mnemomic> <Operand> Comments
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
12
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
13
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
14
Assembler – All purpose Register
Arithmetic example:
Source and Destination Data width has to
euqal
AX , BX, CX, DX, SI, DI, BP, SP
; arithmetic operations
All purpose
ADD AX, BX ; AX := AX+BX Register
SUB AH,AL ; AH := AH - AL
MOV AL, CL ; AL := CL AX AH AL
INC CX ; CX := CX+1
DEC CL ; CL := CL-1 BX BH BL
NEG CX ; CX := -CX
CX CH CL
15
Assembler – Special Register
16
Assembler – Flag Register
O D I T S Z A P C
Zero
Sign Carry
Trap Parity
Interrupt enable Auxiliary carry
Direction
Overflow
17
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
18
Assembler – Flag Register
Missing flags:
• V: Two’s complement overflow indicator
• H: Half Carry Flag
19
Assembler – Jump Operations
Un-/conditioned jumps
Example:
Mov AX, 0
CMP CX, 0
again: JZ end (jumpzero, conditioned j.)
ADD AX, CX
DEC CX
JMP again (unconditioned jumped)
end: NOP
20
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
21
Thanks 4 ur Attention
Any further
questions
??
22