Wenn ich es richtig verstanden habe, dann musst du folgenden Pseudocode in Assembler umsetzen:
Code:
int counter = 0;
while counter < 8 {
if(AL.carryflag == 0){
print 0
}
else print 1;
AL.shiftleft(); // AL << 1
counter++;
}
Die Aufgabenstellung ist ja ein Ascii Zeichen einzulesen und dann bitweise auszugeben. Ein Ascii-Zeichen entspricht 8 Bit, folglich weißt du schonmal, dass du eine Schleife brauchst, die genau 8 mal durchläuft. Wenn ich es richtig verstanden habe, dann sollst du pro Schleifendurchlauf das erste Bit der Speicherstelle untersuchen (carry flag) und je nach Wert 1 oder 0 ausgeben und danach einen Shift nach links machen, sodass das folgende Bit nun an erster Stelle steht. Wenn die Schleife dann 8 mal durchgelaufen ist, hast du eine Ausgabe in Form von "01001101".
1. Schleifendurchlauf
01001101
-> print
0
-> shiftleft
2. Schleifendurchlauf
10011010
-> print
1
-> shiftleft
3. Schleifendurchlauf
00110100
-> print
0
-> shiftleft
usw.
Diesen Algorithmus musst du dann nur noch in der Sprache deiner Wahl umsetzen.