Artikel Tagged 'Assembly'

Wie in PHP mit Xcode und Objective-C zu entwickeln

Wie viele Programmierer zu verwenden, habe ich auch meine eigene Bibliothek von Funktionen bereit, in mehreren Projekten und mehreren Kontexten wiederverwendet werden. Lassen Sie mich den Titel von diesem Post, vielleicht ein wenig "riskant, aber dennoch, wie wir sehen werden, nicht weit von der Realität.

In Objective-C können Sie schreiben und nennen C / C + +, einschließlich der Montage für diese Angelegenheit. Diese Eigenschaft macht ihn zu einem sehr vielseitigen Sprache und, in gewisser Hinsicht phänomenal. Auf der einen Seite, können Sie und schätzen die rein Syntax von Objective-C, auf der anderen Seite können Sie schneller Portieren von Code in ANSI C geschrieben wurden (vielleicht für Digital Unix oder Sun) und kann bequem in unsere iPhone-oder iPad-Anwendungen fit; ganz zu schweigen von all den BSD-Kernel ist bereits auf Mac OS X! verfügbar

Fortsetzung ...

Entwicklung Sprachen

I "wiederbelebt" werden in diesem Artikel von mir schrieb ein wenig "von Jahren. Ich geringfügig überarbeitet und aktualisiert ein bisschen hier und da, aber ich denke, es ist immer noch relevant und interessant.

EINFÜHRUNG

Was ist eine Programmiersprache? Ein Computer, auch bekannt als PC (Personal Computer), hat eine persönliche Sprache. Diese Sprache ist Maschinencode genannt, zu verstehen, dass jede Maschine, so dass alle Computer (PC kompatibel, Apple, Unix, etc. ...), hat eine einzigartige und proprietäre. Die Programme, die wir sehen "run" auf unsere PCs sind vor allem durch die mysteriösen Objekt mit dem Namen eines Mikroprozessors durchgeführt. Dies ist das Herz, das intelligente Modul, jeden Computer. In der Tat ist nur eine Anwendung nicht ausgeführt, sondern wird durch den Mikroprozessor unterstützt, so zu sprechen, was man ein Betriebssystem: eine Software-Schicht, die durch den Hersteller der Maschine geliefert (siehe zum Beispiel den Apple Macintosh).

Fortsetzung ...

Konstanten und Variablen: was ist der wirkliche Unterschied?

Es scheint offensichtlich, aber einige entkommen den feinen Unterschied zwischen Konstanten und Variablen in einer Programmiersprache. Die Konstanten, aus dem Namen, ändern sich nicht ihren Wert während des Zyklus eines Programms, während Variablen dagegen tun können! Oft aber passiert, Variablen anstelle von Konstanten, ohne es zu benutzen, auch, weil dies nicht Auswirkungen hat die Logik einer Anwendung. Trotz dieser, der Unterschied zwischen Konstanten und Variablen, und es entsteht alle zum Zeitpunkt der Kompilierung, wobei die Konstante eine Rolle spielt sicherlich stärker.

Aus C oder Assembler-Programmierung kennt den Unterschied zwischen Konstanten und Variablen, vor allem, weil in beiden Montage-und C, Konstanten eine Rolle spielen, indem MACRO. Für MACRO bedeutete in ein "Stück Code", markiert und in den Code ersetzt beim Kompilieren. Der Compiler, kurz gesagt, führt eine Art zu finden .. ersetzen (und ist sostituitsci) in den Code jedes Mal trifft eine Konstante.

Stell dir vor, in C, die folgenden einfachen Code schreiben:

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. Ob a der b werden als Variablen in diesem Fall gezeigt. In C, in der Tat sind die Konstanten mit dem Schlüsselwort definiert #define . sono state definite come int . Wir bemerken sofort, dass a dem b wie bereits definiert int . Bereits hier können Sie eine erste Optimierung. Wenn wir wissen, dass unsere variable a nie einen bestimmten Wert überschreiten, sollten Sie erklären, es richtig und verwenden Sie keine Datentypen nach dem Zufallsprinzip. Einige Entwickler nicht die Mühe, die richtigen Typen zu erklären, denken, dass dies keinen Einfluss auf die Performace! Falsch! Alternativ ist es akzeptabel, dass der erste Entwurf des Codes nicht um dieses Maß an Details. Allerdings ist es eine gute Regel ist, während der Entwicklung, Überprüfung des Codes und überprüfen Sie die Datentypen.
Allerdings, in einer Versammlung der Motorola-Familie, zum Beispiel, wie der mythische 68000, würden packen unser Code kompiliert (ohne Optimierungen) zu einer Art:

1
2
3
4
, d0 ; int a Bewegen Sie den # 5, d0;. int
, d1 ; int b zu bewegen. # 3, d1, int b
d2 ; int c - foo Bewegen Sie den D1, D2, int c -. foo
l d0 , d2 ; risultato in d2 ovvero c hinzuzufügen. die d0, d2, d2, oder das Ergebnis in c

oder:

1
2
3
, d0 ; int a Bewegen Sie den # 5, d0;. int
, d1 ; int b zu bewegen. # 3, d1, int b
d1 ; risultato in d1... zu bewegen. l d0, d1, d1 Ergebnis ...

Der Compiler, aber clever, Mühe in Optimierungen, dann schreiben Sie den Code mit der rechten Schlüsselwort kann nur dazu beitragen, die kompilierte Ausgabe zu verbessern. In unserem Fall, wenn der Wert 5 ist eine Konstante ist nicht bequem, eine Integer-Variable verwendet wird, da der Compiler, und das zu Recht, wenn man die variable variable, in der Tat, also ein ganzes predisponde einfach auf den Wert 5, der in binär ist 101, enthalten erstreckt sich über drei einzelne Bits (wenn überhaupt, ist int ein 32bit oder 53bit Schlimmste, was ein Doppel-precision floating point!). Hätten wir den Code wie folgt geschrieben:

1
2
3
4
5
5 # define MIA_COSTANTE

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

Der Compiler würde von Anfang an wissen, dass MIA_COSTANTE , konstant ist, wird der Wert nicht ändern, damit ich weniger Platz, sie zu behandeln reservieren können. In der Praxis der Versammlung Code diverebbe:

1
2
3
d0 ; la "q" indica una istruzione "quick", cioè che tratta valori compresi tra -128 e +127 moveq Nr. 3, d0; das "q" gibt eine Anweisung an "quick", also Werte zwischen -128 und +127
, Eine Aussage "schnell" dauert weniger CPU-Zeit (4 Taktzyklen in diesem Fall)
d0 ; anche qui uso una istruzione "quick" addq Nr. 5, d0, hier eine Anleitung "quick"

Dieser Code ist sehr schnell und benötigt weniger Bytes. Was müssen wir im Hinterkopf behalten, bereitet, wenn man eine Variable Umfeld erklären, um sie als solche zu behandeln, auch wenn die heutigen Compilern Wunder tun kann, die Durchführung einer Reihe von Schritten in den Code vor dem Kompilieren (einige Compiler, auch Führen Sie eine Art Simulation Programm zur Zusammenstellung in Maschinencode zu optimieren).

Eine gute Regel ist es daher, die richtige Art für unsere Variablen zu deklarieren, obwohl diese sind. Alternativ können Sie die Konstanten, vor allem, wenn die Programmiersprache verwenden wir die erwartete (wie im Fall der neuen Flash CS3).

Fortsetzung ...

Emulator Assembler 6502

Während wir über das Thema Nostalgie sind, ist hier eine schöne Nachbildung des historischen 6502 Mikroprozessor , in den 80er Jahren in die Konsole und Computer als Apple, Commodore NS und der Nintendo 64 angebracht (dann im Schritt 6510, ...). Dieses nette kleine Juwel ist komplett in JavaScript geschrieben und läuft auf nahezu allen Browsern (Safari Opera), mit dem einzigen Nachteil war ein wenig langsam. Aber es wert. Auf der Website ( http://www.6502asm.com/ ) fanden einige schöne Beispiele, aber neugierig Linse.

Fortsetzung ...