C-programma te vinden grootte van de processor

C

ckshivaram

Guest
Laat het me weten hoe om uit te vinden de omvang van de procssor dwz als het is 8 bit, 16 bit 32 bit of 64-bits met behulp van een C-programma

 
ik niet zo zeker van uw vraag.kun je het duidelijk?

 
Geplaatst een nieuwe thread als je de grootte van de processor.
Ik heb er alles gewist als deze niet werd beantwoord door niemand.

 
Nee, het is puur over controllers en de processor worden gebruikt in het.

 
Als dat het geval is ...het programma dat u schrijft zal speciaal voor dat doel processor.Er is geen manier waarop een gemeenschappelijk programma zal draaien op 8/16/32 bit processor zonder enige aanpassingen.

 
Mijn programma geschreven voor ARM kan uitvoeren in zowel 32 bit als 16-bits modus.Waarom noemen we het 32-bits processor.

Op welke basis kunnen we zeggen dat de controller is 8, 16, 32, bit controller.

 
U praat over 16-bit Thumb modus van ARM.Dat was alleen bedoeld om code dichtheid te verbeteren, maar het vermindert de functionaliteit.En de Thumb code is anders samengesteld dan 32-bits modus.Dus je kan nog steeds niet lopen hetzelfde stukje code op zowel 32-bits en 16-bit modes zonder opnieuw te compileren!
Dus wat is dat u probeert te doen hier?

En praten over de basis die je vertellen wanneer haar 8/16/32 bits processor, het is bepaald door de capaciteit van de ALU's van de verwerking 8/16/32 bit data tegelijk.

 
Ya ALU juist is, zijn ze ook afhankelijk van de databus, interne registers, adres bus, of randapparatuur, of enige andere parameter.

Als ik uit te voeren op Keil door het selecteren van 8 of 32 bit controllers als doel, dan zou ik Needed bestand een ASM ten minste dat zou me vertellen de grootte van de processor.

1.Wat ik dacht was het nemen van de programma teller rekenen en afhankelijk van het aantal sprong van locaties te beslissen over de grootte.
2.PUSH en POP-register te vinden in de grootte.

Op dezelfde manier is het mogelijk om het te vinden met behulp van een C-programma.Toegevoegd na 1 minuten:Thumb-code is anders samengesteld dan 32-bits modus.

WAT ?????????????

 
ckshivaram wrote:Thumb-code is anders samengesteld dan 32-bits modus.WAT ?????????????
 
Is het ???????????????

Bedankt voor de informatie, je gaf.Maar ik werkte bij Philips op de interne kern bus-architectuur en de interne randapparaten van bus timing en het geheugen in kaart brengen en bootloader voor meer dan 5 jaar en wat je vertelt is niet waar.

Vertel me alsjeblieft dat PDF-bestand te lezen heb ik voor.Ik was een deel van het team die bereid zijn de ARM pdf-bestand van Philips heet nu NXP.
En je had het over aparte compiler, wat op aarde is dat????

u kunt gebruiken Keil IDE met de standaard compiler, die het genereert 16bit opcode voor duim-modus.
Indien u in # pragma ARM en compileren genereert 32-bits opcode.
Standaard wijze van uitvoering is duim modus.Het schakelt over op ARM-modus wanneer het in een andere modus.Na de coming out als het begint normale uitvoering keert het terug naar de modus duim.

kunt u mij zeggen welke pdf-bestand of van welke andere site dan NXP waar je de informatie die u geplaatst
Ik mag graag mijn knowledge.I verbeteren denk dat ik achterhaald mij nood te werken.Maar ik ben nog steeds 30 jaar en ik denk niet dat ik dingen vergeet gemakkelijk.

 
Ja KEIL moet kunnen dat het gebruik van PRAGMA richtlijn doen.GCC vereist "-mthumb" schakelaar tijdens het compileren van instructies voor het genereren van duim!
Ik heb niet vertellen "afzonderlijke compiler" ...was "aparte compiler switch" ie "-mthumb"!Ik hoop dat je weet wat "switch" in command line betekent.
En de manier waarop bye tot datum heb ik niet gezien geen datasheet van NXP / Philips die je vertelt hoe je je programma te compileren.Maar je zou willen GCC handleiding te lezen.

 
Hai,

Om te weten of de processor is 8 bit of 16 bit of 32 bit of 64-bits, nemen twee integer variabelen en vind het verschil van de variabelen it.If verschil is 2 het is anders als 16-bits verschil is 4 dan is het 32 beetje verstandig kunt uitzoeken.

Als iemand die beter idee relatief bovenstaande post in onze edaboard.

 
sureshreddy wrote:

Hai,Om te weten of de processor is 8 bit of 16 bit of 32 bit of 64-bits, nemen twee integer variabelen en vind het verschil van de variabelen it.If verschil is 2 het is anders als 16-bits verschil is 4 dan is het 32 beetje verstandig kunt uitzoeken.Als iemand die beter idee relatief bovenstaande post in onze edaboard.
 
Hai,

Het antwoord dat ik eerder werd gepost dat voor hoeveel bits complier.not voor processor
De gehele waarden is niet in deze materie, maar u moet rekening verschil van die variabelen adres, dan gebaseerd op die u kunt eenvoudig de compiler.

Hier ben ik een voorbeeld geven voor hoeveel bits compiler.

# include <stdio.h>
Main ()
(
Int a = 10, b = 20, c;
C = & b-&c; / / verschil in te pakken;
If (c == 2)
Printf (16 bit compiler \ n);
If (c == 4);
Printf (32 bit compiler \ n);)Toegevoegd na 4 minuten:hai cksivaram

of u verplicht programma voor compiler of processor?antwoord mij.Toegevoegd na 21 minuten:Hai,Bij het zien van de processor pin schema wat ik kan zeggen of het een 8 bit of 16 bit.

 
In uw code bent u ervan uitgaande dat de variabelen zullen worden geplaatst op opeenvolgende plaatsen die door de linker.Dat is niet het geval is altijd!Wat als in uw code een is gevestigd op het adres van 0x1000 en b op het adres 0x100A!Zulke dingen gebeuren na optimalisatie stappen worden uitgevoerd door de compiler.

 
HAI CMOS,

Alle lokale variabelen moeten worden opgeslagen in stack segment.Al die variabelen moeten opslaan in opeenvolgende geheugenlocaties niet in willekeurige geheugenlocaties.dus gebaseerd op dit punt het programma dat ik heb geschreven terecht voor het vinden van die compiler het is.

Een andere manier van bevinding is dat neemt een (1) en liet het verschuiven met 16 keer en check it out met 65536.if voorwaarde voldoet, dan is 16 bit compiler.verstandig als u zijn om te controleren of elke compiler.
OPMERKING:
Lage bit compiler code uit te voeren in high bit compiler gebaseerd op begrip van rug woord compatibiliteit, maar hoge bit compiler code kan niet worden uitgevoerd in lage bit compiler.hoewel u proberen om 32-bits waarde op te slaan in 16 bit compiler u dat variabele waarde krijgen is nul.

 
sureshreddy wrote:

HAI CMOS,Alle lokale variabelen moeten worden opgeslagen in stack segment.
 
AC compiler is niet verplicht om automatische variabelen op te slaan op de stack, of in opeenvolgende volgorde of tussenliggende met nul bytes.Veel compilers dat doen, doen, maar zich niet op als je draagbare code wilt.

Voor de bepaling van de grootte van integer je compiler, gebruik sizeof (int)

 
Voor het vinden van de grootte van de processor die u gebruikt int, maar wat is de grootte van karakter voor een 8 bit controller / processor.Door te kijken naar pin diagram van de processor hoe vind je de grootte.

 

Welcome to EDABoard.com

Sponsor

Back
Top