text: I gasteropodi (Gastropoda ) sono la classe di molluschi viventi che ha avuto, dove si consideri il numero di specie esistenti e la varietà di nicchie ecologiche occupate, il maggior successo evolutivo, soprattutto grazie ad adattamenti anatomici che sono molto diversi da quelli dei Monoplacofori dai quali si sono presumibilmente originati. Comprendono chiocciole, lumache e numerosi animali marini che sono noti soprattutto per le loro conchiglie (anche se un gran numero di essi, tra cui la totalità dei nudibranchi, ne è privo). Etimologia La parola gasteropode deriva dal greco γαστήρ (gastḗr) = stomaco e πούς (poús) = piede, a indicare animali che si spostano strisciando sul proprio stomaco, come era inizialmente ritenuto. Precedentemente erano anche indicati col nome di univalvi, per differenziarli dai bivalvi. Descrizione La modificazione più appariscente rispetto ai molluschi ancestrali consiste in una rotazione (nota come 'torsione dei visceri') del sacco dei visceri e della cavità palleale attorno ad un asse verticale ed un suo avvolgimento a spirale (asse detto columella), che coinvolge anche la conchiglia. I Gasteropodi hanno quindi perduto la simmetria bilaterale. Questo fenomeno, classificato come incidente evolutivo, cioè come un'anomalia nello sviluppo di larve che è stata selezionata positivamente dalla selezione naturale, ha comportato numerosi vantaggi tra i quali l'apertura anteriore (non più posteriore) della cavità palleale e conseguente ottimizzazione della ossigenazione di questa visto che l'acqua non doveva essere condotta attivamente da cellule ciliate, ma veniva introdotta durante la semplice locomozione dell'animale. Inoltre, insieme alla chiastoneuria, torsione a 180° del sistema nervoso con la produzione di una forma ad x, la torsione ha permesso l'occupazione di uno stadio volumetrico minore e di compattare le dimensioni. Grazie a questo i Gasteropodi possono ritirarsi nella conchiglia, divenendo maggiormente difesi dalla predazione. Il compattamento delle dimensioni permette la stabilizzazione del baricentro mentre l'animale si muove all'interno della colonna d'acqua. La conchiglia può essere opercolata grazie a membrane coriacee che vengono prodotte per proteggere il piede. Il piede e il capo sono evidenti e sul capo sono presenti appendici cefaliche retrattili, dette "antenne", con funzioni tattili e/o visive. I gasteropodi marini, quasi tutti bentonici, possono avere una massa anche di alcuni chilogrammi. Quelli terrestri hanno evoluto un polmone nella cavità del mantello che si chiama perciò sacco polmonare; sono in ogni caso relegati ad ambienti umidi. Sia le specie acquatiche, sia quelle terrestri che hanno perso la conchiglia possono essere rivestite da un ispessimento membranoso chiamato clipeo. Biologia Alimentazione La maggior parte dei gasteropodi sono fitofagi; specie fitofaghe si trovano sia tra i cenogasteropodi (per esempio i Littorinidi) che tra gli eterobranchi (la gran parte degli eupolmonati, diversi sacoglossi come Berthelinia spp. o Elysia spp.). Molte specie usano la radula per staccare le alghe incrostanti dal substrato, altre brucano alghe erette, alcune (p.es Haliotis spp.) salgono sulle alghe con il piede e le rompono in pezzi. Esistono anche molte specie carnivore. Alcune specie lacerano le prede (in genere bivalvi, altri gasteropodi, ricci, stelle di mare, policheti ma anche crostacei e pesci) utilizzando i denti della radula. Alcune specie (ad esempio i Conidi o i Turridi) si nutrono di prede che arpionano e avvelenano con i denti radulari. Altre come per esempio Tonna spp., Phalium spp., Cymatium spp., si infossano nella sabbia per raggiungere le prede e le narcotizzano con secrezioni salivari contenenti acido solforico. Altre ancora come Murex spp., Urosalpinx spp. o Natica spp. possiedono una sorta di proboscide estensibile, che utilizzano per perforare la conchiglia di patelle, balani e bivalvi, dei quali mangiano i tessuti molli. Alcune specie come Cassis usano la radula per incidere la teca calcarea dei ricci di mare. Alcune specie sono detritivore cioè si nutrono di particelle di materia organica; tra di essi alcuni cenogasteropodi come Nassarius spp. e Tritia spp., e molte specie di chiocciole, tra cui Cerithium spp., Cerithidea spp., Batillaria spp.. Alcune specie come quelle dei generi Strombus e Aporrhais aspirano detriti servendosi di un grande sifone mobile, con cui setacciano il fondale. Alcuni gasteropodi sono filtratori che si nutrono di particelle sospese di plancton). Un metodo di filtrazione è quello adottato da alcun littorinimorfi (Crepidula spp.) che usano le ciglia delle branchie per filtrare la corrente d'acqua e convogliare le particelle alimentari. Molti gasteropodi vermiformi (p.es. Turitellidae e Vermetidae) usano le branchie come superficie di raccolta del cibo. Alcune specie di farfalle di mare secernono una rete di muco, che ricopre i parapodi sulle cavità del mantello, permettendogli di catturare piccoli organismi planctonici. Esistono poi alcune specie che sono parassite di altri organismi. La maggior parte di esse sono piccoli ectoparassiti, come p.es. il piramidellide Brachystoma, che si nutre del sangue di bivalvi e policheti, o l'eulimide Stilifer, che possiede una robusta proboscide che spinge all'interno della cavità del corpo dell'ospite (stelle di mare), ma alcune hanno sviluppato abitudini endoparassite come Entochonca (Eulimidae) che vive nel celoma periviscerale delle oloturie. Riproduzione Tra le specie marine ve ne sono parecchie gonocoriche, i Polmonati invece sono ermafroditi insufficienti. Nelle forme terrestri è inoltre scomparsa la forma larvale: dall'uovo emerge una forma giovanile simile all'adulto. Tassonomia La classificazione dei gasteropodi ha subito nel corso degli anni significative modificazioni. Classificazione tradizionale La più antica classificazione dei gasteropodi risale al lavoro dello zoologo tedesco Johannes Thiele che nel 1925 produsse una suddivisione, basata su caratteristiche morfologiche, organizzata in 4 sottoclassi: Prosobranchia, gasteropodi dotati di branchie situate nella parte anteriore del corpo Opisthobranchia, gasteropodi dotati di branchie situate nella parte posteriore del corpo Pulmonata, gasteropodi dotati di polmoni Gymnomorpha, gasteropodi senza conchiglia Le caratteristiche morfologiche su cui si basava questa classificazione sono risultate frutto di mera convergenza evolutiva. Classificazione di Ponder & Lindberg (1997) Un primo tentativo di integrare gli aspetti morfologici con le evidenze filogenetiche è stato messo a punto nel 1997 da Ponder & Lindberg, che hanno proposto una suddivisione in due sottoclassi: Eogastropoda e Orthogastropoda. Classe Gastropoda Incertæ sedis Ordine Bellerophontinaka † fossile Ordine Mimospirina † fossile Sottoclasse Eogastropoda Ordine Euomphalida † fossile Superfamiglia Macluritoidea Superfamiglia Euomphaloidea Superfamiglia Platyceratoidea Ordine Patellogastropoda Sottordine Patellina Superfamiglia Patelloidea Sottordine Nacellina Superfamiglia Acmaeoidea Superfamiglia Nacelloidea Sottordine Lepetopsina Superfamiglia Lepetopsoidea Sottoclasse Orthogastropoda Incertæ sedis Ordine Murchisoniina † fossile Superfamiglia Murchisonioidea Superfamiglia Loxonematoidea Superfamiglia Lophospiroidea Superfamiglia Straparollinoidea Grade Sottulitoidea Superordine Cocculiniformia Superfamiglia Cocculinoidea Superfamiglia Lepetelloidea Superordine "Hot Vent Taxa" Ordine Neomphaloida Superfamiglia Neomphaloidea Superfamiglia Peltospiroidea Superordine Vetigastropoda Superfamiglia Fissurelloidea Superfamiglia Haliotoidea Superfamiglia Lepetodriloidea Superfamiglia Pleurotomarioidea Superfamiglia Seguenzioidea Superfamiglia Trochoidea Superordine Neritaemorphi Ordine Cyrtoneritomorpha † fossile Ordine Neritopsina Superfamiglia Neritoidea Superordine Caenogastropoda Ordine Architaenioglossa Superfamiglia Ampullarioidea Superfamiglia Cyclophoroidea Ordine Sorbeoconcha Sottordine Discopoda Superfamiglia Campaniloidea Superfamiglia Cerithioidea Sottordine Hypsogastropoda Infraordine Littorinimorpha Superfamiglia Calyptraeoidea Superfamiglia Capuloidea Superfamiglia Carinarioidea Superfamiglia Cingulopsoidea Superfamiglia Cypraeoidea Superfamiglia Ficoidea Superfamiglia Laottierinoidea Superfamiglia Littorinoidea () Superfamiglia Naticoidea Superfamiglia Rissooidea Superfamiglia Stromboidea Superfamiglia Tonnoidea Superfamiglia Trivioidea Superfamiglia Vanikoroidea Superfamiglia Velutinoidea Superfamiglia Vermetoidea Superfamiglia Xenophoroidea Infraordine Ptenoglossa Superfamiglia Eulimoidea Superfamiglia Janthinoidea Superfamiglia Triphoroidea Infraordine Neogastropoda Superfamiglia Buccinoidea Superfamiglia Cancellarioidea Superfamiglia Conoidea Superfamiglia Muricoidea Superordine Heterobranchia Ordine Heterostropha Superfamiglia Architectonicoidea Superfamiglia Nerineoidea † fossile Superfamiglia Omalogyroidea Superfamiglia Pyramidelloidea Superfamiglia Rissoelloidea Superfamiglia Valvatoidea Ordine Opisthobranchia Sottordine Cephalaspidea Superfamiglia Acteonoidea Superfamiglia Bulloidea Superfamiglia Diaphanoidea Superfamiglia Haminoeoidea Superfamiglia Philinoidea Superfamiglia Ringiculoidea Sottordine Sacoglossa Superfamiglia Oxynooidea Superfamiglia Cylindrobulloidea Superfamiglia Elysioidea Superfamiglia Limapontioidea Sottordine Anaspidea Superfamiglia Akeroidea Superfamiglia Aplysioidea Sottordine Notaspidea Superfamiglia Tylodinoidea Superfamiglia Pleurobranchoidea Sottordine Thecosomata Infraordine Euthecosomata Superfamiglia Limacinoidea Superfamiglia Cavolinioidea Infraordine Pseudothecosomata Superfamiglia Peraclidoidea Superfamiglia Cymbulioidea Sottordine Gymnosomata Famiglia Clionidae Famiglia Cliopsidae Famiglia Hydromylidae Famiglia Laginiopsidae Famiglia Notobranchaeidae Famiglia Pneumodermatidae Famiglia Thliptodontidae Sottordine Nudibranchia Infraordine Anthobranchia Superfamiglia Doridoidea Superfamiglia Doridoxoidea Superfamiglia Onchidoridoidea Superfamiglia Polyceroidea Infraordine Cladobranchia Superfamiglia Dendronotoidea Superfamiglia Arminoidea Superfamiglia Metarminoidea Superfamiglia Aeolidioidea Ordine Pulmonata Sottordine Systellommatophora Superfamiglia Onchidioidea Superfamiglia Otinoidea Superfamiglia Rathouisioidea Sottordine Basommatophora Superfamiglia Acroloxoidea Superfamiglia Amphiboloidea Superfamiglia Chilinoidea Superfamiglia Glacidorboidea Superfamiglia Lymnaeoidea Superfamiglia Planorboidea Superfamiglia Siphonarioidea Sottordine Eupulmonata Infraordine Acteophila Superfamiglia Melampoidea Infraordine Trimusculiformes Superfamiglia Trimusculoidea Infraordine Stylommatophora Sottinfraordine Orthurethra Superfamiglia Achatinelloidea Superfamiglia Cochlicopoidea Superfamiglia Partuloidea Superfamiglia Pupilloidea Sottinfraordine Sigmurethra Superfamiglia Acavoidea Superfamiglia Achatinoidea Superfamiglia Aillyoidea Superfamiglia Arionoidea Superfamiglia Buliminoidea Superfamiglia Camaenoidea Superfamiglia Clausilioidea Superfamiglia Dyakioidea Superfamiglia Gastrodontoidea Superfamiglia Helicoidea Superfamiglia Helixarionoidea Superfamiglia Limacoidea Superfamiglia Oleacinoidea Superfamiglia Orthalicoidea Superfamiglia Plectopylidoidea Superfamiglia Polygyroidea Superfamiglia Punctoidea Superfamiglia Rhytidoidea Superfamiglia Sagdidoidea Superfamiglia Staffordioidea Superfamiglia Streptaxoidea Superfamiglia Strophocheiloidea Superfamiglia Trigonochlamydoidea Superfamiglia Zonitoidea ? Superfamiglia Athoracophoroidea (= Tracheopulmonata) ? Superfamiglia Succineoidea (= Heterurethra) Classificazione di Bouchet & Rocroi (2005) Un ulteriore passo avanti verso la definizione di una tassonomia più aderente alla reale filogenesi è stato compiuto da Bouchet & Rocroi nel 2005. Tali Autori hanno sviluppato una classificazione cladistica nella quale i ranghi intermedi tra la classe e la superfamiglia (sottoclassi, superordini, ordini, infraordini, sottordini) sono stati rimpiazzati da cladi «unranked». I raggruppamenti la cui monofilia non sia stata dimostrata o risulti controversa vengono etichettati come «gruppi informali». La classificazione di Bouchet & Rocroi riconosce 611 famiglie, 202 delle quali sono note solo in base a reperti fossili. I rapporti filogenetici sono mostrati nel seguente cladogramma: Classificazione MolluscaBase/WoRMS (2020) Nel 2017 la classificazione di Bouchet & Rocroi del 2005 è stata sottoposta, da parte dei medesimi autori, a una radicale revisione che ha portato alla reintroduzione dei tradizionali ranghi linneani al posto di cladi e gruppi informali. La nuova classificazione riconosce un totale di 721 famiglie di gasteropodi, di cui 245 estinte, note esclusivamente per reperti fossili. A questa nuova versione della classificazione si attengono attualmente (2020) i database MolluscaBase e World Register of Marine Species (WoRMS). A questa classificazione si attiene Wikipedia in italiano. In tale schema tassonomico le 476 famiglie viventi riconosciute sono suddivise in 6 sottoclassi: Patellogastropoda, Neomphaliones, Vetigastropoda, Neritimorpha, Caenogastropoda ed Heterobranchia. Sottoclasse Patellogastropoda Ordine Patellida Superfamiglia Lottioidea Famiglia Acmaeidae Famiglia Eoacmaeidae Famiglia Lepetidae Famiglia Lottiidae Famiglia Neolepetopsidae Famiglia Pectinodontidae Superfamiglia Patelloidea Famiglia Nacellidae Famiglia Patellidae Sottoclasse Neomphaliones Ordine Cocculinida Superfamiglia Cocculinoidea Famiglia Bathysciadiidae Famiglia Cocculinidae Ordine Neomphalida Superfamiglia Neomphaloidea Famiglia Melanodrymiidae Famiglia Neomphalidae Famiglia Peltospiridae Sottoclasse Vetigastropoda Ordine Lepetellida Superfamiglia Fissurelloidea Famiglia Fissurellidae Superfamiglia Haliotoidea Famiglia Haliotidae Famiglia † Temnotropidae Superfamiglia Lepetelloidea Famiglia Addisoniidae Famiglia Bathyphytophilidae Famiglia Caymanabyssiidae Famiglia Cocculinellidae Famiglia Lepetellidae Famiglia Osteopeltidae Famiglia Pseudococculinidae Famiglia Pyropeltidae Superfamiglia Lepetodriloidea Famiglia Lepetodrilidae Famiglia Sutilizonidae Superfamiglia Scissurelloidea Famiglia Anatomidae Famiglia Depressizonidae Famiglia Larocheidae Famiglia Scissurellidae Ordine Pleurotomariida Superfamiglia Pleurotomarioidea Famiglia Pleurotomariidae Ordine Seguenziida Superfamiglia Seguenzioidea Famiglia Cataegidae Famiglia Chilodontaidae Famiglia Choristellidae Famiglia Eucyclidae Famiglia Eudaroniidae Famiglia Pendromidae Famiglia Seguenziidae Famiglia Trochaclididae Ordine Trochida Superfamiglia Trochoidea Famiglia Angariidae Famiglia Areneidae Famiglia Calliostomatidae Famiglia Colloniidae Famiglia Conradiidae Famiglia Liotiidae Famiglia Margaritidae Famiglia Phasianellidae Famiglia Skeneidae Famiglia Solariellidae Famiglia Tegulidae Famiglia Trochidae Famiglia Turbinidae Superfamiglia Vetigastropoda incertae sedis Famiglia † Holopeidae Famiglia † Micromphalidae Genere Sahlingia Sottoclasse Neritimorpha Ordine Cycloneritida Superfamiglia Helicinoidea Famiglia Helicinidae Famiglia Neritiliidae Famiglia Proserpinellidae Famiglia Proserpinidae Superfamiglia Hydrocenoidea Famiglia Hydrocenidae Superfamiglia Neritoidea Famiglia Neritidae Famiglia Phenacolepadidae Superfamiglia Neritopsoidea Famiglia Neritopsidae Sottoclasse Caenogastropoda Ordine Architaenioglossa Superfamiglia Ampullarioidea Famiglia Ampullariidae Superfamiglia Cyclophoroidea Famiglia Aciculidae Famiglia Cochlostomatidae Famiglia Craspedopomatidae Famiglia Cyclophoridae Famiglia Diplommatinidae Famiglia Maizaniidae Famiglia Megalomastomatidae Famiglia Neocyclotidae Famiglia Pupinidae Superfamiglia Viviparoidea Famiglia Viviparidae Ordine Littorinimorpha Superfamiglia Calyptraeoidea Famiglia Calyptraeidae Superfamiglia Capuloidea Famiglia Capulidae Superfamiglia Cingulopsoidea Famiglia Cingulopsidae Famiglia Eatoniellidae Famiglia Rastodentidae Superfamiglia Cypraeoidea Famiglia Cypraeidae Famiglia Eratoidae Famiglia Ovulidae Famiglia Triviidae Famiglia Velutinidae Superfamiglia Ficoidea Famiglia Ficidae Superfamiglia Littorinoidea Famiglia Annulariidae Famiglia Littorinidae Famiglia Pomatiidae Famiglia Skeneopsidae Famiglia Zerotulidae Superfamiglia Naticoidea Famiglia Naticidae Superfamiglia Pterotracheoidea Famiglia Atlantidae Famiglia Carinariidae Famiglia Pterotracheidae Superfamiglia Rissooidea Famiglia Barleeiidae Famiglia Emblandidae Famiglia Lironobidae Famiglia Rissoidae Famiglia Rissoinidae Famiglia Zebinidae Superfamiglia Stromboidea Famiglia Aporrhaidae Famiglia Rostellariidae Famiglia Seraphsidae Famiglia Strombidae Famiglia Struthiolariidae Superfamiglia Tonnoidea Famiglia Bursidae Famiglia Cassidae Famiglia Charoniidae Famiglia Cymatiidae Famiglia Laubierinidae Famiglia Personidae Famiglia Ranellidae Famiglia Thalassocyonidae Famiglia Tonnidae Superfamiglia Truncatelloidea Famiglia Amnicolidae Famiglia Anabathridae Famiglia Assimineidae Famiglia Bithyniidae Famiglia Bythinellidae Famiglia Caecidae Famiglia Calopiidae Famiglia Clenchiellidae Famiglia Cochliopidae Famiglia Elachisinidae Famiglia Emmericiidae Famiglia Epigridae Famiglia Falsicingulidae Famiglia Helicostoidae Famiglia Hydrobiidae Famiglia Hydrococcidae Famiglia Iravadiidae Famiglia Lithoglyphidae Famiglia Moitessieriidae Famiglia Pomatiopsidae Famiglia Spirostyliferinidae Famiglia Stenothyridae Famiglia Tateidae Famiglia Tomichiidae Famiglia Tornidae Famiglia Truncatellidae Famiglia Vitrinellidae Superfamiglia Vanikoroidea Famiglia Eulimidae Famiglia Haloceratidae Famiglia Hipponicidae Famiglia Vanikoridae Superfamiglia Vermetoidea Famiglia Vermetidae Superfamiglia Xenophoroidea Famiglia Xenophoridae Ordine Neogastropoda Superfamiglia Buccinoidea Famiglia Belomitridae Famiglia Buccinidae Famiglia Colubrariidae Famiglia Columbellidae Famiglia Fasciolariidae Famiglia Melongenidae (1854) Famiglia Nassariidae Famiglia Pisaniidae Famiglia Tudiclidae ,1901 Superfamiglia Conoidea Famiglia Borsoniidae ,1875 Famiglia Bouchetispiridae , Famiglia Clathurellidae Famiglia Clavatulidae Famiglia Cochlespiridae Famiglia Conidae Famiglia Conorbidae Famiglia Drilliidae Famiglia Fusiturridae Famiglia Horaiclavidae Famiglia Mangeliidae Famiglia Marshallenidae Famiglia Mitromorphidae Famiglia Pseudomelatomidae Famiglia Raphitomidae Famiglia Terebridae Famiglia Turridae Famiglia Conoidea incertae sedis Austrotoma Bathyferula Cryptomella Hemipleurotoma ,1889 Moniliopsis Parasyngenochilus Sinistrella Superfamiglia Mitroidea ,1831 Famiglia Charitodoronidae Famiglia Mitridae ,1831 Famiglia Pyramimitridae ,1901 Superfamiglia Muricoidea Famiglia Muricidae Superfamiglia Olivoidea Famiglia Ancillariidae Famiglia Bellolividae Famiglia Benthobiidae Famiglia Olividae Famiglia Pseudolividae Superfamiglia Turbinelloidea Famiglia Columbariidae Famiglia Costellariidae Famiglia Ptychatractidae Famiglia Turbinellidae ,1835 Famiglia Volutomitridae Superfamiglia Volutoidea Famiglia Cancellariidae Famiglia Cystiscidae Famiglia Granulinidae Famiglia Marginellidae Famiglia Marginellonidae Famiglia Volutidae Subterclasse Sorbeoconcha Superordine Sorbeoconcha incertae sedis Famiglia Globocornidae Ordine Caenogastropoda incertae sedis Famiglia Lyocyclidae Superfamiglia Abyssochrysoidea Famiglia Abyssochrysidae Famiglia Provannidae Superfamiglia Campaniloidea Famiglia Ampullinidae Famiglia Campanilidae Famiglia Plesiotrochidae Superfamiglia Cerithioidea Famiglia Amphimelaniidae Famiglia Batillariidae Famiglia Cerithiidae Famiglia Dialidae Famiglia Diastomatidae Famiglia Hemisinidae Famiglia Litiopidae Famiglia Melanopsidae Famiglia Modulidae Famiglia Pachychilidae Famiglia Paludomidae Famiglia Pelycidiidae Famiglia Pickworthiidae Famiglia Planaxidae Famiglia Pleuroceridae Famiglia Potamididae Famiglia Scaliolidae Famiglia Semisulcospiridae Famiglia Siliquariidae Famiglia Thiaridae Famiglia Turritellidae Famiglia Zemelanopsidae Superfamiglia Epitonioidea Famiglia Epitoniidae Superfamiglia Triphoroidea Famiglia Cerithiopsidae Famiglia Newtoniellidae Famiglia Triphoridae Sottoclasse Heterobranchia Infraclasse Heterobranchia inferiori Superfamiglia Architectonicoidea Famiglia Architectonicidae Superfamiglia Cimoidea Famiglia Cimidae Superfamiglia Mathildoidea Famiglia Mathildidae Superfamiglia Murchisonelloidea Famiglia Murchisonellidae Superfamiglia Omalogyroidea Famiglia Omalogyridae Superfamiglia Orbitestelloidea Famiglia Orbitestellidae Famiglia Xylodisculidae Superfamiglia Rhodopoidea Famiglia Rhodopidae Superfamiglia Valvatoidea Famiglia Cornirostridae Famiglia Hyalogyrinidae Warén & Bouchet, 1993 Infraclasse Euthyneura Subterclasse Acteonimorpha Superfamiglia Acteonoidea Famiglia Acteonidae Famiglia Aplustridae Superfamiglia Rissoelloidea Famiglia Rissoellidae Subterclasse Ringipleura Superordine Nudipleura Ordine Nudibranchia Sottordine Cladobranchia Superfamiglia Aeolidioidea Famiglia Aeolidiidae Famiglia Babakinidae Famiglia Facelinidae Famiglia Flabellinopsidae Famiglia Glaucidae Famiglia Myrrhinidae Famiglia Notaeolidiidae Famiglia Piseinotecidae Famiglia Pleurolidiidae Superfamiglia Arminoidea Famiglia Arminidae Famiglia Doridomorphidae Superfamiglia Dendronotoidea Famiglia Bornellidae Famiglia Dendronotidae Famiglia Dotidae Famiglia Hancockiidae Famiglia Lomanotidae Famiglia Scyllaeidae Famiglia Tethydidae Superfamiglia Doridoxoidea Famiglia Doridoxidae Superfamiglia Fionoidea Famiglia Abronicidae Famiglia Apataidae Famiglia Calmidae Famiglia Coryphellidae Famiglia Cumanotidae Famiglia Cuthonellidae Famiglia Cuthonidae Famiglia Embletoniidae Famiglia Eubranchidae Famiglia Fionidae Famiglia Flabellinidae Famiglia Murmaniidae Famiglia Paracoryphellidae Famiglia Pinufiidae Famiglia Pseudovermidae Famiglia Samlidae Famiglia Tergipedidae Famiglia Trinchesiidae Famiglia Unidentiidae Famiglia Xenocratenidae Superfamiglia Proctonotoidea Famiglia Curnonidae Famiglia Dironidae Famiglia Janolidae Famiglia Lemindidae Famiglia Madrellidae Famiglia Proctonotidae Superfamiglia Tritonioidea Famiglia Tritoniidae Sottordine Doridina Infraordine Bathydoridoidei Superfamiglia Bathydoridoidea Famiglia Bathydorididae Infraordine Doridoidei Superfamiglia Chromodoridoidea Famiglia Actinocyclidae Famiglia Cadlinellidae Famiglia Cadlinidae Famiglia Chromodorididae Famiglia Hexabranchidae Famiglia Showajidaiidae Superfamiglia Doridoidea Famiglia Discodorididae Famiglia Dorididae Superfamiglia Onchidoridoidea Famiglia Aegiridae Famiglia Akiodorididae Famiglia Calycidorididae Famiglia Corambidae Famiglia Goniodorididae Famiglia Onchidorididae Superfamiglia Phyllidioidea Famiglia Dendrodorididae Famiglia Mandeliidae Famiglia Phyllidiidae Superfamiglia Polyceroidea Famiglia Polyceridae Ordine Pleurobranchida Superfamiglia Pleurobranchoidea Famiglia Pleurobranchaeidae Famiglia Pleurobranchidae Famiglia Quijotidae Superordine Ringiculimorpha Superfamiglia Ringiculoidea Famiglia Ringiculidae Subterclasse Tectipleura Ordine Aplysiida Superfamiglia Akeroidea Famiglia Akeridae Superfamiglia Aplysioidea Famiglia Aplysiidae Ordine Cephalaspidea Superfamiglia Bulloidea Famiglia Bullidae Famiglia Retusidae Famiglia Rhizoridae Famiglia Tornatinidae Superfamiglia Cylichnoidea Famiglia Colinatydidae Famiglia Cylichnidae Famiglia Diaphanidae (1857) Famiglia Eoscaphandridae Famiglia Mnestiidae Superfamiglia Haminoeoidea Famiglia Haminoeidae Superfamiglia Newnesioidea Famiglia Newnesiidae Superfamiglia Philinoidea Famiglia Aglajidae (1847) Famiglia Alacuppidae Famiglia Antarctophilinidae Famiglia Colpodaspididae Famiglia Gastropteridae Famiglia Laonidae Famiglia Philinidae Famiglia Philinoglossidae Famiglia Philinorbidae Famiglia Scaphandridae Ordine Pteropoda Sottordine Euthecosomata Superfamiglia Cavolinioidea (1815) Famiglia Cavoliniidae Famiglia Cliidae Famiglia Creseidae Superfamiglia Limacinoidea Famiglia Heliconoididae Famiglia Limacinidae Famiglia Thieleidae Sottordine Gymnosomata Superfamiglia Clionoidea Famiglia Clionidae Famiglia Cliopsidae Famiglia Notobranchaeidae Famiglia Pneumodermatidae Superfamiglia Hydromyloidea Famiglia Hydromylidae Famiglia Laginiopsidae Sottordine Pseudothecosomata Superfamiglia Cymbulioidea Famiglia Cymbuliidae Famiglia Desmopteridae Famiglia Peraclidae Ordine Runcinida Superfamiglia Runcinoidea Famiglia Ilbiidae Famiglia Runcinidae Ordine Umbraculida Superfamiglia Umbraculoidea (1827) Famiglia Tylodinidae Famiglia Umbraculidae (1827) Superordine Acochlidiimorpha Superfamiglia Acochlidioidea Famiglia Acochlidiidae Famiglia Aitengidae Famiglia Bathyhedylidae Famiglia Hedylopsidae Famiglia Pseudunelidae Famiglia Tantulidae Famiglia Acochlidioidea incertae sedis Genere Helicohedyle Superfamiglia Parhedyloidea Famiglia Asperspinidae Famiglia Parhedylidae Superordine Eupulmonata Ordine Ellobiida Superfamiglia Ellobioidea Famiglia Ellobiidae Famiglia Otinidae Famiglia Trimusculidae Ordine Stylommatophora Sottordine Achatinina Superfamiglia Achatinoidea Famiglia Achatinidae Famiglia Aillyidae Famiglia Ferussaciidae Famiglia Micractaeonidae Superfamiglia Streptaxoidea Famiglia Diapheridae Famiglia Streptaxidae Sottordine Helicina Infraordine Arionoidei Superfamiglia Arionoidea Famiglia Anadenidae Famiglia Ariolimacidae Famiglia Arionidae Famiglia Binneyidae Famiglia Philomycidae Infraordine Clausilioidei Superfamiglia Clausilioidea Famiglia Clausiliidae Infraordine Helicoidei Superfamiglia Helicoidea Famiglia Camaenidae Famiglia Canariellidae Famiglia Cepolidae Famiglia Elonidae Famiglia Geomitridae Famiglia Helicidae Famiglia Helicodontidae Famiglia Hygromiidae Famiglia Labyrinthidae Famiglia Pleurodontidae Famiglia Polygyridae Famiglia Sphincterochilidae Famiglia Thysanophoridae Famiglia Trichodiscinidae Famiglia Trissexodontidae Famiglia Xanthonychidae Superfamiglia Sagdoidea Famiglia Sagdidae Famiglia Solaropsidae Famiglia Zachrysiidae Infraordine Limacoidei Superfamiglia Gastrodontoidea Famiglia Gastrodontidae Famiglia Oxychilidae Famiglia Pristilomatidae Superfamiglia Helicarionoidea Famiglia Ariophantidae Famiglia Helicarionidae Famiglia Urocyclidae Superfamiglia Limacoidea Famiglia Agriolimacidae Famiglia Boettgerillidae Famiglia Limacidae Famiglia Vitrinidae Superfamiglia Parmacelloidea Famiglia Milacidae Famiglia Parmacellidae Famiglia Trigonochlamydidae Superfamiglia Trochomorphoidea Famiglia Chronidae Famiglia Dyakiidae Famiglia Euconulidae Famiglia Staffordiidae Famiglia Trochomorphidae Superfamiglia Zonitoidea Famiglia Zonitidae Infraordine Oleacinoidei Superfamiglia Haplotrematoidea Famiglia Haplotrematidae Superfamiglia Oleacinoidea Famiglia Oleacinidae Famiglia Spiraxidae Infraordine Orthalicoidei Superfamiglia Orthalicoidea Famiglia Amphibulimidae Famiglia Bothriembryontidae Famiglia Bulimulidae Famiglia Megaspiridae Famiglia Odontostomidae Famiglia Orthalicidae Famiglia Simpulopsidae Infraordine Pupilloidei Superfamiglia Pupilloidea Famiglia Achatinellidae Famiglia Agardhiellidae Famiglia Amastridae Famiglia Argnidae Famiglia Azecidae Famiglia Cerastidae Famiglia Chondrinidae Famiglia Cochlicopidae Famiglia Draparnaudiidae Famiglia Enidae Famiglia Fauxulidae Famiglia Gastrocoptidae Famiglia Lauriidae Famiglia Odontocycladidae Famiglia Orculidae Famiglia Pagodulinidae Famiglia Partulidae Famiglia Pleurodiscidae Famiglia Pupillidae Famiglia Pyramidulidae Famiglia Spelaeoconchidae Famiglia Spelaeodiscidae Famiglia Strobilopsidae Famiglia Truncatellinidae Famiglia Valloniidae Famiglia Vertiginidae Infraordine Rhytidoidei Superfamiglia Rhytidoidea Famiglia Acavidae Famiglia Caryodidae Famiglia Clavatoridae Famiglia Dorcasiidae Famiglia Macrocyclidae Famiglia Megomphicidae Famiglia Rhytididae Famiglia Strophocheilidae Infraordine Succineoidei Superfamiglia Athoracophoroidea (1860) Famiglia Athoracophoridae (1860) Superfamiglia Succineoidea Famiglia Succineidae Infraordine Helicina incertae sedis Superfamiglia Coelociontoidea Famiglia Coelociontidae Superfamiglia Papillodermatoidea Famiglia Papillodermatidae Superfamiglia Plectopyloidea Famiglia Corillidae Famiglia Plectopylidae Famiglia Sculptariidae Superfamiglia Punctoidea Famiglia Charopidae Famiglia Cystopeltidae Famiglia Discidae (1866) Famiglia Endodontidae Famiglia Helicodiscidae Famiglia Oopeltidae Famiglia Oreohelicidae Famiglia Punctidae Superfamiglia Testacelloidea Famiglia Testacellidae Superfamiglia Urocoptoidea Famiglia Cerionidae Famiglia Epirobiidae Famiglia Eucalodiidae Famiglia Holospiridae Famiglia Urocoptidae Sottordine Scolodontina Superfamiglia Scolodontoidea Famiglia Scolodontidae Ordine Systellommatophora Superfamiglia Onchidioidea Famiglia Onchidiidae Superfamiglia Veronicelloidea Famiglia Rathouisiidae Famiglia Veronicellidae Superordine Hygrophila Superfamiglia Chilinoidea Famiglia Chilinidae Famiglia Latiidae Superfamiglia Lymnaeoidea Famiglia Acroloxidae Famiglia Bulinidae Famiglia Burnupiidae Famiglia Lymnaeidae Famiglia Physidae Famiglia Planorbidae Superordine Pylopulmonata Superfamiglia Amphiboloidea Famiglia Amphibolidae Famiglia Maningrididae Superfamiglia Glacidorboidea Famiglia Glacidorbidae Superfamiglia Pyramidelloidea Famiglia Amathinidae Famiglia Pyramidellidae Famiglia Pyramidelloidea incertae sedis Genere Microthyca Superordine Sacoglossa Superfamiglia Oxynooidea Famiglia Cylindrobullidae Famiglia Juliidae Famiglia Oxynoidae Famiglia Volvatellidae Superfamiglia Plakobranchoidea Famiglia Costasiellidae Famiglia Hermaeidae Famiglia Limapontiidae Famiglia Plakobranchidae Superfamiglia Platyhedyloidea Famiglia Platyhedylidae Superordine Siphonarimorpha Ordine Siphonariida Superfamiglia Siphonarioidea Famiglia Siphonariidae Superordine Euthyneura incertae sedis Famiglia Tjaernoeiidae Infraclasse Heterobranchia incertae sedis Ordine Architectibranchia Note Altri progetti Collegamenti esterni http://www.achatina.it http://www.gastropoda.it Taxa classificati da Georges Cuvier


source: wikipedia

text: Il linguaggio assembly (detto anche linguaggio assemblativo o linguaggio assemblatore o semplicemente assembly) è un linguaggio di programmazione molto simile al linguaggio macchina, pur essendo differente rispetto a quest'ultimo. Erroneamente viene spesso chiamato "assembler", ma quest'ultimo termine identifica solo il programma "assemblatore" che converte il linguaggio assembly in linguaggio macchina. Le istruzioni del linguaggio assembly corrispondono alle istruzioni che il processore può eseguire. Difatti queste ultime sono stringhe di bit (di solito della lunghezza di 1 o 2 ma anche 4 bytes) che nel linguaggio assembly assumono nomi comprensibili agli umani. Tutte le istruzioni hanno un corrispondente opcode (Operation Code) che rappresenta l'istruzione stessa in formato esadecimale o binario. L'istruzione che somma 32 al registro EAX: A seconda del tipo di istruzione alcune istruzioni sono lunghe da 1 a più bytes più la dimensione degli operandi sui quali lavorano. Per assembly si intende il linguaggio che utilizza l'instruction set del processore. L'instruction set architecture (ISA) é l'insieme di tutte le operazioni che il processore è in grado di eseguire. Per questo motivo non esiste un linguaggio assembly unico ma ogni processore possiede il suo. Descrizione RISC e CISC Il linguaggio assembly costituisce il cosiddetto ISA (Instruction Set Architecture) di un processore. I diversi ISA possono essere divisi in due grandi gruppi: i RISC (Reduced Instruction Set Computer) e i CISC (Complex Instruction Set Computer). Il primo gruppo tende ad avere operazioni semplici e veloci, con grande abbondanza di registri per memorizzare i risultati intermedi. Il secondo mette a disposizione del programmatore istruzioni più complesse, che a volte mimano quelle dei linguaggi di livello più alto (ad esempio, la copia di stringhe nei processori x86). In entrambi i casi, i migliori set di istruzioni tendono ad essere quelli cosiddetti ortogonali, dove i diversi metodi di indirizzamento e i diversi registri possono essere usati indifferentemente in tutte le istruzioni. Famosi set di istruzioni ortogonali sono quelli del Motorola 68000 (CISC) e del MIPS (RISC). L'ISA dei processori Intel x86 era originariamente ben poco ortogonale, ed è andata via via migliorando. La distinzione tra set di istruzioni RISC e CISC è oggi un po' sfumata, perché la maggior parte dei processori consumer sono oggi dei CRISP, cioè un misto fra i due. Inoltre, alcuni processori traducono l'ISA originale in un set di istruzioni interno, per ragioni diverse e con modalità diverse: nel caso dell'Intel Pentium 4 e dell'AMD Athlon, è per liberarsi dalle limitazioni causate da un'ISA retrocompatibile ormai arcaica, e la conversione è eseguita direttamente da hardware dedicato che effettua la necessaria decodifica; nel caso dei processori Transmeta, è per poter "tradurre" ISA di altri processori esistenti come se fossero proprie, e la traduzione è fatta da qualcosa di concettualmente molto simile a routine firmware (denominate microcodice) memorizzate in un'area ROM ricavata sul silicio del microprocessore. Scopo L'assembly ha lo scopo generale di consentire al programmatore di ignorare il formato binario del linguaggio macchina. Ogni codice operativo del linguaggio macchina viene sostituito, nell'assembly, da una sequenza di caratteri che lo rappresenta in forma mnemonica; per esempio, il codice operativo per la somma potrebbe essere trascritto come ADD e quello per il salto come JMP. In secondo luogo, i dati e gli indirizzi di memoria manipolati dal programma possono essere scritti, in assembly, nella base numerica più consona al momento: esadecimale, binaria, decimale, ottale ma anche in forma simbolica, utilizzando stringhe di testo (identificatori). Il programma assembly risulta in questo modo relativamente più leggibile di quello in linguaggio macchina, con il quale mantiene però un totale (o quasi totale) isomorfismo. Il programma scritto in assembly non può essere eseguito direttamente dal processore; esso deve essere tradotto nel linguaggio macchina (binario) corrispondente, usando un programma compilatore detto assembler. Non univocità A causa di questa "vicinanza" all'hardware, non esiste un unico linguaggio assembly. Al contrario, ogni CPU o famiglia di CPU ha un suo proprio assembly, diverso dagli altri. Ad esempio, sono linguaggi assembly ben diversi quelli per i processori Intel x86, per i Motorola 68000 e per i Dec Alpha. Questo significa che conoscere un certo linguaggio assembly significa saper scrivere programmi solo su una determinata CPU o famiglia di CPU. Passare ad altre CPU però è relativamente facile, perché molti meccanismi sono analoghi o del tutto identici, quindi spesso il passaggio si limita all'apprendimento di nuovi codici mnemonici, nuove modalità di indirizzamento ed altre varie peculiarità del nuovo processore. Molto meno facile è invece portare un programma scritto in assembly su macchine con processori diversi o con architetture diverse: quasi sempre significa dover riscrivere il programma da cima a fondo, perché i linguaggi assembly dipendono completamente dalla piattaforma per cui sono stati scritti. Molti compilatori assembly supportano sistemi di macro che potrebbero essere impiegati per ovviare in parte a questo problema, ma si tratta di una soluzione poco efficace. Inoltre l'assembly non offre alcun "controllo sui tipi" (non esiste alcunché di vagamente simile al concetto di "tipo" nella programmazione low-level), ma lascia al programmatore la responsabilità di occuparsi di ogni singolo dettaglio della gestione della macchina e richiede molta disciplina e un esteso lavoro di commento per non scrivere codice che risulti assolutamente illeggibile (ad altri programmatori come anche a se stessi dopo qualche tempo). A fronte di questi svantaggi l'assembly offre un'efficienza senza pari e il controllo completo e assoluto sull'hardware: i programmi in assembly sono, in linea di principio, i più piccoli e veloci che sia possibile scrivere su una data macchina. Scrivere (buon) codice in assembly è dispendioso in termini di tempo, difficile e quindi molto costoso, soprattutto in prospettiva (future modifiche): per questo, raramente l'assembly è il solo linguaggio usato in un progetto mainstream, a meno che questo non sia di dimensioni e portata limitate. In genere si usa in combinazione con altri linguaggi: la maggior parte del codice viene scritta in un linguaggio ad alto livello, mentre le parti più critiche (per motivi di performance, precisione del timing o affidabilità) si scrivono in assembly. Tali problematiche sono riscontrabili principalmente su piattaforme come i personal computer attuali, dove la vastità quantitativa e l'enorme gamma qualitativa dell'hardware disponibile crea alle applicazioni low-level un oggettivo problema mai risolto (e presumibilmente non risolvibile) a livello di unificazione e standard. A ciò si aggiunga l'evoluzione costante verso una sempre maggiore stratificazione dei comuni sistemi operativi, caratterizzata da numerosi vincoli e virtualizzazioni delle periferiche fisiche e dei canali di comunicazione, che non rendono agevole lo sviluppo di un software che interagisca direttamente con l'hardware sottostante e ne gestisca direttamente le caratteristiche. Si possono però citare due esempi, peraltro correlati, di totale inversione di questo paradigma generale: Ha ampiamente senso creare programmi interamente in assembly destinati ad hardware caratterizzato architetturalmente da documentazione esaustiva, grande predicibilità, stabilità e scarsa variabilità temporale del design: per esempio, si possono citare gli home computer degli anni ottanta, come i Commodore Vic-20 e C64 o il Sinclair ZX Spectrum. Ha parimenti senso, ed un forte riscontro nella pratica invalsa negli ultimi trenta anni, operare prevalentemente o esclusivamente in assembly nel vastissimo mercato dei sistemi embedded, per la programmazione di microcontroller e DSP, eventualmente anche sotto forma di core implementati tramite ASIC, CPLD ed FPGA, al fine di massimizzare performance e rispetto dei vincoli temporali, minimizzando nel contempo il footprint. Ciò trova riscontro a tutti i livelli della filiera produttiva, a partire dalla progettazione dei chip e del relativo linguaggio utilizzando ISA di tipo RISC e fortemente ortogonali, la cui ottimizzazione (in spazio o in performance) è altamente semplificata. Questo approccio è fondamentale in quanto consente grandi economie di scala nei progetti tipici del mondo embedded, caratterizzati dalla capacità di assorbire costi iniziali (NRE, non-recurrent engineering costs) anche elevati, purché finalizzati ad una forte compressione del costo unitario del prodotto finale, anche per volumi medio-bassi. Ecco allora che la possibilità di utilizzare un microcontroller con limitatissime risorse di memoria ROM e RAM scrivendo il firmware integralmente in assembly diventa essenziale al fine di minimizzare i costi, l'ingombro in piastra, la suscettibilità elettromagnetica, aumentando anche l'affidabilità (processori più "datati" hanno un incolmabile vantaggio in termini di milioni di ore di test e funzionamento sul campo, ossia la "merce" di gran lunga più preziosa per i sistemi embedded variamente critici) ed ottimizzando numerosi altri fattori. Struttura La struttura di un tipico listato Assembly x86 per PC si articola, a grandi linee, nei seguenti termini: intestazione, in cui possiamo inserire, tramite dei commenti, il nome e la funzione del programma. segmento dati, in cui andiamo a dichiarare formalmente le variabili usate dal programma (in pratica allochiamo delle zone di memoria nel segmento puntando dal DS data segment) segmento di stack, in cui definiamo la struttura dello stack associato al programma (parleremo dello stack in seguito) segmento di codice, in cui è presente il codice del programma chiusura Vale la pena di ribadire che tale struttura, nella sua generalità, dipende quasi per intero dalla piattaforma e anche dall'assembler utilizzato e quindi non è in alcun modo universalizzabile. Architetture diverse, dai mainframe ai microcontroller, con relativi assemblatori e cross-assembler, impongono strutture di sorgente a volte nettamente diverse dal semplice esempio illustrato, relativo ai comuni PC. Per un controesempio banale, nelle architetture Harvard usate dalla quasi totalità dei microcontroller e da molte architetture di supercalcolo: il segmento di codice non risulta scrivibile durante la normale elaborazione: ne consegue, tra l'altro, l'assoluta impossibilità di creare codice self-morphing (automodificante), ma anche un modo generalmente diverso di referenziare variabili (a rigore, label corrispondenti ad una o più locazioni in memoria dati) e codice nel sorgente; i dati a loro volta risiedono in memorie fisicamente separate, talora dotate anche di persistenza tra le sessioni (EPROM, Flash EEPROM, RAM "tamponate" ossia dotate di batteria di backup...), e tutto ciò si riflette in modo esplicito e pervasivo nella sintassi supportata dall'assembler, nelle direttive specifiche e nella struttura effettiva di un sorgente Assembly; ultimo, ma non meno importante: registri come DS e SS (stack segment) sono altre peculiarità della piattaforma x86, sovente lo stack di chiamata non è neppure direttamente accessibile nei core MCU più diffusi. Esempio di codice Esempio di programma "Hello world" in assembly Intel x86 con sintassi Intel (sfrutta le chiamate al sistema operativo DOS). Non è compatibile con le versioni Assembly UNIX GNU MODEL SMALL STACK 100H .DATA HW DB "hello, world", 13, 10, '$' .CODE .STARTUP MOV AX, @data MOV DS, AX MOV DX, OFFSET HW MOV AH, 09H INT 21H MOV AX, 4C00H INT 21H END Questo invece è l'esempio del programma scritto per sintassi AT&T (per le architetture UNIX GNU) .section .data hello: .ascii "ciao ciao mondo! " hello_len: .long . -hello # lunghezza della stringa in byte .section .text .global _start _start: movl $4, %eax # 4 corrisponde alla system call "write" movl $1, %ebx # stampa nello standard output (schermo) leal hello, %ecx # puntatore char a ciò che si vuole stampare movl hello_len, %edx # copia del contenuto della variabile. carica la lunghezza della variabile int $0x80 # system call (int sarebbe "interrupt"); con 0x80 si lancia una interaction generale # dichiarata (in base ai valori caricati precedentemente nei registri) movl $1, %eax # 1 corrisponde alla system call "exit" xorl %ebx, %ebx #azzera EBX; si può anche scrivere movl $0, %ebx ma risulta meno efficiente int $0x80 Microistruzioni Quando si esegue un'istruzione Assembly, il processore (in base all'architettura presa in considerazione) esegue una serie di operazioni chiamate "Microistruzioni Assembly", cioè delle operazioni hardware che servono per configurare i registri e gli operatori della CPU in modo che possa essere eseguita quella istruzione. Tale processo si divide, nel caso delle CPU Intel x86 e di alcune altre, in 3 parti: Fetch: fase di caricamento in cui si incrementa il registro PC e si prepara la CPU a compiere l'operazione; Decode: si configurano i multiplexer interni alla CPU e viene eseguita una codifica dell'istruzione qualora sia necessario (indirizzamenti indiretti, a spiazzamento, ecc...) Execute: il momento in cui si esegue veramente l'operazione Da qui la sigla FDE, Fetch-Decode-Execute, riportata nei testi di architettura e nei datasheet. Per fare un esempio per l'architettura dell'Intel 80x86 con un singolo BUS, in sintassi AT&T, questa istruzione: ADD %EBX, %EAX in cui si somma il contenuto del registro EAX con il contenuto del registro EBX e il risultato verrà salvato in EAX, vengono svolte queste micro operazioni: 1. PCout, SELECT[4], ADD, Zin, MARin, READ ;viene incrementato il PC per eseguire l'operazione successiva 2. Zout, PCin, WMFC ;si aspetta che sia avvenuta la lettura in memoria 3. MDRout, IRin ;viene inviata l'istruzione prossima in IR 4. EAXout, Vin ;viene inviato il contenuto di EAX in un registro temporaneo 5. EBXout, SELECT[V], ADD, Zin ;viene sommato il contenuto di EBX tramite la ALU con EAX 6. Zout, EAXin, END ;il risultato viene copiato in EAX Su alcune architetture tali fasi risultano invece essere quattro (ad esempio, nei PIC Microchip, negli Intel 8051 e in numerosissimi core analoghi), da cui risulta anche l'effettivo rapporto tra velocità di clock ossia frequenza del quarzo esterno (es. 10 MHz) e numero di istruzioni effettivamente eseguite in un secondo. Per i PIC (famiglie baseline e midrange in particolare) tale rapporto è pari ad 1/4, poiché ad ogni ciclo di clock il core esegue effettivamente una singola fase Fetch-Decode-Execute-Write e dunque sono necessari quattro cicli del clock esterno per completare una singola istruzione. Su architetture di microcontroller e core più arcaiche o comunque di diversa concezione, sono necessari anche più cicli di clock per ciascuna fase (ad esempio tre o quattro), da cui il diverso rapporto tra clock e MIPS, che nel caso del design 8051 originale richiede ad esempio 12 cicli di clock per ciascuna singola istruzione. Si ricordi infine che talune istruzioni, tra le quali tipicamente i salti incondizionati, richiedono su un numero notevole di piattaforme (sia RISC che CISC, concepite in varie epoche) un numero di cicli superiore alle altre, a causa delle operazioni accessorie (non parallelizzabili) richieste dall'aggiornamento del registro IP e di eventuali code di prefetch interne. C-asm Talvolta, nella programmazione ad alto livello in ambienti come il DOS, c'è la necessità di effettuare alcune operazioni che sono molto più veloci usando delle istruzioni di linguaggi a basso livello (in Windows invece a causa delle protezioni della memoria si ricorre più frequentemente alle chiamate WINAPI, le chiamate in L/M sono usate per lo più per procedure matematiche accelerate o dai driver). Tra i linguaggi di alto livello che permettono questo vi sono il C e il C++, in cui possono essere inserite nei propri sorgenti parti scritte in assembly che, in fase di compilazione, verranno tradotte con un procedimento noto come assembler inline. Un esempio di codice scritto in C-asm (usando l'assembly Intel x86), che visualizza in binario un numero dato in input, è il seguente esempio che utilizza la direttiva stdio.h che gestisce le operazioni di input/output, la direttiva iostream.h che ha le stesse funzioni di quella precedente, ma che garantisce la compatibilità con i compilatori più datati e infine la direttiva conio.h deputata alla creazione di interfacce testuali. #include <stdio.h> #include <iostream.h> #include <conio.h> int main() { int a; /* Acquisizione del valore numerico */ printf("Inserisci un valore compreso tra -32768 e 32768: "); scanf("%d", &a); /* Visualizzazione del messaggio di risposta */ printf("Il valore corrispondente in binario è: "); /* Keyword per delimitare le sezioni di codice Assembly */ asm { /* Visualizzazione della stringa di bit corrispondente */ MOV BX,WORD PTR a MOV CX,00Ah } /* Etichetta esterna */ Ciclo: asm { /* Estrazione di un bit */ MOV DL,00H RCL BX,1 /* Il valore del bit viene posto nel flag di carry */ ADC DL,'0' /* Determino il carattere da visualizzare */ MOV AH,02H /* Visualizzazione */ INT 21h Loop Ciclo } return 0; } Per la maggioranza delle applicazioni mainstream, è ormai convinzione comune nella comunità dei programmatori applicativi che fattori come le ottimizzazioni generate automaticamente dai compilatori nei linguaggi di più elevato livello, l'evoluzione di librerie a loro volta sempre più ottimizzate (almeno in linea di principio) e la sempre maggiore potenza elaborativa delle piattaforme comunemente diffuse rendano meno necessario rispetto al passato il ricorso alla verticalizzazione tramite assembly inline o moduli assembly, anche in favore della portabilità e leggibilità del codice. Tuttavia, non mancano numerose eccezioni in totale controtendenza rispetto a tale diffusa concezione: in particolare nel mondo dei sistemi dedicati, basato quasi per definizione su un paradigma ben diverso, come ricordato al paragrafo "Non c'è un solo assembly", ma anche in numerose nicchie specialistiche ai margini del mainstream, dai sistemi CAD/CAM al calcolo numerico, alle applicazioni scientifiche di varia natura, fino allo sviluppo di driver e altro software di sistema. Strutture di controllo in Assembly x86 Il processore esegue le istruzioni così come si presentano, una dopo l'altra. Tuttavia, attraverso particolari strutture, si può controllare il flusso esecutivo in base ad una determinata condizione. In questo modo si possono creare strutture di semplice selezione o di tipo iterativo (cicli). Le istruzioni assembly che vengono utilizzate per questo scopo sono principalmente di due tipi: salto e confronto. I salti possono essere incondizionati o condizionati. JMP effettua un salto incondizionato. In genere l'indirizzo di riferimento è un'etichetta. La condizione del salto è sempre dettata dai valori del registro dei flag. I flag più usati per i salti sono: ZF (flag zero) indica se l'ultima istruzione ha generato come risultato 0 SF (flag segno) indica se l'ultima istruzione ha generato un risultato di segno negativo OF (flag overflow) indica se l'ultima istruzione ha generato un overflow (con troncamento del bit più significativo del risultato) Il costrutto di selezione (if, else) La selezione è una struttura che permette di eseguire un blocco di istruzioni oppure un altro in base al verificarsi di una condizione. se blocco istruzioni 1 altrimenti blocco istruzioni 2 fine se In assembly, attraverso la logica dei salti, viene rappresentato così: se: JNcondizione altrimenti blocco istruzioni 1 JMP fine_se altrimenti: blocco istruzioni 2 fine_se: Il ciclo a controllo in coda (do...while) L'iterazione è una struttura che permette di ripetere più volte un'istruzione sotto il controllo di una condizione. ripeti istruzioni finché condizione In assembly, attraverso la logica dei salti, viene rappresentato così: inizio_ciclo: istruzioni Jcondizione inizio_ciclo Esempio: MOV AX, 0000h inizio_ciclo: INC AX CMP AX, 000Ah ; confronta AX e il valore 0Ah (10d) JNE inizio_ciclo ; salta all'inizio (e ripete il ciclo) se diverso Dato che il controllo della condizione viene eseguito alla fine del ciclo, le istruzioni in sequenza vengono eseguite comunque almeno una volta, anche se la condizione era già verificata in partenza. In pratica: MOV AX, 000Ah inizio_ciclo: INC AX CMP AX, 000Ah JNE inizio_ciclo Questo spezzone di codice dovrebbe controllore se AX = 10d, e in caso contrario incrementare AX. In caso favorevole uscire dal ciclo. Vediamo però che AX vale già 10d, tuttavia tale registro viene comunque incrementato (alla fine varrà 000Bh). Inoltre, in questo particolare programma, il ciclo non finirà mai: AX varrà 11, poi 12, poi 13 e non diventerà mai uguale a 10. Sarebbe buona norma, nelle condizioni, evitare di esprimere un'uguaglianza: MOV AX, 000Ah inizio_ciclo: INC AX CMP AX, 000Ah JB inizio_ciclo ; salta se minore (invece di salta se non uguale) In questo modo abbiamo risolto il problema del ciclo infinito. Tuttavia, a causa del fatto che la sequenza viene eseguita almeno una volta, in genere si evita il ciclo a controllo in coda e si utilizza invece quello a controllo in testa. Il ciclo a controllo in testa (while) Una struttura iterativa a controllo in testa si può descrivere, ad alto livello, così: mentre condizione istruzioni fine ciclo Equivale alla while (condizione) { sequenza } del C. in assembly: inizio_ciclo: JNcondizione fine_ciclo sequenza JMP inizio_ciclo fine_ciclo esempio: inizio_ciclo: CMP AX,0Ah ; confronta AX con 10d JNE fine_ciclo ; salta se diverso INC AX ; incrementa AX JMP inizio_ciclo fine_ciclo La differenza tra questa struttura e quella a controllo in coda sta nel fatto che se la condizione è inizialmente verificata, la sequenza di istruzioni non viene eseguita nemmeno una volta. Il ciclo a contatore (for) Il ciclo a contatore ha una struttura di questo tipo: CONTATORE = 0 mentre CONTATORE < N sequenza incrementa CONTATORE fine ciclo Si può utilizzare un ciclo a contatore se vogliamo ripetere un blocco di istruzioni per un numero di volte noto a priori. i cicli in assembly sono in genere a decremento: CONTATORE = N ripeti sequenza decrementa CONTATORE finché CONTATORE n > 0 Come contatore si usa di solito il registro CX (registro contatore, appunto), perché esiste un'istruzione che esegue le ultime due istruzioni automaticamente: l'istruzione LOOP: decrementa CX e, se CX non è 0, salta all'etichetta specificata. MOV CX, 0 inizio_ciclo: CMP CX, N JGE fine_ciclo sequenza JMP inizio_ciclo fine_ciclo: Grazie all'istruzione LOOP diventa semplice scrivere un ciclo a contatore in assembly: MOV CX, <N> ; dove N è il numero di ripetizioni da eseguire inizio_ciclo: sequenza LOOP inizio_ciclo Va sottolineato che nel primo esempio si ha un ciclo a controllo in testa, mentre nel secondo uno a controllo in coda, e che, sebbene il secondo sia più compatto e veloce da scrivere, possa generare degli errori, come già detto sopra, se non si sta attenti a come lo si usa, infatti in esso le istruzioni vengono eseguite almeno una volta, per cui se non si è sicuri che il numero di ripetizioni non possa mai essere zero, è meno rischioso usare il primo. L'input/output tramite l'INT 21h del DOS L'assembly, specialmente nel mondo dei PC, non prevede funzioni di input/output già pronte. Il programmatore deve quindi creare le proprie routine o appoggiarsi a quelle create da terze parti. Negli ambienti DOS è sufficiente porre il codice del servizio richiesto in AX ed usare l'istruzione INT 21h per richiamare il relativo software di interrupt, una delle caratteristiche più peculiari delle CPU Intel x86. Tra le funzioni più comuni per l'input/output da tastiera: servizio 01h ==> Acquisizione di un carattere da tastiera con eco sul video. Attende la pressione di un tasto e restituisce il codice ASCII del tasto premuto servizio 02h ==> Visualizzazione di un carattere a video. Stampa il carattere il cui codice ASCII è contenuto in DL servizio 07h ==> Acquisizione di un carattere da tastiera senza eco sul video. Come il servizio 01h, ma non visualizza il carattere sullo schermo servizio 09h ==> Visualizzazione di una stringa a video. Stampa la stringa a cui punta l'indirizzo di memoria contenuto in DX servizio 4Ch ==> Servizio di ritorno al sistema operativo. Consente di terminare il programma. Quindi, per acquisire un carattere (con eco sul video): MOV AH, 01h ; servizio 01h INT 21h ; se AX=0001h, allora in AL va il codice ASCII del tasto premuto E volendo poi stamparlo: MOV DL,AL ; copio il codice ASCII del tasto letto il DL MOV AH,02h ; servizio 02h INT 21h ; se AX=0002h, allora stampa il carattere di codice ASCII in D Come si può vedere, sia le operazioni di acquisizione che di stampa fanno riferimento ai codici di carattere ASCII. Nel caso si voglia leggere in input una cifra numerica, per risalire al valore numerico basta sottrarre il valore 30h (48 in decimale) al suo codice ASCII. Infatti 30h in ASCII corrisponde al carattere "0", 31h (49 in decimale) all'"1" e così via... Nel caso in cui si voglia stampare una stringa: stringa DB 13,10,"questa è una stringa","$" ; alloco una variabile da un byte che chiamo stringa e in cui ci salvo una sequenza di caratteri (una stringa appunto) LEA DX,stringa ; copio l'indirizzo di memoria che punta alla stringa in DX MOV AH,09h ; servizio 09h INT 21h ; se AX=0009h, allora stampa la stringa a cui punta l'indirizzo di memoria contenuto in DX Assembly x86 Assembly x86 è una famiglia di linguaggi Assembly, usati per creare codici oggetto per i processori Intel X86. Come tutti i linguaggi assembly, sfrutta brevi parole per realizzare le istruzioni per la CPU. Note Bibliografia Voci correlate Assembler Disassembler Linguaggio macchina Altri progetti Collegamenti esterni Linguaggi di programmazione


L’iniziativa “Puliamo il Mondo” proposta anche quest’anno da Legambiente, si è avvalsa anche della collaborazione dell’Azienda provinciale trasporti (Apt), che sabato ha garantito i collegamenti per e dal Lido di Staranzano agli studenti dell’Isis Pertini, mentre Coop Allenza 3.0 ha fornito le merende a bambini e ragazzi partecipanti.— L’Apt ha garantito i collegamenti per il Lido L’iniziativa “Puliamo il Mondo” proposta anche quest’anno da Legambiente, si è avvalsa anche della collaborazione dell’Azienda provinciale trasporti (Apt), che sabato ha garantito i collegamenti per... L’iniziativa “Puliamo il Mondo” proposta anche quest’anno da Legambiente, si è avvalsa anche della collaborazione dell’Azienda provinciale trasporti (Apt), che sabato ha garantito i collegamenti per e dal Lido di Staranzano agli studenti dell’Isis Pertini, mentre Coop Allenza 3.0 ha fornito le merende a bambini e ragazzi partecipanti.—


Romans Strade più illuminate, sicure ed ecologiche a Romans d’Isonzo. La giunta comunale romanese ha approvato in questi giorni il progetto esecutivo per i lavori di riqualificazione energetica e di messa a norma degli impianti pubblici di illuminazione sull’intero territorio comunale. L’intervento oltre al capoluogo interesserà le frazioni di Versa e di Fratta. Si tratta di un intervento dal valore complessivo di quasi 430 mila euro (esattamente 429.806,63, importo al netto dell’Iva), promosso dal Consorzio Hera luce a seguito della stipula con il Comune della convenzione Consip, per l’affidamento del servizio di gestione della pubblica illuminazione per i prossimi nove anni. Sono ben 795 gli impianti interessati dalle opere di messa a norma e di efficientamento energetico, con opere che vanno da interventi di mero refitting (ovvero la sostituzione dei soli corpi illuminanti con nuovi a tecnologia led, mantenendo le armature), a interventi di integrale sostituzione delle armature stradali, oltre alla revisione o al rifacimento dei quadri elettrici. L’intervento prevede, sempre con tecnologia led, anche la sostituzione delle lanterne semaforiche. In buona sostanza presumibilmente già a partire dai primi mesi del nuovo anno l’80 per cento degli impianti luminosi del territorio romanese sarà più efficiente. Tutto questo tenendo comunque conto che buona parte dei restanti impianti era già stata oggetto di interventi di sostituzione con la tecnologia led all’interno di specifiche opere pubbliche comunali (via Lauretana, Fratta, ciclabile di via Aquileia) o di interventi finanziati con fondi regionali (un centinaio quelli sostituiti nel 2015). Accanto a questi interventi – informa ancora la giunta comunale guidata dal sindaco Davide Furlan - sempre ai sensi della convenzione, altri interventi di sostituzione dei sostegni ovvero di integrazione degli impianti, potranno essere richiesti dal Comune, andando ad integrare il piano economico pluriennale, con progettazione e realizzazione da parte dell’affidataria del servizio. —


source: CulturaX

text: Diversi studi hanno dimostrato che i benefici dell'attività fisica sonocumulativo, il che significa che si concentrano sulla riserva cognitiva (capacità di tollerare cambiamenti nelle strutture cerebrali legati alla età o una certa condizione).Una maggiore riserva cognitiva può aumentare l'effetto protettivo di alcune malattie neurodegenerative, come l'Alzheimer. alcuni tipi di formazione sono i migliori per favorire alcuni tipi di apprendimentorispetto ad altri, dal momento che ogni colpisce i nostri mente in un certo modo. I ricercatori hanno scoperto che diversi tipi di esercizio fisico possono influenzare il cervello in modi diversi.Condividi


Dopo alcune ore arriviamo al paese di Krabi, dal quale prendiamo una barca che ci porta in un posto fuori dal mondo, raggiungibile solo in barca: non ci sono strade e siamo costretti a scendere in acqua con le valigie in spalla, sembra di essere in un paradiso, ci sistemiamo in un bungalow a palafitta e facciamo il primo bagno nelle acque calde e verdi dell'Oceano Indiano.


text: In statistica, un indice di dispersione è un indice che descrive sinteticamente la variabilità di una distribuzione statistica quantitativa. In modo particolare misura quanto i valori presenti nella distribuzione distano da un valore centrale scelto come riferimento. Il valore centrale è solitamente un indice di posizione. I valori centrali più usati nelle applicazioni sono media e mediana. Per variabili nominali si usano indici di diversità. Esempi Sono indicatori di dispersione: campo o intervallo di variazione scarto interquartile varianza, deviazione standard e coefficiente di variazione scarto medio assoluto deviazione mediana assoluta indice di dispersione di Poisson Note Voci correlate Variabilità Indice di posizione Box-plot Indice di polidispersione


ROMA «La gara con la Lazio è stata ottima e il derby vale doppio come vittoria, ma ieri ai miei giocatori ho ribadito solo un concetto: è importante mantenere l'equilibrio». Il discorso fatto da Eusebio Di Francesco alla Roma in vista dell'impegno di questa sera all'Olimpico in Champions col Viktoria Plzen è semplice: per andare lontano bisogna da mettere gli alti e bassi che hanno caratterizzato l'avvio di stagione. «Bisogna lavorare e dare continuità a quello che stiamo facendo. Serve continuità negli atteggiamenti e nel modo di stare in campo. Questa è la base da cui stiamo ripartendo» sottolinea il tecnico abruzzese a Trigoria, invitando i propri giocatori a non sottovalutare l'avversario: «Secondo me è una squadra tosta da affrontare, di grande fisicità, di struttura con un attaccante, Krmencik, che ha grandissime potenzialità». Tra questi non ci saranno sicuramente De Rossi, Pastore e Perotti mentre sull'utilizzo di Kolarov da parte di Di Francesco c'è un punto interrogativo. «È stato un grande a giocare il derby con un dito fratturato. Valuterò se farlo giocare». — La Roma contro il Pilsen per trovare la continuità ROMA «La gara con la Lazio è stata ottima e il derby vale doppio come vittoria, ma ieri ai miei giocatori ho ribadito solo un concetto: è importante mantenere l'equilibrio». Il discorso fatto da... ROMA


source: fineweb

text: Si domandava Antonio Salandra intervenendo il 19 marzo 1924 alla Scala di Milano in difesa del «liberalismo» fascista: «Credete voi sinceramente che gli italiani godano adesso minore libertà»? No, rispondeva: per gli italiani valgono più «le libertà elementari» che «non lo stesso diritto di voto, mediante il quale le democrazie danno ai popoli l’illusione di governarle». Così ricorda Aldo A. Mola nell’ultimo suo libro dedicato a Giolitti. Nel coacervo delle contraddizioni, delle truffe e dello sperpero della pubblica ricchezza (accompagnati dal disprezzo per l’identità nazionale) che caratterizzano l’epoca del Risorgimento, Giovanni Giolitti appare come un gigante in una terra di nani. Mola gli dedica quasi 500 pagine di biografia appassionata, frutto di quarant’anni di ricerche di archivio. Indefesso «lavoratore», attento alla pubblica finanza, al benessere delle classi più numerose, all’istruzione, alla promozione della ricerca, rispettoso della vita umana (non ha usato l’esercito contro la popolazione affamata e ha fatto di tutto per contrastare l’entrata in guerra), marito, padre e nonno affettuoso, amante della campagna e lui stesso giardiniere, Giolitti viene ritratto come un uomo politico onesto, in sincera ricerca del bene comune. Premonitrici di recenti sviluppi di giustizialismo massimalista a senso unico, le vicende del suo allontanamento dal potere a seguito dello scandalo della Banca Romana nel 1893. In quell’occasione, lo documenta bene Mola, si trattava di infangare il buon nome dell’unico che aveva tentato di portare ordine nel sistema bancario post-unitario. Per fermarlo Crispi non aveva avuto scrupoli: utilizzando ai suoi fini la magistratura e in spregio dell’immunità parlamentare, aveva provato a organizzargli contro un precesso montato ad arte e ad arte sostenuto dalla stampa («Quando penso che, per aver scoperti i maggiori ladri e combattute le canaglie, mi devo difendere dinanzi ai Tribunali come se fossi io il malfattore», scriverà Gio-litti). Stretto, suo malgrado, dal racconto di fatti, circostanze, contrasti politici e umani dei protagonisti della terza Italia, Mola finisce col firmare una dura requisitoria del malgoverno del Regno d’Italia. Giolitti ministro della malavita? Il massimo storico della massoneria su questo sorvola (anzi, sembra non accorgersene), ma è dall’esordio dell’Italia unita che le elezioni sono accompagnate da violenze e illegalità di ogni tipo. A cominciare dai tanto decantati plebisciti il cui svolgimento serve solo alla propaganda sabauda per raccontare - all’estero e ai posteri, non di certo agli italiani di allora - di una nazione «liberata» da quindici secoli di schiavitù. Se anche Giolitti si è servito dei mazzieri, in cambio ha provato, e in parte è riuscito, a rimettere in piedi il Paese. «Occorre ricordare che i governi sono fatti per servire i popoli, non per dominarli, non per condurli dove non desiderano di andare. Occorre soprattutto ricordare sempre che la sola fonte sicura di ricchezza, di prosperità e anche di vera gloria per un popolo è il lavoro»: così Giolitti il 12 ottobre 1919 da Dronero, in polemica diretta contro chi, la gloria, l’aveva cercata in guerra (guerra imposta al Parlamento e alla popolazione da un’esigua minoranza, decisa per di più «nel mo-mento più inoppportuno senza patti né finanziari, né economici - carbone, petrolio, materie prime - né coloniali»). Chi, fra quanti hanno governato l’Italia dall’unità al fascismo, in un desolante panorama di malaffare e interessi inconfessabili, in cui mai il tanto decantato Statuto è stato rispettato, avrebbe potuto affermare altrettanto? Viva il ministro della malavita. Aldo A. Mola, Giolitti, Mondadori, 547 pagine, 19 euro


text: Puritanesimo del ventunesimo secolo – Acid Valley Magazine Pubblicato il 12 febbraio 2011 11 settembre 2017 by Acid Valley Press Puritanesimo del ventunesimo secolo Ci mancava anche questa... Un Ferrara al limite dell'esplosione che da abile maestro del rigiro della frittata, spadella come se niente fosse un'accusa di "moralismo bacchettone"contro chi contesta i ben noti misfatti. A corollario non può mancare l'inevitabile riferimento al diritto alla propria vita privata, alle intrusioni illecite, ecc. ecc. Non le ripeto, perché tanto, tutti le abbiamo lette e stralette in questi giorni concitati in cui sembra succedere di tutto, ma forse, e questa è la tragedia, non sta succedendo proprio nulla. Lo slogan della campagna lanciata al grido "In mutande ma vivi" parla chiaro: siamo ben vestiti, ben truccati ma non siamo gatte morte. Mentre voi, puritani che vi permettete di criticare i nostri divertimenti privati, siete solo degli invidiosi, sicuramente insoddisfatti sessualmente e privi della fantasia e della joie de vivre che rende tutti più felici (oltre a vestirvi male perché avete ancora come riferimento l'eskimo che si usava nelle manifestazioni degli anni '70). In effetti il nostro abile comunicatore sprizza letteralmente gioia da tutti i pori (e la sua gioia è proprio tanta) e non possiamo non immaginarlo mentre si sollazza circondato da vigorose lap-dancers che nella vita non hanno desiderato fare altro che approdare al suo talamo. Nella convention si tuona: "oggi capita a Berlusconi, ma domani può succedere a ciascuno di noi" ed è proprio questo il punto, signori miei. Noi lettori, bombardati da mesi da descrizioni dettagliate di festini vari, nostro malgrado siamo indotti a visualizzare situazioni alquanto improbabili come uno di settant'anni e passa in grado di "servire" un'intera teoria delle vergini (si fa per dire) al grido di guerra di "avanti un'altra". Ma, dobbiamo ricordare che Lui è Lui, e meno male che c'è. Ci resta nebulosa tanta virilità, che sarebbe la virilità in primis del macho alfa, conduttore del branco, però sembra che voci autorevoli lo confermino... Pertanto l'ipotesi del "può succedere a ciascuno di noi" esprime un timor panico misto a una segreta speranza di "quando anch'io me ne scoperò ventuno a sera". Perché, certo, non si staranno mica riferendo ad altre cose molto meno turpi, come, ad esempio, intascarsi mazzette, speculare sulla pelle dei terremotati, seppellire di immondizie i napoletani o cosucce di poco conto come memorabili performance in sede di Summit mondiali o europei nei quali il macho-guida del branco ha dato il meglio di sé. La giocata maestra del macho alfa è proprio questa: sommergerci di mignotteria. Di fronte alla valanga di dettagli a dir poco piccanti, del "ti dico che si dice" abbiamo solo due reazioni possibili: la masturbazione mentale con conseguente afflosciamento dell'attività delle meningi oppure lo sconforto, certamente condito da sdegno. Sul primo tipo di reazione, quella della masturbazione, ci lavora Lui quando sfodera perle di saggezza quali "Non sono un santo" oppure "Meglio donnaiolo che gay"; sulla seconda, lo sdegno, è sceso in campo Falstaff, oh scusate, no, volevo dire il buon Julien che a spada tratta difende il suo cavalier contro il "neomoralismo". Non vorrei essere l'uccellaccio del malaugurio, ma ricorda Julien, che quando Enrico V diventò re, il tronfio Falstaff venne ripudiato dall'amico delle scorribande felici e morì, solo e in disgrazia. Il giorno in cui, per cause naturali, si chiuderà la traiettoria berlusconiana, pensi che il tuo amato cavalier ti caricherà sull'aereo per le Cayman?


text: Gazzuolo (Gasöl in dialetto mantovano) è un comune italiano di abitanti della provincia di Mantova in Lombardia. Da giugno 2014, con i comuni di Commessaggio e San Martino dall'Argine, fa parte dell'Unione dei comuni Lombarda Terre d'Oglio. Origini del nome Il nome Gazzuolo deriva probabilmente dal longobardo gahangi. Storia Nel 1393 i gazzolesi firmano un atto di dedizione ai Gonzaga. Gazzuolo, dopo la morte di Gianfrancesco Gonzaga, passò in eredità al figlio Carlo a cui succedette il fratello Ludovico III Gonzaga. Fu con Gianfrancesco Gonzaga che Gazzuolo assunse un ruolo importante nella storia. Venne edificata la rocca, circondata da fossato, che divenne la sua residenza e nella quale, assieme alla consorte Antonia del Balzo, vennero ospitati illustri personaggi: Matteo Bandello, Ludovico Ariosto e Baldassarre Castiglione. Nasceva qui il ramo dei "Gonzaga di Sabbioneta". Monumenti e luoghi d'interesse Castello di Gazzuolo Portici gonzagheschi Palazzo Gonzaga Chiesa di Santa Maria Nascente, del XVII secolo Chiesa di San Rocco Oratorio di San Pietro a Belforte, del X secolo Società Evoluzione demografica Cultura Musei Centro della comunicazione audiovisiva Collezione Oreste Coni Infrastrutture e trasporti Gazzuolo è attraversata dalla strada statale 420 Sabbionetana. Il servizio di collegamento con Mantova è costituito da autocorse svolte dall'APAM; in passato, fra il 1886 e il 1933, era attiva una stazione lungo la tranvia Mantova-Viadana. Amministrazione Note Bibliografia . Voci correlate Castello di Gazzuolo Marchesato di Gazzuolo Francesco Gonzaga, vescovo di Mantova Unione dei comuni Lombarda Terre d'Oglio Ecomuseo Terre d'Acqua fra Oglio e Po Altri progetti Collegamenti esterni * Comuni della provincia di Mantova G


Home » Cultura » Case della Memoria: «noi ci siamo ma lo Stato dovrebbe sostenerci» «Una rete nazionale che mette a sistema le case dei Grandi Personaggi esiste ma lo Stato dovrebbe sostenerla». Così, l’Associazione Nazionale Case della Memoria, che mette in rete 85 case museo in 12 regioni italiane, commenta l’articolo uscito nei giorni scorsi sui media relativo alla messa in vendita delle case dei grandi personaggi. Si parte con un esempio fortunato, la villa di Giovanni Giolitti in Piemonte, che pare sarà acquistata dallo Stato per realizzarne una casa-museo. «La rete delle Case della Memoria c’è è funziona – spiega il presidente dell’Associazione Nazionale Case della Memoria Adriano Rigoli – ma non riceve fondi, se non modesti, dal Ministero della Cultura. E certamente non ha i fondi necessari a salvare questi immobili. Può solo fare opera di moral suasion contribuendo a tenere viva l’attenzione su questi beni e sui personaggi che vi hanno abitato e che rappresentano l’essenza stessa della nostra cultura italiana apprezzata nel mondo. Lo abbiamo fatto ad esempio per il recupero della villa di Ciro Menotti a Spezzano offrendo al Comune di Fiorano Modenese tutto il nostro sostegno». «Il ruolo della rete nazionale, che oggi conta 85 case aperte al pubblico, potrebbe essere ben diverso e più incisivo – spiega ancora Marco Capaccioli, vicepresidente dell’Associazione Nazionale Case della Memoria – se solo fossero messi a disposizione fondi adeguati a impedire la dispersione e l’incuria di questo grande patrimonio presente nel nostro Paese. Una collezione di luoghi densi di storia e di cultura che contribuisce a comporre l’identità nostra cultura italiana».


text: Benvenuti a tutti i nuovi follower di Alaska su Twitter, aggiungiti anche tu: basta cliccare sul T-Rex qui a destra per ricevere saluti e anticipazioni da Alaska ogni giorno. Considerato quanto il petrolio e la benzina condizionano ancora la vita dei paesi più consumisti – dalla gigantesca perdita di petrolio nel Golfo del Messico di cui parlavamo ieri, alle guerre finanziate per il controllo del petrolio, dai paesi che ne hanno in abbondanza a quelli che da loro dipendono, mi sembra interessante una delle cose che sta raccontando in queste ore Homylafayette, prudente ma preciso blogger iraniano negli Usa a cui di solito ci affidiamo per i racconti delle manifestazioni del movimento verde in Iran. Homylafayette riceve costantemente materiale foto e video dall’Iran e nel giro di poche ore ha postato sullo sciopero generale di ieri in Kurdistan (per protestare contro l’esecuzione di cinque prigionieri politici, quattro dei quali curdi, avvenuta domenica, e dalle foto sembra che lo sciopero sia riuscito) e sulle lunghe code che si creano a Teheran per fare provvista di gas naturale compresso, il carburante per auto promosso dal governo ma di difficile accesso nella realtà (vi traduco la storia qui sotto nel podcast) * Quando vi raccontavo degli effetti della nuova legge sull’immigrazione dell”Arizona, vi dicevo di come negli ultimi mesi la pressione degli ingressi clandestini dal Messico fosse perfino aumentata a causa dell’escalation di violenza appena al di là del confine. Una buona preparazione ai misteri letali delle zone di confine la offre un libro uscito in Italia qualche anno fa per Adelphi, Ossa nel deserto, che documentava le ricerche del reporter Sergio Gonzales Rodriguez sulle centinaia di omicidi e sparizioni di donne nell’area di Ciudad Juarez a partire dal 1999. Omertà, corruzione e narcotraffico, festini a base di donne da usare per poi gettarne i cadaveri nei canali di scolo e segnare così il territorio: questa era la mappa agghiacciante che emergeva dal libro. L’autore è stato ospite l’anno scorso del festival di Internazionale, (qui il resoconto di un incontro con lui) e vi segnalo una sua intervista del 2006 con l’autore. Qualche anno prima Rodriguez aveva anche subito un cosiddetto “sequestro lampo”, di cui sono fitte le cronache di oggi. Adesso la recrudescenza dello scontro fra cartelli della droga sta attanagliando il Nuevo Léon e Tampico, e investe la vita pubblica di tutti. Elena Intra ha raccolto in un unico post una serie di racconti dai blog sulla diatriba fra i cartelli e l’ondata di violenza, traducendo i post in italiano. ♫ Le musiche di oggi erano “The loop” di Emma Pollock e “Inspiracion” dei Calexico Ecco la puntata di oggi: Per scaricarla sul tuo computer clicca qui.