250 likes | 752 Vues
Assembler. A short Overview. Content. Language Levels High Level micro code Machinecode language Assembler languages Structure Commands. Language Levels. High Level Language. Assembler Language. Normally deepest free accessible Level. Machine Language. Micro -programming.
E N D
Assembler A short Overview
Content • Language Levels • High Level micro code • Machinecode language • Assembler languages • Structure • Commands
Language Levels High Level Language Assembler Language Normally deepest free accessible Level Machine Language Micro -programming „Firmware“ Hardware
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)
High Level Micro Code • Machine code: • Set of commands directly executable via CPU • Commands in numeric code • Lowest semantic level • Generally 2 executing oportunities: • Interpretiv via micro code • Directly processing via hardware
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
Machinecode language • Machinecode command: • Binary word (fix length, causes elementary operations within CPU) • Machinecode program • sequence of machinecode commands
OpCode OpAddress Machinecode language • Structure: • Operationcode • Defining executable operation • Operandaddress • Spezification of operands • Constants/register addresses/storage addresses • Difference between 1/2/3 address machines
Machinecode language • Data transport commands • Arithmetic and logical commands • Process controlling commands • In-/output commands • Special commands • Disadvantage: • Difficultly readable • No symbolic names(Mnemomics)
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
Assembler languages • Usage of pseudo commands • Commands for assembler • Assigment of values/addresses(variables) • Definition of the programstart addresses • Allocating of memory for variables
<Label> <Mnemomic> <Operand> Comments 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
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
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
AH AL BH BL CH CL Assembler – All purpose Register • 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 All purpose Register AX BX CX
Assembler – Special Register • Unless to all-purpose registers • Special register(SS, DS, CS, ES, IP) • Never ever are • Destination/Source of a „mov“ command • Destination of arithmetic operations
O D I T S Z A P C Assembler – Flag Register Zero Carry Sign Parity Trap Auxiliary carry Interrupt enable Direction Overflow
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
Assembler – Flag Register • Missing flags: • V: Two’s complement overflow indicator • H: Half Carry Flag • Operations and flags ADD, 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
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
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
Thanks 4 ur Attention Any further questions ??