assembly - 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
解决方案
推荐阅读
- sql - 跨多列计算值
- javascript - 如何在 click() 函数中获取元素的值?
- reactjs - 当我使用 history.push url 更改但不呈现组件时
- r - 如何根据 R 中的中值随机选择和绑定数据列?
- python - await 关键字如何工作?
- javascript - Cloud Firestore 权限
- java - 获取 java.lang.NoClassDefFoundError: com/google/gson/Gson
- python - 如何按照某些标准将数据集拆分为子集?
- python - 无法解决 '-' 是格式为 '%-m/%-d/%Y %-H:%M' 的错误指令
- c - “某些 unicode 字符无法保存在当前代码页中”在 C 中使用 Cyrillic