0

我正在使用 HLA,但不理解此说明:

shl( 5, ax )

我想详细了解该指令的作用。

4

2 回答 2

2

该指令意味着 ax 中的数字将被左移 5 位并用零填充:

    Before the shift:  ax = 1111 1111 1111 1111 b
     After the shift:  ax = 1111 1111 1110 0000 b

在算术术语中,它意味着将 ax 乘以 2^5=32,因为一次移位等于乘以 2。

另外,如果您想学习汇编语言,请不要使用 HLA。请改用FASMNASM。这样,您将从社区获得更多帮助。

于 2013-11-06T16:40:11.410 回答
0

好吧,移位实际上就像乘法一样

如果您向左移动 1 次,则乘以 2

意思就是:

 mov eax, 5
 mov ebx, 2
 mul ebx

是相同的:

     mov eax, 5
     shl eax, 1

知道了?

于 2013-11-06T17:45:41.030 回答