Die Aufgabe ist folgende:
Es gibt eine Zeichenfolge aus dem Alphabet zum Beispiel fgh. Ich muss diese Zeichenfolge mit n Letters mit der angegebenen Richtung verschieben. Zum Beispiel, wenn die Richtung 1 ist, und n = 3 der Ausgang wäre ijk. Ich habe ein Programm erstellt, das diese Verschiebungen berechnen kann, aber wenn es das Ende des Alphabets erreicht, würde es die folgenden Zeichen in die ASCII-Tabelle schreiben. Wenn der Eingang beispielsweise vwy ist, lautet die Ausgabe yz {. Es ist ein Code-Snippet, dass ich derzeit haben:
Assembly-Programm zum Verschieben einer Zeichenfolge mit einer bestimmten Anzahl von Zeichen
loop1: ; if the direction is forwards
MOV AL, [ESI]
CMP AL, 0
JE end
ADD AL, 3
INC ESI
Call WriteChar
LOOP loop1
loop2: ; if the direction is backwards
MOV AL, [ESI]
CMP AL, 0
JE end
SUB AL, 3
Call WriteChar
INC ESI
LOOP loop2
Können Sie mir helfen, und mir zeigen, wie kann ich diesen Code ändern mit dem Eingang zu arbeiten ( xyz, n = 3) oben?
sollte es nicht 26 sein? ;) – Tommylee2k
@ Tommylee2k wh00ps, ja, 26. Ich habe es behoben. –
'26 == ('z' + 1-'a ')', wenn Sie faul sind, diese Buchstaben zu zählen ... (funktioniert vielleicht nicht mit einem sehr einfachen Assembler, aber die meisten x86-Assembler kompilieren glücklicherweise ASCII char-Literal in den richtigen numerischen Wert) – Ped7g