回答
它不; 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