Einzelnen Beitrag anzeigen
Ungelesen 30.05.10, 15:04   #3
kramido
Erfahrener Newbie
 
Registriert seit: Apr 2010
Beiträge: 172
Bedankt: 31
kramido ist noch neu hier! | 0 Respekt Punkte
Standard

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..
kramido ist offline   Mit Zitat antworten