Articles taggés avec 'Assemblée'

Comment développer en PHP avec Xcode et Objective-C

Combien de programmeurs à utiliser, j'ai aussi construire ma propre bibliothèque de fonctions prêtes à être réutilisées dans de multiples projets et des contextes multiples. Permettez-moi de changer le titre de ce post, peut-être un peu plus «risquées mais, néanmoins, comme nous le verrons, non loin de la réalité.

En Objective-C, vous pouvez écrire et appeler C / C + +, y compris l'assemblage pour cette question. Cette caractéristique en fait un langage très polyvalent et, à certains égards, phénoménal. D'une part, vous pouvez utiliser et apprécier la syntaxe purement de l'Objective-C, d'autre part vous pouvez exécuter le code plus rapide portage écrit en ANSI C (peut-être pour Digital Unix ou Sun) et peut s'adapter confortablement dans nos applications iPhone ou iPad; sans parler de tous le noyau BSD est déjà disponible sur Mac OS X!

Suite ...

Langages de développement

J'ai fait «revivre» cet article de la mine a écrit un peu "d'années. J'ai légèrement modifié, mettant à jour un petit peu ici et là, mais je pense qu'il est toujours pertinent et intéressant.

INTRODUCTION

Ce qui est un langage de développement? Un ordinateur, PC alias (Personal Computer), a un langage personnel. Ce langage est appelé code machine, signifiant que chaque machine, donc n'importe quel ordinateur (compatible PC, Apple, Unix, etc ...), a un. Uniques et brevetées Les programmes que nous voyons "run" sur nos PC sont principalement menées par l'objet mystérieux appelé un microprocesseur. C'est le cœur, le module intelligent, chaque ordinateur. En fait, une seule application ne fonctionne pas, mais est pris en charge par le microprocesseur, pour ainsi dire, à ce qu'on appelle un système d'exploitation: une couche logicielle fournie par le fabricant de la machine (voir, par exemple, le Macintosh d'Apple).

Suite ...

Constantes et variables: quelle est la réelle différence?

Il semble évident, mais certains échapper à la différence subtile entre les constantes et les variables dans un langage de programmation. Les constantes, à partir du nom, ne changez pas leur valeur au cours du cycle d'un programme, tandis que les variables peuvent le faire! Souvent, toutefois, arriver à utiliser des variables au lieu de constantes sans s'en rendre compte, aussi parce que ce n'est pas l'impact de la logique d'une application. Malgré cela, la différence entre les constantes et les variables, et il se dégage tout à la compilation, où la constante joue un rôle certainement plus puissant.

En venant de C ou de programmation de l'Assemblée connaît la différence entre les constantes et les variables, en particulier parce que, dans les deux assemblage et C, les constantes jouer un rôle par MACRO. Pour MACRO signifiait dans un "morceau de code" qui est étiqueté et remplacé dans le code à la compilation. Le compilateur, en bref, effectue une sorte de trouver .. remplacer (et est sostituitsci) dans le code chaque fois qu'il rencontre une constante.

Imaginez que vous écrivez en C, la pièce simple suivante de code:

1
2
3
4
5 ; int a = 5;
3 ; int b = 3;
int c;
b ; c = a + b;

sono indicate come variabili in questo caso. Que ce soit a ce qui b sont présentés comme des variables dans ce cas. En C, en fait, les constantes sont définies avec le mot clé #define . sono state definite come int . Nous constatons immédiatement que a ce qui b a été définie comme int . Déjà là, vous pouvez faire une première optimisation. Si nous savons que notre variable a ne jamais dépasser une certaine valeur, vous devez le déclarer correctement et ne pas utiliser les types de données au hasard. Certains développeurs ne vous embêtez pas à déclarer les types corrects, pensant que cela n'affecte pas la performace! Faux! Alternativement, il est acceptable que le premier projet de code ne comporte pas ce niveau de détail. Cependant, il est une bonne règle, au cours du processus de développement, l'examen du code et de vérifier les types de données.
Toutefois, dans une assemblée de la famille Motorola, par exemple, comme le 68000 mythique, aurait saisir notre code compilé (sans optimisations) en une sorte de:

1
2
3
4
, d0 ; int a déplacer le # 5, d0; Int.
, d1 ; int b bouger. l'# 3, d1, int b
d2 ; int c - foo déplacer le D1, D2, int c -. foo
l d0 , d2 ; risultato in d2 ovvero c ajouter. d0 l', D2, D2, ou le résultat de c

ou:

1
2
3
, d0 ; int a déplacer le # 5, d0; Int.
, d1 ; int b bouger. l'# 3, d1, int b
d1 ; risultato in d1... bouger. L D0, D1, D1 résultat ...

Le compilateur, si habiles, l'effort dans les optimisations, puis écrire le code avec le mot-clé droit ne peut contribuer à améliorer la sortie compilée. Dans notre cas, si la valeur 5 est une constante n'est pas pratique d'utiliser une variable entière, car le compilateur, et à juste titre, compte tenu de la variable variable, en fait, une predisponde ensemble facile à contenir la valeur 5, ce qui en binaire est de 101, soit occupe trois bits unique (le cas échéant, int est un 32bit ou 53bit pire une double précision en virgule flottante!). Si l'on avait écrit le code comme ceci:

1
2
3
4
5
5 # define MIA_COSTANTE

3 ; int b = 3;
int c;
b ; c = b + MIA_COSTANTE;

Le compilateur sache dès le départ que MIA_COSTANTE , étant constant, la valeur ne changera pas donc je peut réserver moins de place pour la traiter. En pratique, le code de diverebbe Assemblée:

1
2
3
d0 ; la "q" indica una istruzione "quick", cioè che tratta valori compresi tra -128 e +127 moveq # 3, d0; le "Q" indique une déclaration «rapide», qui est des valeurs comprises entre -128 et +127
, Une déclaration «rapide» prend moins de temps CPU (4 cycles d'horloge dans ce cas)
d0 ; anche qui uso una istruzione "quick" addq # 5, d0; ici un manuel d'instruction "rapide"

Ce code est très rapide et prend moins d'octets. Ce que nous devons garder à l'esprit est que lorsque vous déclarez une variable d'environnement se prépare à le traiter comme tel, même si les compilateurs d'aujourd'hui peut faire des miracles, en effectuant une série d'étapes dans le code avant compilation (certains compilateurs, même effectuer une sorte de programme de simulation pour optimiser la compilation en code machine).

Une bonne règle est donc de déclarer le bon type pour nos variables, bien que ces sommes. Sinon, utiliser les constantes, surtout si le langage de programmation, nous utilisons les attendus (comme dans le cas de la nouvelle Flash CS3).

Suite ...

Assembleur émulateur 6502

Alors que nous sommes sur le thème de la nostalgie, voici une belle émulation de l'historique de 6502 microprocesseur , monté dans les années 80 dans la console et les ordinateurs que les NS Apple, Commodore et la Nintendo 64 (alors à l'étape 6510, ...). Ce bijou mignon est entièrement écrit en JavaScript, fonctionnant sur quasiment tous les navigateurs (Safari Opera), avec le seul inconvénient étant un peu lent. Mais vaut la peine. Sur le site ( http://www.6502asm.com/ ) ont trouvé quelques beaux exemples, mais l'objectif curieux.

Suite ...