1 of 35

D - Programmazione in Assembly

ES03- Istruzioni di spostamento dati

FB - 12.2020 - v1.0

2 of 35

Istruzioni di spostamento dati

2

© FB - 12.2020

3 of 35

Indice

3

© FB - 12.2020

4 of 35

Obiettivi didattici

4

5 of 35

Obiettivi didattici

  • Familiarizzare con l'IDE Keil uVision
  • Debug delle istruzioni
  • Comprendere l'utilizzo delle istruzioni di spostamento dati

5

© FB - 12.2020

6 of 35

Introduzione teorica

7 of 35

Load/Store Instructions

7

© FB - 12.2020

8 of 35

Types of Load and Store Instructions

8

© FB - 12.2020

9 of 35

Data Movement Instructions - Memory Access

9

© FB - 12.2020

10 of 35

Indexed Load and Store Example

10

© FB - 12.2020

11 of 35

Load and Store Instructions, Pseudo instructions, Move istr.

11

© FB - 12.2020

12 of 35

Review of Pre-index and Post-index

12

© FB - 12.2020

13 of 35

Cortex-M4 Memory Map

13

© FB - 12.2020

14 of 35

Assembler User Guide

14

© FB - 12.2020

15 of 35

Esercitazione

16 of 35

Esercitazione

  • Utilizzando il modello di progetto testare su Keil gli esercizi presenti nelle seguenti pagine, rinominare la cartella del progetto in ES03-IstruzioniSpostamentoDati
  • Raccogliere tutte le catture in un unico file da consegnare tramite la tabella progetti
  • Nel file da consegnare aggiungere anche il link alla cartella contenente il progetto di Keil
  • Lavoro di gruppo: suddividere il lavoro tra i vari componenti del gruppo

16

© FB - 12.2020

17 of 35

Esercizio a - Esempi LOAD

  • Caricare in memoria 4 byte a piacere all’indirizzo 0x20000000 e provare le seguenti istruzioni. Scrivere come commento il valore atteso.
  • Tramite le opportune catture del debugger e commenti, dimostrare di aver codificato correttamente le istruzioni load [scarica il codice di esempio]

17

© FB - 11.2021

18 of 35

Esercizio b - Esempi STORE

  • Tramite le opportune catture del debugger e commenti, dimostrare di aver codificato correttamente le istruzioni di store seguenti [scarica il codice di esempio]

18

© FB - 11.2021

19 of 35

Esercizio c - LOAD e STORE con indirizzamento indicizzato

19

© FB - 12.2020

20 of 35

Esercizio c1 - pre-index LOAD

20

© FB - 12.2020

21 of 35

Esercizio c2 - post-index LOAD

21

© FB - 12.2020

22 of 35

Esercizio c3 - pre-index LOAD con aggiornamento

22

© FB - 12.2020

23 of 35

Esercizio c4 - pre-index STORE

23

© FB - 12.2020

24 of 35

Esercizio c5 - post-index STORE

24

© FB - 12.2020

25 of 35

Esercizio c6 - pre-index STORE con aggiornamento

25

© FB - 12.2020

26 of 35

Esercizio c

  • Tramite le opportune catture del debugger e commenti, dimostrare di aver codificato correttamente le istruzioni di LOAD e STORE con indirizzamento indicizzato mostrate nelle pagine precedenti. [scarica il codice di esempio]

26

© FB - 11.2021

27 of 35

Esercizio d - Istruzione di spostamento dato tra registri

27

© FB - 12.2020

28 of 35

Esercizio d

  • Tramite le opportune catture del debugger e commenti, dimostrare di aver codificato correttamente le istruzioni mostrate nella pagina precedente. [scarica il codice di esempio]

28

© FB - 12.2020

29 of 35

Esercizio e

  • Copiare il contenuto del registro r4 in r2
  • Scrivere la costante 0x3A nel registro r0
  • Scrivere in memoria il contenuto del registro r0 all'indirizzo contenuto nel registro r4
  • Scrivere in memoria un byte contenuto in r0 all'indirizzo contenuto in r4 più un offset di 4
  • Scrivere le istruzioni per caricare in memoria all'indirizzo 0x20000020 il numero 0xABB1FEDE

[scarica il codice di esempio]

29

© FB - 11.2021

30 of 35

Esercizio f

r0=0x20000000

Scrivere in memoria i valori riportati nella tabella a fianco e riportare il contenuto di r0 e di r1 dopo l'esecuzione di ognuna delle seguenti istruzioni:

LDRB r1,[r0]

LDRH r1,[r0,#6]

LDR r1,[r0,#4]!

LDRSB r1,[r0]

LDRB r1,[r0],#2

30

© FB - 11.2021

31 of 35

Valutazione

32 of 35

Consegna del lavoro

Raccogliere in un documento, da aggiungere alla tabella progetti, i passaggi principali dell’esercitazione

32

© FB - 11.2021

33 of 35

Grazie per l’attenzione

34 of 35

Link/Riferimenti

34

© FB - 11.2020

35 of 35

Revisioni

v1.0 10/12/20 - versione iniziale �v1.1 20/11/21 - riorganizzati gli esercizi

35

© FB - 11.2020