![](/img/trans.png)
[英]NASM - How do you move an 8-bit register into a full 32-bit register?
[英]Why does this mathematical operation work? (Getting 8-bit register from 32-bit register)
E?X % 256 = ?L
这似乎总是可行的,其中256以10为底,%是模数函数。
为什么?
“ mod 256”是除以256的余数。
用二进制表示,这是最低的8位(因为256是2到8)。
就像“ mod 2”为您提供最低有效位(0或1)一样。
在(以十进制为基数的十进制数)上,“ mod 100”为您提供最后两位小数(2013 mod 100 => 13)。
这只是数学的工作方式。 如果将数字x除以m n ,则余数将是基数m中x的最低有效n位数字。
例如,在以10为底的数字中,如果将任何数字除以10 n ,则除法的其余部分将是原始数字的最低有效n位数字。 例子:
5 mod 10^1 = 5 mod 10 = 5
1245 mod 10^2 = 1245 mod 100 = 45
二进制中确实发生了同样的事情-256是2 8 (或者如果愿意,则为二进制100000000)。 如果将任何数字除以100000000,则余数将是该数字的最低有效8位。
简单:当您乘以256
mod时,实际上是乘以100000000
mod
例如:假设您有32位数字11110011111111001111011011110000
并将其除以256
(以10为底)/ 100000000
那么您基本上就可以取出数字的后8位,即11110000
,您可以这样想。 在十进制中,假设您想要最后4位数字,那么您必须将mod乘以10000
(以10为底)。 二进制数也是如此
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.