汇编语言的相对跳转和绝对跳转以及反汇编代码解析
生活随笔
收集整理的這篇文章主要介紹了
汇编语言的相对跳转和绝对跳转以及反汇编代码解析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
上圖第一行的b1 main為相對跳轉,即跳轉到pc+offset,其中pc為當前pc值,offset可以理解為偏移地址,也就是根據當前所在地址加上偏移地址實現跳轉,為相對跳轉。
我們來看看它的反匯編代碼
上圖清除完bss區后使用b1指令跳轉到30000668,要注意b1是相對跳轉指令,后面寫著30000668并不是說一定跳轉到這個地址,這里之所以寫出這個地址是方便我們看而已,如果在程序運行時我們當前的pc值為000000a0,那么則是跳轉到00000668。
?
?
?
下面我們再來看ldr pc, =main,該指令為絕對跳轉指令,我們可以通過反匯編來查看:下圖的第一行ldr pc, [pc, #28],把pc的值賦為pc當前值+28的地址里的內容,也就是300000c4地址里的內容3000066c,也就是把pc指向main函數的地址,為絕對跳轉。
?
總結
以上是生活随笔為你收集整理的汇编语言的相对跳转和绝对跳转以及反汇编代码解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为智慧屏怎么定位?
- 下一篇: 韦东山嵌入式第一期14课第004节_un