您将如何在寄存器上进行 NASM 中的位移位?我读了手册,它似乎只提到了这些操作员>>, <<。当我尝试使用它们时,NASM 抱怨移位运算符处理标量值。您能解释什么是标量值并举例说明如何使用>> and <<。另外,我还以为有一个shr or shl运营商。如果它们确实存在,您能否举例说明如何使用它们?感谢您的时间。
<<
and >>
仅适用于整数常量。这就是“标量值”的含义。您可以使用以下命令移动寄存器中的值shl
or shr
指示。它们用于将寄存器中的值分别向左或向右移动给定的位数。
本例中的第一行将值移入ax
左移 4 位,相当于乘以 16。第二行将值移入bx
右除 2 位,与整数除以 4 相同。
shl ax, 4
shr bx, 2
您还可以使用cl
指示要移位的位数,而不是常数。有关这些和相关说明的更多信息,请参阅这一页 https://web.archive.org/web/20120426171627/https://www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/Chapter_6/CH06-3.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)