我看到了下一个代码:
shr AL, 1
jnc bit_0
Run Code Online (Sandbox Code Playgroud)
由于shr instrucrion,我不明白进位标志何时开启?
谢谢
Mat*_*ery 10
shr AL, 1将所有位移到AL右边的一个位置.
原始最右边的位从AL寄存器移出到进位标志(并且新的最左边的位设置为0).例如:
+------------------------+ +------------------------+
| 1 0 0 1 0 1 0 1 | | 0 1 1 0 0 1 0 0 |
+------------------------+ +------------------------+
\ \ \ \ \ \ \ \ or \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
+------------------------+ CF +------------------------+ CF
|(0) 1 0 0 1 0 1 0 | 1 |(0) 0 1 1 0 0 1 0 | 0
+------------------------+ +------------------------+
Run Code Online (Sandbox Code Playgroud)
在你对另一个答案的评论中:
我的书给出了下一个例子:班前:AL = 10101110; shr AL,1; 班次后:01011100,CF = 1; 这是错的吗?
如果这就是它所说的,那么是的.这是一个左移(shl AL, 1),而不是一个右移:AL所有位都被左移一个位置,进位标志被设置为从左端移出的位.