七(1)匯編語言初探

一、程序的本質(zhì)

? ? ? ? 軟件/程序的執(zhí)行過程:?

二、寄存器與內(nèi)存

? ? CPU將內(nèi)存中的數(shù)據(jù)存儲到寄存器中,然后在對寄存器中的數(shù)據(jù)進行計算

? ? 上圖所示:

三、編程語言的發(fā)展

? ? ? ? 匯編語言與機器語言一一對應(yīng),每一條機器指令都有與之對應(yīng)的匯編指令

? ? ? ? 匯編語言可以通過編譯得到機器語言,機器語言可以通過反編譯得到匯編語言

? ? ? ? 高級語言可以通過編譯得到匯編/機器語言,但是匯編.機器語言幾乎不可能還原高級語言

四、匯編語言的種類

? ? 匯編語言嚴重依賴硬件環(huán)境,iOS主要的匯編語言是

? ? ①AT&T匯編 ——> iOS模擬器

????②ARM匯編?——> iOS真機設(shè)備

五、寄存器

? ? ? ? ①有16個常用寄存器

? ? ? ? rax、rbx、rcx、rdx、rsi、rdi、rbp、rsp、

? ? ? ? r8、?r9、?r10、?r11、?r12、?r13、?r14、r15

? ? ? ? ②寄存器的具體用途

? ? ? ? rax、rdx常用作函數(shù)返回值

? ? ? ? rdi、rsi、rdx、rcx、r8、r9等常用語存放函數(shù)參數(shù)

? ? ? ? rsp、rbp用于棧操作

? ? ? ? rip作為指令指針

? ? ? ? 【注意】

? ? ? ? ①rip存儲著CPU下一條執(zhí)行的指令的地址

? ? ? ? ②一旦CPU讀取一條指令,rip會自動指向下一條指令

六、常見的匯編指令 AT&T匯編

七、LLDB常用指令

記住簡寫足夠

八、內(nèi)存命名規(guī)律

內(nèi)存地址格式:0xbdc(%rip)? ??全局變量? ??全局區(qū)

內(nèi)存地址格式:-0x78(%rbp)? ? 局部變量? ? ??臻g

內(nèi)存地址格式:-0x10(%rax)? ? ?堆空間


Swift學習日記7(匯編)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容