我想一個二進制數轉換爲裝配一個小數,但我不斷獲取零轉換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