如何使用两个单独的字节数组反转字符串?
使用LOOP指令编写程序,使用间接寻址将字符串从源复制到目标,从而反转过程中的字符顺序。
使用以下变量:
source BYTE "This is the source string",0
target BYTE SIZEOF source DUP ('#')
答案 0 :(得分:2)
问题非常简单。使用间接寻址(换句话说,不要直接使用内存地址,但可以通过寄存器引用它们)并反转字符串。例如,假设您已经定义了源和目标,这里有一些准系统:
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
这绝不意味着完整或功能性。例如,您可能需要找出一种更好的方法来动态计算出SOURCE的长度。 :)但是,我不想带走远离你的快乐。这应该至少是一个很好的起点。