我试图找出如何将字符串反转到新位置然后打印它。
我知道我必须循环遍历字符串,将每个字符推入堆栈然后弹回到相同的字符串中,但在此之后,我有点困惑。
我提出了以下代码,但由于我在Visual Studio中了解注册窗口时遇到了问题,因此我决定尝试使用WriteString函数。但是,它似乎没有加载窗口。
我是否错误地调用了WriteString?
另外,对于它的价值,当我尝试“跳过”时,循环会循环适当的次数,虽然L2只在我观看时显示“d”,而L3仅显示“s”。
INCLUDE Irvine32.inc
.386
.stack 4096
ExitProcess proto,dwExitCode:dword
.data
str1 BYTE "dogs"
rStr BYTE 4 DUP(?) ;reverse
.code
main proc
mov ecx, 4
mov esi,0
L1: mov al, str1[esi]
mov rStr[esi], al
inc esi
Loop L1
L2: movzx eax, rStr[esi]
push eax
inc esi
Loop L2
mov ecx, 4
mov esi,0
L3: pop eax
mov rStr[esi],al
inc esi
Loop L3
mov edx,OFFSET rStr
call WriteString
exit
main endp
end main