奇数我假定使用汇编语言(ARM 6)减半的整数,例如42,逻辑右移可用于产生21但可能有人解释然后如何21可以减半给我10.5?我不确定“幕后”处理小数值的情况。分割用汇编语言
更新
我想真正的问题是:是LSR用于部门或只是位右移?如果是后者,那么逻辑换档的应用是什么?
奇数我假定使用汇编语言(ARM 6)减半的整数,例如42,逻辑右移可用于产生21但可能有人解释然后如何21可以减半给我10.5?我不确定“幕后”处理小数值的情况。分割用汇编语言
更新
我想真正的问题是:是LSR用于部门或只是位右移?如果是后者,那么逻辑换档的应用是什么?
一个整数除法不能导致十进制/浮点数。如果你想得到这个结果,你必须将数字转换为浮点数,然后使用浮点除法指令。事实证明,浮点数比整数有totally different representation in binary,因此,移位对浮点数不起作用。
是LSR打算分割还是只是将位移到右边?
为什么不能两者兼而有之? LSR旨在按照名称的含义转换位。结果向右移位与无符号整数除2相同(与向右移十进制数相同,除以10)。
如果是后者,那么Logical Shifts的应用是什么?
有逻辑的变化很多应用。 Here是几个例子。
LSR只是右移位(逻辑移位)。如果你的号码是无符号的,你可以使用2的LSR作为div。 但是如果你需要将div除以2来得到有符号数,你应该使用ASR(算术移位)。
一旦要使用浮动点,所述计算机不再使用正常寄存器('eax','ebx'等)。相反,它使用浮点寄存器,所以搜索“浮点汇编”可能会帮助你。 (我从来没有使用过浮点寄存器,所以不幸的是我不能很容易地将它作为答案,但祝你好运!) – Numeri
你可以切换到定点并在零指令中执行该除法,但是这取决于进一步的代码来解释这个数字的意图。 – harold