回答
它不; scr(带进位移动)。然而,测试可能意味着(并且确实)在shr执行之前测试进位位的设置。
你确定吗?我的书给出了下一个例子: 换班前:AL = 10101110 ; shr AL,1 ; 换班后:01011100,CF = 1 ; 这是错误吗? – 2012-03-22 14:33:40
资料来源:http://en.wikibooks.org/wiki/X86_Assembly/Shift_and_Rotate另外,如果确实如此,scr会有什么意义呢? – 2012-03-22 14:55:21
没有'scr'。 'shr'和'shl'移入进位位。资料来源:http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-2b-manual.pdf – ughoavgfhw 2012-03-22 15:08:48
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
+------------------------+ +------------------------+
在另一个回答您的评论:
我的书给出了下面的例子:移位之前:AL = 10101110; shr AL,1;换班后:01011100,CF = 1;这是错误吗?
如果这就是它说的话,那么是的。这是一个左移(shl AL, 1
),而不是右移:AL
中的位全部向左移动了一个位置,进位标志已设置为移出左端的位。
补充一些说明:
shr AL,1;它将(SH)ift(R)ight(1)x包含在AL寄存器中的值,即AX寄存器的低8位字节。因此它会将AL中包含的值除以2。
如果以前AL甚至像0b100(4)那么它将变成0b10(2)并将0放入进位标志。 标志寄存器中的进位标志位为0 https://en.wikipedia.org/wiki/FLAGS_register
如果AL先前是像0b101(5)那样的奇数值,则它将变为0b10(2)并将1置于标志寄存器中。因此,如果除以2,则进位标志将像余数一样起作用。
jnc bit_0;如果设置了(N)o(C)arry标志,即(如果该值在移位前是偶数的(如上例中的0b100)),它将(J)ump标记'bit_0'。
- 1. CMP和进位标志
- 2. ARM中进位标志的使用错误是否会减少指令?
- 3. 进位标志未设置。 86 ASM
- 4. LLVM:如何指定进位标志算术?
- 5. shr(7,dest)比shr(1,dest)需要更多时间吗?
- 6. 汇编程序gdb:进位标志的打印状态
- 7. 如何重新编程Vim's:help命令在指定位置打开
- 8. 使用DEBUG标志打开进程的问题
- 9. javac标志仅打印错误位置
- 10. cp命令中的标志开销
- 11. 显示打开/关闭标志
- 12. C++位图保存二进制标志
- 13. Z80上的溢出和进位标志
- 14. 进位标志和减号问号
- 15. 在Armsim中设置进位标志#
- 16. 为什么设置进位标志?
- 17. 大会 - 进位标志 - 0xFF的
- 18. Angular指令打开日期选择器
- 19. emacs:打开我当前光标位置指向的文件
- 20. Assembly @@标题question
- 21. 标志的指令指针溢出8086/8088
- 22. 使用viewmodel命令打开新标签
- 23. 复位isDirty标志
- 24. QTreeWidget展开标志
- 25. 在开关指令
- 26. Motorola 68000 Assembly
- 27. 进样angularjs指令
- 28. 打开php标记后的缩进
- 29. 以二进制模式打开输入文件流时设置的skipws标志
- 30. Serilog:打开日志文件
它正在测试AL是偶数还是奇数。 – harold 2012-03-22 16:04:39