我是匯編新手,想知道添加到 arm 匯編指令的操作碼中的 s 后綴是如何作業的。我讀過它用于根據操作結果更新條件標志。是否有根據操作結果更新條件標志的可能方法的摘要?基于結果的哪些屬性,我更新哪個標志位?。
讓我們以這個匯編代碼指令為例 000080fa movs r1, #0
它在更新條件標志的背景關系中究竟做了什么?
uj5u.com熱心網友回復:
標志的更新方式因指令而異。但一般來說,在執行標志設定指令時會發生以下情況:
- 如果結果為負,則設定 N 標志(即設定符號位)
- 如果結果為零,則設定 Z 標志
- 根據第三個運算元移位的進位設定 C 標志
- V 標志不變
對于將第三個運算元移位零或無法對移位進行編碼的指令,進位標志也保持不變。對于作為加法變體的指令,C 和 V 標志是根據加法的進位和溢位來設定的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/399344.html
