Das Problem ist ziemlich einfach. Verwenden Sie die indirekte Adressierung (mit anderen Worten, verwenden Sie nicht direkt die Speicheradressen, sondern referenzieren Sie sie vielleicht über ein Register) und kehren Sie die Zeichenfolge um. Zum Beispiel, hier sind unter der Annahme, einige Barebones, dass Sie bereits Quell- und Ziel definiert haben:
MOV SI, source ; Get source address
MOV DI, (target + SIZEOF source) ; Get the ending address for target
LOOP:
MOV AL, [SI] ; Get a byte
MOV [DI], AL ; Store a byte
INC SI ; Move forward one in source
DEC DI ; Move back one in target
CMP AL, 0 ; Have we reached the zero termination?
JNZ LOOP
RET
Dies ist keineswegs gemeint, vollständig oder funktional sein. Sie müssen zum Beispiel einen besseren Weg finden, die Länge von SOURCE dynamisch zu bestimmen. :) Ich möchte jedoch nicht die Freude des Lernens von dir wegnehmen. Dies sollte zumindest ein guter Ausgangspunkt sein.
Wir machen Ihre Hausaufgaben nicht für Sie. – GAntoine
Mögliches Duplikat von [Wie man eine Zeichenfolge in Assemblersprache umkehrt?] (Http://stackoverflow.com/questions/26368586/how-to-reverse-a-string-in-assembly-language) – akashrajkn
Ich stimme zu, dass dies ist nahe an der Wie man eine Schnur umkehrt, aber es ist ein bisschen anders, da es ist, es (zu einer neuen Position) zu kopieren, anstatt, wie man eine Schnur rückwärts ausgibt. –