Assembly 需要使用visual studio.asm文件在汇编语言中显示带小数点的数字的帮助吗
需要使用visual studio.asm文件在汇编语言中显示带小数点的数字的帮助。 例如,10除以4等于2.5,但它只显示2Assembly 需要使用visual studio.asm文件在汇编语言中显示带小数点的数字的帮助吗,assembly,x86,irvine32,Assembly,X86,Irvine32,需要使用visual studio.asm文件在汇编语言中显示带小数点的数字的帮助。 例如,10除以4等于2.5,但它只显示2 mov eax, 10 mov ebx, 4 xor edx, edx div ebx call WriteDec 按所需的小数位数倾斜股息。所以100/4=25,或者如果你想要10/4.5=2.22,那么你需要10000/45=222,你的算法只需要在正确的位置插入小数 按所需的小数位数倾斜股息。所以100/4=25,或者如果你想要10/4.5=2.22,那么你需要
mov eax, 10
mov ebx, 4
xor edx, edx
div ebx
call WriteDec
按所需的小数位数倾斜股息。所以100/4=25,或者如果你想要10/4.5=2.22,那么你需要10000/45=222,你的算法只需要在正确的位置插入小数 按所需的小数位数倾斜股息。所以100/4=25,或者如果你想要10/4.5=2.22,那么你需要10000/45=222,你的算法只需要在正确的位置插入小数 DIV提供了整数商和余数。通过将小数点乘以10并除以除数,可以从余数中构造小数点后的整数:
INCLUDE Irvine32.inc
.CODE
main PROC
mov eax, 10 ; Dividend
mov ebx, 4 ; Divisor
xor edx, edx ; High 32 bit of dividend
div ebx ; Result: EAX, remainder in EDX
call WriteDec ; http://programming.msjc.edu/asm/help/index.html?page=source%2Firvinelib%2Fwritedec.htm
mov al, '.' ; Decimal point
call WriteChar ; http://programming.msjc.edu/asm/help/index.html?page=source%2Firvinelib%2Fwritechar.htm
imul eax, edx, 10 ; EAX = EDX * 10 i.e. New dividend = Old remainder * 10
xor edx, edx ; Clear the high part of dividend
div ebx ; EAX rem. EDX = EDX:EAX / EBX
call WriteDec ; http://programming.msjc.edu/asm/help/index.html?page=source%2Firvinelib%2Fwritedec.htm
exit
main ENDP
END main
根据所需的小数位数,您可以重复此过程。DIV提供了整数商和余数。通过将小数点乘以10并除以除数,可以从余数中构造小数点后的整数:
INCLUDE Irvine32.inc
.CODE
main PROC
mov eax, 10 ; Dividend
mov ebx, 4 ; Divisor
xor edx, edx ; High 32 bit of dividend
div ebx ; Result: EAX, remainder in EDX
call WriteDec ; http://programming.msjc.edu/asm/help/index.html?page=source%2Firvinelib%2Fwritedec.htm
mov al, '.' ; Decimal point
call WriteChar ; http://programming.msjc.edu/asm/help/index.html?page=source%2Firvinelib%2Fwritechar.htm
imul eax, edx, 10 ; EAX = EDX * 10 i.e. New dividend = Old remainder * 10
xor edx, edx ; Clear the high part of dividend
div ebx ; EAX rem. EDX = EDX:EAX / EBX
call WriteDec ; http://programming.msjc.edu/asm/help/index.html?page=source%2Firvinelib%2Fwritedec.htm
exit
main ENDP
END main
根据所需的小数位数,您可以重复此过程。显示您的解算尝试?是否从Irvines库写入DEC?是的,整数除法就是这样工作的。您的选项包括定点@shift_left的答案,浮点通常与硬件FP一起使用,如转换为FP和使用divsd指令,以及任意/扩展精度和/或跟踪分数和/或仅在需要时转换为十进制字符串。显示您的解算尝试?WriteDec是否来自Irvine库?是,整数除法就是这样工作的。您的选项包括定点@shift_left's answer、浮点(通常与硬件FP一起使用),如转换为FP并使用divsd指令,以及任意/扩展精度和/或跟踪分数并仅在需要时转换为十进制字符串。