首页 > 解决方案 > x86 汇编字符串数组指针

问题描述

当我完成将第一个数字乘以第二个数字时,我陷入了困境,而第三个数字 num[] 中的指针将在 ASCII 码中变为 90

例如,如果我输入'345'作为字符串,我将它分成几个char'3','4','5',然后我将3乘以10并加4,那么ebx将为34并跳转回L5 虽然 ptr[edx] 应该指向'5',但它最后显示指向数字'42',请让我知道问题出在哪里,tks。这是我的代码:

    L3:
    movzx ebx,byte ptr[edx]
    sub ebx,48                      ;ASCII -48
    inc edx                         ;char to next

    L5:
    cmp byte ptr[edx],' '
    jne mmul

    mmul:
    movzx eax,byte ptr[edx]         ;turn int
    mov next,eax
    sub next,48
    mov eax,ebx                     ;
    mov cx,10
    mul cx
    mov ebx,eax                     ;ebx*10
    add ebx,next                    ;
    inc edx                         ;
    jmp L5

标签: assemblyx86masm

解决方案


推荐阅读