匯編基礎(chǔ)知識

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

通常,cpu 會先將內(nèi)存中的數(shù)據(jù)存儲到寄存器中,然后在對寄存器中的數(shù)據(jù)進(jìn)行運(yùn)算卸勺。
假設(shè)內(nèi)存中有快紅色內(nèi)存空間的值是3,現(xiàn)在想把它的值加1烫扼,并將結(jié)果存儲到藍(lán)色的內(nèi)存空間

  • cpu 首先會將紅色內(nèi)存空間的值放到 rax 寄存器中: movq 紅色內(nèi)存空間, %rax
  • 然后讓 rax 寄存器與1相加: addq $0x1 %rax
  • 最后將值賦值給內(nèi)存空間:movq %rax曙求,藍(lán)色內(nèi)存空間

匯編

  • 反匯編: Debug -- Debug Workflow -- Always Show Disassembly
  • 內(nèi)存視圖: Debug -- Debug Workflow -- View Memery

規(guī)律

內(nèi)存地址格式為:0x4bdc(%rip) 一般是全局變量,全局區(qū)(數(shù)據(jù)段)
內(nèi)存地址格式為:-0x78(%rbp) 一般是局部變量,椢蛴空間
內(nèi)存地址格式為:0x10(%rax) 一般是堆空間

r開頭 x64 64bit:rax
e開頭 x86 32bit:eax
ah:8bit

匯編語言種類

作為iOS開發(fā)工程師静浴,最主要的匯編語言是:AT&T匯編(iOS模擬器)、ARM匯編(ios真機(jī))

  • 8086匯編(16bit)
  • x86匯編(32bit)
  • x64匯編(64bit)
  • ARM匯編(嵌入式挤渐、移動設(shè)備)

x86苹享、x64匯編根據(jù)編譯器的不同,有2種書寫格式

  • Inter: Windows派系
  • AT&T:Unix派系

常見匯編指令

寄存器

有 16個(gè)常用寄存器:
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 作為指令指針
    存儲著 cpu 下一條要執(zhí)行的指令的地址
    一旦 cpu 讀取一條指令,rip會自動指向下一條指令(存儲下一條指令的地址)

x64 向下兼容:ah al 在 eax中宣蔚、這些都在 rax中向抢,下面也如此。


LLDB 常用指令

  • thread step-over胚委、next挟鸠、n
    • 單步運(yùn)行,把子函數(shù)當(dāng)做整體一步執(zhí)行(源碼級別)
  • thread step-in亩冬、step艘希、s
    • 單步運(yùn)行,遇到子函數(shù)會進(jìn)入(源碼級別)
  • thread step-inst-over硅急、nexti覆享、ni
    • 單步運(yùn)行,把子函數(shù)當(dāng)做整體一步執(zhí)行(匯編級別)
  • thread step-inst营袜、stepi撒顿、si
    • 單步運(yùn)行,遇到子函數(shù)會進(jìn)入(匯編級別)
  • thread step-out荚板、finish
    • 直接執(zhí)行完當(dāng)前函數(shù)的所有代碼凤壁,返回上一個(gè)函數(shù)(遇到斷點(diǎn)會卡住)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末跪另,一起剝皮案震驚了整個(gè)濱河市客扎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌罚斗,老刑警劉巖徙鱼,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡袱吆,警方通過查閱死者的電腦和手機(jī)厌衙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绞绒,“玉大人婶希,你說我怎么就攤上這事∨詈猓” “怎么了喻杈?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長狰晚。 經(jīng)常有香客問我筒饰,道長,這世上最難降的妖魔是什么壁晒? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任瓷们,我火速辦了婚禮,結(jié)果婚禮上秒咐,老公的妹妹穿的比我還像新娘谬晕。我一直安慰自己,他們只是感情好携取,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布攒钳。 她就那樣靜靜地躺著,像睡著了一般雷滋。 火紅的嫁衣襯著肌膚如雪不撑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天惊豺,我揣著相機(jī)與錄音燎孟,去河邊找鬼。 笑死尸昧,一個(gè)胖子當(dāng)著我的面吹牛揩页,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播烹俗,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼爆侣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了幢妄?” 一聲冷哼從身側(cè)響起兔仰,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蕉鸳,沒想到半個(gè)月后乎赴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體忍法,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年榕吼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了饿序。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羹蚣,死狀恐怖原探,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情顽素,我是刑警寧澤咽弦,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站胁出,受9級特大地震影響型型,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜划鸽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一输莺、第九天 我趴在偏房一處隱蔽的房頂上張望戚哎。 院中可真熱鬧裸诽,春花似錦、人聲如沸型凳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽甘畅。三九已至埂蕊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疏唾,已是汗流浹背蓄氧。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留槐脏,地道東北人喉童。 一個(gè)月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像顿天,于是被迫代替她去往敵國和親堂氯。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 本人有若干成套學(xué)習(xí)視頻, 可試看! 可試看! 可試看, 重要的事情說三遍 包含Java, 數(shù)據(jù)結(jié)構(gòu)與算法, iOS...
    小冰山口閱讀 1,009評論 0 1
  • 工作中經(jīng)常會遇到需要使用匯編知識來解決的問題牌废,比如查找崩潰堆棧定位在一些未提供源碼的第三方庫的崩潰原因等咽白,但是由于...
    離原春草閱讀 603評論 0 5
  • 匯編語言的發(fā)展 機(jī)器語言 由0和1組成的機(jī)器指令. 加:0100 0000 減:0100 1000 乘:1111 ...
    CoderLWG閱讀 1,666評論 2 0
  • 0x01 簡介 這里開始熟悉匯編的指令格式 下圖為X86版本的指令格式,X64的指令格式和X86差不多后面有需要的...
    暴走竹竿閱讀 1,113評論 0 0
  • 概述 本文來介紹最基礎(chǔ)的8086匯編鸟缕,將通過關(guān)鍵點(diǎn)的突出以及個(gè)人理解晶框,而不會將原理做重點(diǎn)介紹,爭取最快的速度來學(xué)會...
    碼無不至閱讀 1,628評論 0 2