Zu ergänzen ist hier noch, dass Initial nochmal geshiftet werden muss.
Der Befehl SHL schiebt das oberste Bit des Registers in das Carry-Flag. Dieser Wert wird dann nur noch abgefragt.
Ich hoffe mal, dass nachfolgender ASM-Code das verdeutlicht:
Code:
;AL: Eingabebyte
;CX:Zählerwort
;Wie häufig soll geshiftet werden?
MOV CX, 8
SCHLEIFE$ANFANG: ;Label für Schleife
SHL AL,1; Linksshiften
;Prüfung auf 0/1
JC AUSGABE1 ;Sofern Carry gesetzt ist, zur Ausgabe für 1 springen
;
;Hier Null ausgeben
;
BRA SCHLEIFE$ENDE ;zum Schleifenende springen
AUSGABE1: ;Label für 1 ausgeben
;
;Hier Eins ausgeben
;
SCHLEIFE$ENDE:
DEC CX ; Zähler verringern
JNZ WEITER ;Sofern noch Durchläufe, weitermachen
viel Erfolg bei deiner Prüfung!
Edit: Zum Thema Ein/Ausgabe: Das funkioniert, soweit ich weiß, über den Interrupt 21H. Dazu bin leider aktuell noch nicht nüchtern genug..