2007-2008 PEMSY1http://www.voti.nl/hvu/PEMSY1 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.

Slides:



Advertisements
Verwante presentaties

Advertisements

PROS2 Les 13 Programmeren en Software Engineering 2.

Hoe werkt een rekenmachine?

Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een programma opbouwen.
Hardware (1) SGDB Informatica.
Par. 3.1 Computers zijn overal
Hardware (1) NSG Informatica.
Jerry van den Heuvel Pim van der Lee
Arduino project.
PROS2 Les 11 Programmeren en Software Engineering 2.
Auteursomgeving voor Digitale Componenten
PowerPC Practicum. Introductie Doel practicum = Computers begrijpen Leer de werking van een computer door een emulator te bouwen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Instructieformaten adressering assembleertalen (zelfstudie.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(2): Instructieformaten adressering assembleertalen.
F. Rubben NI Lookout 1 06/RIS/05 - NI Lookout VTI Brugge F. Rubben, ing.
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.

1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Macro’s C.
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer.
De processor.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
1Ben Bruidegom 1 Hoe werkt een “loopje” nu precies? Recapitulatie rekenmachines week 1 Van rekenmachine naar rekenmachine met “loopjes”
1Ben Bruidegom A Harvard Machine Calculator Calculator  Computer.
Auteursomgeving voor Digitale Componenten
1Ben Bruidegom A Harvard Machine Recapitulatie Calculator Calculator  Calculator met “loopjes” Calculator met “loopjes”  Processor.
Numerieke Natuurkunde
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
Een echte re stack-machine nMemory nRegisters R0 R1 R2 R3 R4 PC SP MP nMemory uProgram uStack uMemory nRegisters uProgr.counter uStack pointer uMark pointer.
Hoe werkt een rekenmachine?
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
6.1 Inleiding HOOFDSTUK 6 METHODEN
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 4 - onderwerpen Multiplexen.
PEMSY1http:// 1  Herhaling: combineren van assembler en C  Herhaling: subroutine  geen nieuwe opgave Voorbeeld tentamen:
PEMSY1http:// 1  Herhaling: - ACPS - set status, conditioneel uitvoeren - indexed addressing  Nieuw: - CMP, CMN - half-word.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
VPEMSY1, D3ECPT2, DU1EMSY1 : ARM Assemblerhttp:// Hogeschool Utrecht / Electrical Engineering & Design 1 Hogeschool van Utrecht.
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen.
Samenwerking tussen processor, registers en RAMgeheugen
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Tircms02-p les 4 Preprocessor In- en uitvoer Diversen.
Inleiding computersystemen en netwerken deel 3 Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 3.1 Peter Kramer Mail:
PEMSY1http:// 1  Herhaling ARM assembler instructies  branch instructie  conditionele instructies en de flags  oefening.
Mail: (of Sheets en verdere info: Onderwerp: vervolg C
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen  DB036 printjes subroutines.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies  assembler.
PEMSY1http:// 1  Herhaling: combineren van assembler en C  Herhaling: subroutine  Oefening: melodie Klas EV2B: week.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 6 - onderwerpen Uitleg.
tircms02-p les 1 Operating Systems practicum
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 3 redirection,
Les 1: Zaterdag 10 mei 2014 Wim Peeters
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 2 - onderwerpen  Helaas nog geen printjes.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 2 - onderwerpen MPLAB.
VPEMSY1, D3ECPT2 : ARM Assembler 1 Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling: CMP, CMN,
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Instructie Programmeren Task 7
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Een embedded systeem: ARM bord.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
VPEMSY1, D3ECPT2 : ARM Assembler Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling B/BL, conditions,
Wat gaan we doen? Herhaling ARM assembler instructies
Wat gaan we doen? Herhaling: ACPS; indexed addressing; half-word/byte
Transcript van de presentatie:

PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler en C

PEMSY1http:// 2 CMP R2, R1 R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen - flags

PEMSY1http:// 3 CMN R1, #15 R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 = SP R14 = LR R15 = PC registers ……. FFFF FFFB FFFF FFFC FFFF FFFD FFFF FFFE FFFF geheugen - flags -

PEMSY1http:// 4 Variaties op LDR R0, [ R1 ]: LDR R0, [ R1 word (32 bit) LDRH R0, [ R1 half-word (16 bit) LDRB R0, [ R1 byte (8 bit) - H of B komt achteraan, dus: LDREQB - Let op de alignment van het geheugen adres! - Kan net zo bij STR

PEMSY1http:// 5 MOV R0, R1 ADD R0, R1, #2 SUBC R0, R1, R2, LSL #5 ADDS R1, R2, R3, ASR R4  boek p

PEMSY1http:// 6 Assembler en C

PEMSY1http:// 7 C source file (.c) Assembler source file (.asm) Object file Assembler source file (.asm) Object file C compiler Assembler C source file (.c)

PEMSY1http:// 8 Executable / image /.hex file Object file Linker Object file

PEMSY1http:// 9 Assembler – interne en externe labels  Default is een label lokaal (alleen voor deze file zichtbaar).  Je kan een label totempaal globaal (voor het hele programma beschikbaar) maken met.global totempaal  Als je een label (naampje) gebruikt dat niet in je file gedefinieerd is neemt de assembler aan dat het een globaal label is (in een andere file gedefinieerd).

PEMSY1http:// 10 C – interne en externe labels  Default is een naam die je definieert globaal (extern zichtbaar).  Als je een label (naampje) wilt gebruiken dat niet in je file gedefinieerd is dan moet je er een ‘externe definitie’ voor geven.

PEMSY1http:// 11 Assembler – interne en externe labels.global asm_counter, subroutine.bss asm_counter:.skip 4 my_counter:.skip 4.code ldr r0, =asm_counter ldr r1, =my_counter ldr r2, =c_counter bl f subroutine:add r1, r0, r1 mov pc, lr

PEMSY1http:// 12 C – interne en externe labels extern int asm_counter; extern int subroutine( int a, int b ); int c_counter; void f( void ){ int x; asm_counter++; c_counter++; x = subroutine( 6, 199 ); }

PEMSY1http:// 13 Maak op basis van je uitwerking van de opdracht van les3 een nieuwe applicatie. De main moet je in C schrijven. Deze main roept een in assembler geschreven PRINT_STRING subroutine (of hoe die bij jou ook heette) aan, met als argument (het adres van) een string. In C kan je die aanroep simpelweg schrijven als PRINT_STRING( ”Hi there” ); Laat op deze manier een paar verschillende teksten zien, met een pauze van een paar seconden ertussen (je moet dus ook een van de wait subroutines aanroepen).

PEMSY1http:// 14 Roep vanuit jouw assembler routine PRINT_STRING, tussen het ophalen en het printen van ieder character, een C functie aan, die dat character in een gewijzigde vorm weer teruggeeft. Bij voorbeeld: char next( char c ){ return c + 1; } Maar verzin zelf iets anders dat een wat meer herkenbaar resultaat oplevert!

PEMSY1http:// 15 Assembler file C file void main( … ){.. PRINT_STRING(.. ); … } char func( char x ){ … } PRINT_STRING … bl func …

PEMSY1http:// 16  Je moet iedere assembler functie die je uit C wil aanroepen in C definieren! Let op: wat moet je de assembler functie megeven? Dat worden de C argumenten.  Pas op dat je niet een C en een assembler file met de zelfde naam gebruikt, want die genereren de zelfde.o file…