我想一个二进制数转换为装配一个小数,但我不断获取零转换ASCII /二进制文件的汇编语言转换为十进制
这是多少
aLength db "00000000000000000000000000010101", NULL
我试图用这个代码由“0”让每个字符和底层乘以2,并增加,但它口口声声说,答案是0
mov rbx,aLength
mov dword[rsum],0
mov ecx,0
mov r10,32
lp:
mov cl,byte[rbx]
sub cl,'0'
mov eax,dword[rsum]
mul dword[two]
add eax,ecx
mov dword[rsum],eax
add rbx,1
dec r10
cmp r10,0
jbe lp
mov r8d,dword[rsum]
mov byte[aLength],r8b
看起来不错对我来说,除了'MUL DWORD [二]'这是可疑的,可惜你没有告诉我们“二” ......由2乘法,尝试'添加EAX,eax'(或一个'shl')而不是 – Tommylee2k
看起来像x86程序集(几乎每个CPU系列都有自己的程序集,不能一概而论)。 – MSalters