Assembler A short Overview
Content Language Levels High Level    micro code Machinecode language Assembler languages Structure Commands
Language Levels High Level Language Assembler Language Machine Language Micro -programming Hardware „ Firmware“ Normally deepest free accessible Level
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
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
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
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>
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
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 CX BX AX All purpose Register AH AL BH BL CL CH
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
Assembler – Flag Register Overflow  Direction Interrupt enable Trap Sign Zero Auxiliary carry Parity Carry O D I T S Z A P C
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 ??

Assembler

  • 1.
  • 2.
    Content Language LevelsHigh Level  micro code Machinecode language Assembler languages Structure Commands
  • 3.
    Language Levels HighLevel Language Assembler Language Machine Language Micro -programming Hardware „ Firmware“ Normally deepest free accessible Level
  • 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)
  • 5.
    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
  • 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 commands Micro code commands: Simpliest process controlling Moving of data Opening of grids Tests
  • 7.
    Machinecode language Machinecodecommand: Binary word (fix length, causes elementary operations within CPU) Machinecode program sequence of machinecode 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
  • 9.
    Machinecode language Datatransport commands Arithmetic and logical commands Process controlling commands In-/output commands Special commands Disadvantage: Difficultly readable No symbolic names(Mnemomics)
  • 10.
    Assembler languages Translatedinto machinecode language(Interpreter) Each operation code(opcode) owns one symbolic command Assignments of operand addresses are possible Labels for command addresses
  • 11.
    Assembler languages Usageof pseudo commands Commands for assembler Assigment of values/addresses(variables) Definition of the programstart addresses Allocating of memory for variables
  • 12.
    Assembler languages-structure Labelsymbolic 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>
  • 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
  • 14.
    Assembler – AssemblerInstructiuons (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
  • 15.
    Arithmetic example: Sourceand 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 CX BX AX All purpose Register AH AL BH BL CL CH
  • 16.
    Assembler – SpecialRegister 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
  • 17.
    Assembler – FlagRegister Overflow Direction Interrupt enable Trap Sign Zero Auxiliary carry Parity Carry O D I T S Z A P C
  • 18.
    Assembler – FlagRegister 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
  • 19.
    Assembler – FlagRegister 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
  • 20.
    Assembler – JumpOperations 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
  • 21.
    Sources http://www.informatik.ku-eichstaett.de /studium/skripte/ws0203/einf2/Vorlesung12.ppthttp://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
  • 22.
    Thanks 4 urAttention Any further questions ??