100 likes | 253 Views
ECE 447: Lecture 5. Software Development. High-level language (C, C++, Pascal, Fortran). compiler. Assembly language (68HC11, 8051, Z80). assembler. Object code. linker. Machine language. ECE 447: Software Abstraction Layers. C. Pascal. compiler. Intermediate Code. 68HC11. 8051.
E N D
ECE 447: Lecture 5 Software Development
High-level language (C, C++, Pascal, Fortran) compiler Assembly language (68HC11, 8051, Z80) assembler Object code linker Machine language ECE 447:Software Abstraction Layers
C Pascal compiler Intermediate Code 68HC11 8051 Z80 assembler Object code Object code Object code linker Machine language Machine language Machine language ECE 447:Software Abstraction Layers
1. Very hardware dependent 2. Not very portable (if at all) 3. Very detailed (responsible for all register contents) 4. No inherent data types 5. Requires programming discipline 6. Non-intuitive, requires clear documentation 7. Access to all hardware intricacies of the chip 8. Fastest execution 9. Less memory ECE 447: Assembly Characteristics
Assembly language [label] mnemonic [operands] START CLRA LDAA #$4A LDAA $5B, Y Machine code [prebyte] opcode [operands] $4F $86 $4A $18 $A6 $5B ECE 447:Assembly language vs. machine code
Number of instructions represented using a single-byte opcode 236 Number of instructions represented using a combination prebyte+opcode 76 Values of prebytes 18, 1A, CD ECE 447:Machine Code for 68HC11
Text editor Assembly source C source .c .s Cross-compiler m6811-elf-gcc Cross-assembler m6811-elf-as Object listing .lst Relocatable object .o Relocatable object .o libraries Linker m6811-elf-ld (m6811-elf-gcc) {lib_name}.a Linker command file User libraries memory.x {lib_name}.a Non-relocatable executable program (a.out) ECE 447: Software Cycle
Non-relocatable executable image a.out Downloadable file converter : m6811-elf-objcopy Downloadable file a.s19 ECE 447: Software Cycle
S108C000C601F7103D2C S123C005CE200020036F00088C205225F818CE2052CED8D12008E60018E7000818088CD80C S106C025E725F315 S106C0288EBFFFC5 S104C02B0E02 S106C02CBDC07719 S106C02F0F20FEDD S123C032CED85E3CBDC05638BDC03E39CEC80018CED800EC0018ED000808180818088CC8C2 S123C0528026F0393C3C308FC3000830ED02EE023C30EE083CCE00003CCC2052BDC0C33094 S123C072ED00383839FC20542708CC2052FE2054AD00CC2000FD205E5F4FFD2060C61FF7AA S123C0922064CE00003CCED8703CCC0002BDC032BDC0A6393736200FFE2050EE00AD00FE2E S123C0B22050EC02FD2050FC205026ECBDC02F38393736308F8300438F355F4FED20ED2F77 S123C0D27ECB7F30E619C125271FC6203A3C30E61B4F373630C64B3A3C30EC49BDCBB73053 S123C0F26C4A26026C497ECB7F308FC3000230ED176F006F01CCFFFFED1ECC0000ED1CC6C8 S123C11220E722306C4A26026C4930EE49E60030E719C020C15823037ECB5B4F05C3C137CE S123C1328FEE006E00C1E9CB5BCB5BC1F4CB5BC20DCB5BCB5BCB5BCB5BC241C202CB5BC118 S123C152FBC2DBCB5BC22BC2C1C2C1C2C1C2C1C2C1C2C1C2C1C2C1C2C1CB5BCB5BCB5BCB46 ………………………………. S112FFC700000000000000000000000000000027 S123FFD6C02FC02FC02FC02FC02FC02FC02FC02FC02FC02FC02FC02FC02FC02FC02FC02F17 S10DFFF6C02FC02FC02FC02FC00081 S9030000FC ECE 447: Motorola S-Record Format
S108C000C601F7103D2C Record type Data byte count Data bytes Load address Checksum S9030000FC Record type Data byte count Start address Checksum ECE 447: Motorola S-Records