logo_toms
  • HOME
  • Tom’s hardware
  • Game Division
  • MobileLabs
  • Cultura Pop
  • MotorLabs
  • B2BLABS
  • More
  • forum
  • offerte
  • forum
hammer_toms
  • HOME
  • Tom’s hardware
  • Game Division
  • MobileLabs
  • Cultura Pop
  • MotorLabs
  • B2BLABS
  • More
  • forum
  • offerte
  • forum
  • Recensioni
  • The Division 2
  • Google Stadia
  • Windows May Update
  • Snapdragon
  • Amazon Echo
  • AMD Ryzen 3000
  • Codici sconto
IoT

Variabili numeriche in mikroBasic

Tom's Hardware vive grazie al suo pubblico. Quando compri qualcosa dai nostri link, potremmo guadagnare una commissione. Scopri di più

IoT

Variabili numeriche in mikroBasic

di Elettronica Open Source lunedì 10 Aprile 2017 8:07
  • 2 min
  • vai ai commenti
Più informazioni su
  • EMC
  • Programmazione
  • IoT
banner prova1

Più un linguaggio di programmazione è ad alto livello e più esso permette la gestione di variabili molto capienti che esulano dall'architettura della macchina. A volte, infatti, un microcontrollore (MCU), dotato di registri utente a 8 bit, programmato in Assembler o in linguaggio macchina, gestisce solamente variabili di quella grandezza. La potenza di un linguaggio performante, invece, riesce a superare questo limite, consentendo l'utilizzo di variabili numeriche ben più grandi.

Leggi anche: Cos'è un microcontrollore? Introduzione per principianti

Alla data della scrittura del presente articolo, la MikroElektronika ha rilasciato la versione 7.1.0 del mikroBasic. Vediamo quali tipologie di dati numerici riesce a sopportare e qual è la loro occupazione in RAM, nella tabella sottostante:

Tipo Dimensione Intervallo
bit 1-bit 0 ÷ 1
sbit 1-bit 0 ÷ 1
byte, char 8-bit 0 255
short 8-bit -128 .. 127
word 16-bit 0 .. 65535
integer 16-bit -32768 .. 32767
longword 32-bit 0 .. 4294967295
longint 32-bit –2147483648 .. 2147483647
float, double 32-bit ±1.17549435082 * 10-38 .. ±6.80564774407 * 1038

Come si vede, quasi tutte le esigenze del programmatore sono coperte e sono previste variabili con o senza segno. Superando i limiti della MCU, possiamo dire che ad esempio, la variabile di tipo longword, utilizza una costruzione di tipo software, indipendente dall'architettura del microcontrollore utilizzato. Questo si traduce, ovviamente, in una lievitazione del codice eseguibile e di una relativa lentezza nella sua esecuzione. Ma lo scopo finale è brillantemente raggiunto, con pochi sacrifici dal punto di vista della programmazione.

La memoria delle MCU non è altrettanto vasta di quella dei PC. Per questo motivo, il programmatore deve cercare di risparmiare al massimo lo spazio occupato dai dati, un po' come quando, agli inizi dell'era informatica, le risorse elettroniche erano ridotte ai minimi termini. Osserviamo adesso il seguente listato:

program MyProject

dim x as longword

dim y as longword

dim i as longword

main:

x=3

y=7

i=x+y

end.

Le operazioni aritmetiche svolte dal programma sono ridotte al minimo (solo una somma), ed è del tutto inutile riservare tanto spazio in memoria, e disturbare delle grosse locazioni. Meglio utilizzare il più adatto tipo byte. La figura sottostante mostra l'occupazione in RAM delle tre variabili, prima di tipo longword e poi di tipo byte.

figura 1 ram
FIGURA 1: Occupazione del programma in memoria

Come si nota, cambiando semplicemente la tipologia della variabile utilizzata si riduce enormemente l'occupazione, con conseguente velocità e ottimizzazione nell'esecuzione. Ovviamente se il programmatore prevede che, nel corso della vita del suo firmware, un certo valore raggiunga limiti prestabiliti, magari di elevata consistenza, deve utilizzare, gioco forza, il massimo contenitore, anche se la reale capienza è utilizzata poche volte.

Anche la codifica in Assembler risulta differente, come si può evincere dalla figura sottostante.

figura 2 assembler
FIGURA 2: Differenze di lunghezza dei listati in Assembler

Una attenta pianificazione delle variabili fa sempre la differenza ed essa costituisce, a tutti gli effetti, una delle più critiche fasi della programmazione.

di Elettronica Open Source
lunedì 10 Aprile 2017 8:07
  • 2 min
  • vai ai commenti
Shares
Più informazioni su
  • EMC
  • Programmazione
  • IoT

Scarica gratis

l'app di Tom's Hardware
Vuoi ricevere aggiornamenti sui tuoi topics preferiti ogni giorno? Iscriviti alla newsletter
Leggi i commenti
toms_logo_white_footer
  • Privacy
  • Chi siamo
  • Contattaci
  • Feed RSS
  • Codici sconto
Google Play
App Store

3LABS S.R.L. • Via Dante 16 - Milano (MI) 20121
CF/P.IVA: 04146420965 - REA: MI - 1729249 - Capitale Sociale: 10.000 euro

Testata giornalistica associata all'USPI Unione Stampa Periodica Italiana, registrata presso il Tribunale di Milano, nr. 285 del 9/9/2013 - Direttore: Andrea Ferrario

Copyright © 2022 - 3Labs Srl. - Tutti i diritti riservati. - credits: logo_edinet


  • Tom's Hardware
  • Game division
  • MobileLabs
  • Cultura Pop
  • MotorLabs
  • B2BLabs
  • More
  • Home
  • Le news di oggi
  • Le news di ieri
  • Le news dell'altro ieri

Ultime news

Ultimo video

Da non perdere su Tom's Hardware
Mini Frigo Xbox Series X
Il frigo Xbox torna su Gamestop, correte prima che vada esaurito!
Sul sito di GameStop è nuovamente disponibile il meraviglioso mini frigo Xbox Series X, un prodotto assolutamente imperdibile per gli amanti…
2 di Valentina Valzania - 14 minuti fa
  • Mini Frigo Xbox Series X
  • Xbox
  • Xbox Series X
2
Offerta
Xbox Series S
Xbox Series S al prezzo più basso della rete su eBay!
Xbox Series S è in sconto su eBay al prezzo più basso della rete! Approfittane prima di partire per le…
2 di Tom's Hardware - 17 minuti fa
  • Offerte Console
  • Offerte e Sconti
  • Offerte eBay
  • Offerte Gaming
  • Offerte Microsoft
  • Offerte Xbox
  • Xbox Series
  • Xbox Series S
2
Offerta