請問圖中offset在編譯連線過程中自動生成,無需人為計算是什麼意思

時間 2021-06-09 09:29:56

1樓:粉紅掃帚

看指令集應該是 ARM 吧,對於 ARM 來說,每個指令彙編完後輸出成機器碼是定長的4位元組(或2位元組Thumb)

回到題裡,立即數長度大於16位,想要直接賦值給 R1,這個在乙個指令裡是不可能實現的,因為乙個指令就只有4位元組,要包含指令碼、暫存器編號、大於2個位元組的立即數,塞不下去,那怎麼辦呢?用間接定址的方式來解決就行了!先把這個立即數存在某個地方,然後用位址偏移去載入,只要這個偏移位址的數值在一定範圍內,載入偏移位置裡的資料這個指令肯定能在4個位元組內完成,就是 LDR 指令了。

再來說人工計算的事情,如上所述,要先用 DCD 定義,把這個資料放好,然後需要用 LDR R1, #offset 去定址,這個 offset 就是當前 PC 值與 DCD 定義的常量的位址之間的差值,要是每個都去計算,不得死人了,何況在維護過程中要是中間插入幾個指令,那麼就更完蛋了。這個時候彙編器的作用就出現了,彙編器看到 x DCD 0x987654321 的時候,記下了 x 的位址,再看到 LDR R1, =x 的時候,直接把當前的 PC 值減去之前記下來的 x 的位址,得到偏移值,輸出成指令。這種要經過彙編器處理後再變成真正的指令的彙編指令,叫偽指令。

其實這句話還有更簡單的寫法,LDR, R1, =0x987654321,假如這個常量不需要復用的話。

對了,這個如果要查文件就查彙編器的文件,因為偽指令是彙編器的實現

參考:http://www.

請問圖中是什麼蚊蟲?

哈哈hhljz 第三次被咬,前兩次都忍過去了,這一次買了藥,今天大概是第三天,不癢,把我的方法給大家推薦一下,臭蠓!被咬的第二天晚上我擦了一腿的肥皂水,晚上微氧,然後買了下圖藥膏,塗了一天,明顯感覺整個包的程序加快了,當天晚上就有點變深紅了,第三天晚上呢,洗完澡我又擦了一腿的舒膚佳原味的香皂水,晚上...

請問圖中口紅是什麼顏色

雅黎 直接買迪奧999 250元左右 或者mac的chili 150元左右 百分之百不會出錯 如果她有的話可以考慮ysl416或者阿瑪尼405 兩個層次可能是疊塗了多種不同的色號也可能是咬唇塗法,只塗中間然後暈到兩邊,就會形成中間深邊緣薄的情況,圖中為咬唇妝。 Sue 濾鏡真的太重了 不過可參考的顏...

請問圖中的alien number有什麼用?

wake 瀉藥哈,我也是個小白,剛看Python還沒有乙個月。題裡執行結果是這樣的嗎?建立乙個用於儲存外星人的空列表 aliens 建立30個綠色的外星人 for alien number in range 30 new alien 顯示前5個外星人 for alien in aliens 5 pr...