Maschinensprache



  • Theoretisch könntest du das was dir der Assembler übersetzt natürlich direkt schreiben, aber der Aufwand wäre enorm.



  • 111001001001101001011111001010010000101101010101110110101000101110111001000010000111101110010000101
    111010101010010000101111111111010000101101101010111110110101000101110111001110000111101110010000101



  • klar kann man das.

    Bis in die 60er Jahren war es nicht ungewöhnlich, nach dem Anschalten eines Computers erst einmal eine Handvoll Maschinencodes binär über eine Schalterleiste einzuklimpern - z.B. solche Maschinencodes, die die Maschine veranlaßten, daß ein kleines Ladeprogramm vom Lochstreifen eingelesen wurde, welches dann gestartet wurde und seinerseits schließlich das eigentliche Betriebssystem von einem Massenspeicher holte.



  • Also aXYZn, keine Ahnung, was du vorhast, aber es wäre auch für dich um ein vielfaches einfacher, wenn du dir entweder ein Buch über Rechenarchitektur kaufst, oder ein Buch über eine spezille einfache Architektur (wie das ARM Developer Manual, was ich dir bereits empfohlen habe). Es gibt nun Mal Sachen, die man nicht durchs Programmieren lernt, auch nicht durch Assembler. Wieso bist du so hilfsresistent?



  • u_ser-l schrieb:

    Bis in die 60er Jahren war es nicht ungewöhnlich, nach dem Anschalten eines Computers erst einmal eine Handvoll Maschinencodes binär über eine Schalterleiste einzuklimpern - z.B. solche Maschinencodes, die die Maschine veranlaßten, daß ein kleines Ladeprogramm vom Lochstreifen eingelesen wurde, welches dann gestartet wurde und seinerseits schließlich das eigentliche Betriebssystem von einem Massenspeicher holte.

    das erinnert mich irgendwie an den 'nop-stecker' für diese geräte: http://de.wikipedia.org/wiki/NDR-Klein-Computer
    🙂



  • was ist das (nop-Stecker) ? War etwas vor meiner Zeit oder ich hab's nicht mitgekriegt ...



  • u_ser-l schrieb:

    was ist das (nop-Stecker) ? War etwas vor meiner Zeit oder ich hab's nicht mitgekriegt ...

    zum testen des prozessors kann man sich eine nop-anweisung mit dem lötkolben basteln. siehe hier: http://home.arcor.de/tschallener/schule/mc.pdf (2.13.2)
    🙂



  • unter dos war standardmaessig ein debugger mit dabei, damit konnte man sehr sehr einfach code als machinencode eingeben und z.b. als .com datei ablegen die man dann auch direkt ausfuehren konnte.



  • u_ser-l schrieb:

    Bis in die 60er Jahren war es nicht ungewöhnlich, nach dem Anschalten eines Computers erst einmal eine Handvoll Maschinencodes binär über eine Schalterleiste einzuklimpern...

    Auf so eine Kiste habe ich noch in den 70er Jahren bei einem Kunden arbeiten müssen. Es war ein Graus. Jeder arithmetische oder sonstige Fehler brachte die Kiste zum Absturz. Danach waren die Kippschalter notwendig.
    Vergiss Deine Frage!



  • Frage war nicht von mir, trotzdem interessant. Einer der ersten Heimcomputer (altair 8800) wurde auch noch binär über Schalterreihe an der Frontplatte programmiert.



  • In reinem kannst du es schon machen, aber du kannst das binäre Zahlensystem z.B. auch mit C benutzen:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    	int i, t, c;
    	unsigned char b;
    	FILE *output;
    
    	char *binary[] = {
    		"1   0   1   1    0   1   0   0", // 0xB4 = MOV AH
    		"0   0   0   0    1   0   0   1", // 0x09 = 09
    		"1   0   1   1    1   0   1   0", // 0xBA = MOV DX
    		"0   0   0   0    1   0   0   1", // 0x09 = XX09
    		"0   0   0   0    0   0   0   1", // 0x01 = 01XX
    		"1   1   0   0    1   1   0   1", // 0xCD = INT
    		"0   0   1   0    0   0   0   1", // 0x21 = 21
    		"1   1   0   0    1   1   0   1", // 0xCD = INT
    		"0   0   1   0    0   0   0   0", // 0x20 = 20
    
    		"0   1   0   0    1   0   0   0", // 0x48 = 'H'
    		"0   1   1   0    0   1   0   1", // 0x65 = 'e'
    		"0   1   1   0    1   1   0   0", // 0x6C = 'l'
    		"0   1   1   0    1   1   0   0", // 0x6C = 'l'
    		"0   1   1   0    1   1   1   1", // 0x6F = 'o'
    		"0   0   1   0    0   0   0   0", // 0x20 = ' '
    		"0   1   0   1    0   1   1   1", // 0x57 = 'W'
    		"0   1   1   0    1   1   1   1", // 0x6F = 'o'
    		"0   1   1   1    0   0   1   0", // 0x72 = 'r'
    		"0   1   1   0    1   1   0   0", // 0x6C = 'l'
    		"0   1   1   0    0   1   0   0", // 0x64 = 'd'
    		"0   0   1   0    0   0   0   1", // 0x21 = '!'
    		"0   0   0   0    1   0   1   0", // 0x0A = '!'
    		"0   0   0   0    1   1   0   1", // 0x0D = '!'
    		"0   0   1   0    0   1   0   0", // 0x24 = '$'
    	};
    
    	output = fopen("programm.com", "wb");
    
    	t = (sizeof(binary) / sizeof(char *));
    	for(i = 0; i < t; i++){
    		char *p = binary[i];
    		b = 0; c = 0;
    		while(*p){
    			if(*p == '0' || *p == '1'){
    				if(*p == '1')
    					b |= (1 << (7 - c));
    				c++;
    			}
    			*p++;
    		}
    		fwrite(&b, sizeof(b), 1, output);
    	}
    
    	fclose(output);
    
    	fflush(stdout);
    	system("programm.com");
    
    	return 0;
    }
    


  • u_ser-l schrieb:

    Einer der ersten Heimcomputer (altair 8800) wurde auch noch binär über Schalterreihe an der Frontplatte programmiert.

    http://www.digibarn.com/collections/mags/pe-jan-1975/pe-1975-01-altair-cover.jpg
    🙂



  • Welcher Mensch mag denn gerne mit Binärzahlen umgehen? Die Araber hatten das Dezimalsystem eingeführt, das uns einfach geläufiger ist. Nun gut, Oktal- oder Hexadezimalzahlen sind auch noch irgendwie brauchbar. Aber Binärzahlen? Für Maschinen ja, für mich allein für Bitschalter zum Sparen von Speicherplatz und aus Gründen der Performence. Alles weitere machen Compiler und Assembler!



  • berniebutt schrieb:

    Welcher Mensch mag denn gerne mit Binärzahlen umgehen?

    Ich.

    berniebutt schrieb:

    Die Araber hatten das Dezimalsystem eingeführt, das uns einfach geläufiger ist.

    Aha.


Anmelden zum Antworten