我想学习使用x86架构的大会。我可以做基本的计算,比如add,sub,mul,imul,div和idiv。但是,当我尝试打印结果时,字符串中有几个空格。有没有办法去除这些额外的空间?我目前正试图通过循环一个字符串并将非空格字符发送到第二个字符串来删除它们。如果这是这样做的,为什么我的代码不工作?我读了一些关于交换(xchg)的地方,但我不完全确定如何使用它。这会是一种更高效的方式吗?大会x86 Win32
dtoa product, eax ; convert to ASCII characters
dtoa xStart, x
dtoa yContinue, y
lea edi, product
mov ecx, 20h ; mov hex value of space into ecx
forStart: cmp [edi], ecx ; compare edi to space
jne addToString
add edi, 4 ; get address of next array element
cmp [edi], 00h ; cmp value of edi to null
je printResult
jmp forStart ; loop through for next element
addToString: mov ecx, [edi] ; mov value of edi into ecx
add edi, 4 ; get address of next array element
cmp [edi], 00h ; cmp value of edi to null
je printResult
jmp forStart ; loop through for next element
printResult: output resultLbl, xStart ; output result