Power PC Assembler
Assembler toolkit bevat Assembler zelf Linkerlibrarian
Power PC processor Ontwikkeld door IBM & Motorola Vervangt de 68xxx familie RISC processor
Power PC familie Enkele subfamilies met vele devices Komen voor in desktop en embedded systems Subfamilies gemeenschappelijke architectuur
Power PC EABI Gebaseerd op ABI(Binary interface) System V Release 4 standard (SVR4) Onnodige functies vervangen Voordeel van EABI compiler
Big- and Little Endia 32 bitwaarde vb. 4A3B2C1D op geheugenplaats …4A3B2C1D… …1D2C3B4A… Big endia Little endia Power PC kan allebei Mixed mode niet mogelijk
Small data areas Alle instructies 4 bytes(32 bit) lang Bij grote geheugens vb. 64 K, 2 instructies nodig Een instructie die lage geheugenplaats aanwijst 2de instructie die hoge aanwijst Vaak aangesproken adressen -> verlies van tijd Plaatsen van 32 bit adres in lage geheugenplaats en wordt door pointer aangewezen Gebruikt maken van signed 16 bit getal 2^15=32768 Met + en – krijgen we adressen -> 64K
ELF file format Maakt een uitvoerbaar bestand van object code Lijkt op COFF( voor UNIX) Verschil: alles van objectfile in secties: –File header –Section table –Program header table
ELF file format Andere informatie in secties: –Symbol table –String table –Relocation entries –Debug information Vereenvoudigt het bestand zonder verlies van functionaliteit
Dwarf debuf format Standaard voor debuginformatie van object file EABI ondersteunt Dwarft 1.1 en 2.0 Goede integratie van de EABI compiler en debugger
Power assembler toolkit De Assembler: –Converteert assembler code in ELF file –Instructies zijn µp afhankelijk –Compacte en gestructureerde code
Power assembler toolkit Instructies –Combinatie van mnemonics en komma’s –Mnemonics verschillend voor IBM & Motorola –Oplossing: pseudo instructies voor algemeen instructies –Registers(intern/extern) aanspreken via: Symbolische naam: r13 Numerieke naam: 13
Power PC assembler directives Types: –Sectie gebruik –Macro gebruik –Herhaal blokken –Condities –Data declaratie voor standaart types(long, byte,…) –Listing en object file controle
The linker Koppelt objecten en bibs aan elkaar Linking commando’s: verschillende betekenissen voor linken van delen Vooral gebruikt voor plaatsen van secties in het geheugen Begint tenzij ORDER gebruikt wordt
Conclusie