回答
它不; 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. 進位標誌添加指令與adc $ 0不同?
- 2. 遞增/遞減指令對進位標誌的影響
- 3. 爲什麼INC和DEC指令不會影響進位標誌?
- 4. 按位OR在linux中打開標誌
- 5. SHR和SAR命令
- 6. 打開https標誌的cookie
- 7. 價值進位標誌
- 8. CMP和進位標誌
- 9. ARM中進位標誌的使用錯誤是否會減少指令?
- 10. 進位標誌未設置。 86 ASM
- 11. 進位標誌何時置位?
- 12. LLVM:如何指定進位標誌算術?
- 13. 彙編程序gdb:進位標誌的打印狀態
- 14. shr(7,dest)比shr(1,dest)需要更多時間嗎?
- 15. 如何重新編程Vim's:help命令在指定位置打開
- 16. 使用DEBUG標誌打開進程的問題
- 17. 大會 - 進位標誌VS溢出標誌
- 18. 零標誌和進位標誌有什麼區別?
- 19. cp命令中的標誌開銷
- 20. javac標誌僅打印錯誤位置
- 21. 打開「at」標誌我搞砸了嗎?
- 22. 如何打開所有標誌?
- 23. 顯示打開/關閉標誌
- 24. 在Armsim中設置進位標誌#
- 25. C++位圖保存二進制標誌
- 26. Z80上的溢出和進位標誌
- 27. 進位標誌和減號問號
- 28. 爲什麼設置進位標誌?
- 29. 大會 - 進位標誌 - 0xFF的
- 30. Angular指令打開日期選擇器
它正在測試AL是偶數還是奇數。 – harold 2012-03-22 16:04:39