iOS逆向-匯編(三)

8086的尋址方式

  • CPU訪問內(nèi)存單元時婆芦,要給出內(nèi)存單元的地址闷盔,所有的內(nèi)存單元都有唯一的地址劲弦,叫做物理地址
  • 8086有20位地址總線,可以傳送20位的地址雏节,1M的尋址能力
  • 但它又是16位結(jié)構(gòu)的CPU胜嗓,它內(nèi)部能夠一次性處理、傳輸钩乍、暫時存儲的地址為16位辞州。如果將地址從內(nèi)部簡單地發(fā)出,那么它只能送出16位的地址寥粹,表現(xiàn)出來的尋址能力只有64KB

8086采用一種在內(nèi)部用2個16位地址合成的方法來生成1個20位的物理地址


image.png

image.png

image.png

image.png

內(nèi)存分段管理

  • 8086是用“基礎(chǔ)地址(段地址×16) + 偏移地址 = 物理地址”的方式給出物理地址
  • 為了開發(fā)方便孙技,我們可以采取分段的方法來管理內(nèi)存,比如:


    image
    • 地址10000H~100FFH的內(nèi)存單元組成一個段排作,該段的起始地址(基礎(chǔ)地址)為10000H牵啦,段地址為1000H,大小為100H
    • 地址10000H1007FH妄痪、10080H100FFH的內(nèi)存單元組成2個段哈雏,它們的起始地址(基礎(chǔ)地址)為:10000H和10080H,段地址為1000H和1008H衫生,大小都為80H
  • 在編程時可以根據(jù)需要裳瘪,將若干連續(xù)地址的內(nèi)存單元看做一個段,用段地址×16定為段的起始地址(基礎(chǔ)地址)罪针,用偏移地址定位段中的內(nèi)存單元
    • 段地址×16必然是16的倍數(shù)彭羹,所以一個段的起始地址(基礎(chǔ)地址)也一定是16的倍數(shù)
    • 偏移地址為16位,16位地址的尋址能力為64KB泪酱,所以一個段的長度最大為64KB


      2990730-0b8a3547ac2df905.png

段寄存器

  • 8086在訪問內(nèi)存時要由相關(guān)部件提供內(nèi)存單元的段地址和偏移地址派殷,送入地址加法器合成物理地址
  • 是什么部件提供段地址还最?段地址在8086的段寄存器中存放
  • 8086有4個段寄存器:CS、DS毡惜、SS拓轻、ES,當(dāng)CPU需要訪問內(nèi)存時由這4個段寄存器提供內(nèi)存單元的段地址
    • CS (Code Segment):代碼段寄存器
    • DS (Data Segment):數(shù)據(jù)段寄存器
    • SS (Stack Segment):堆棧段寄存器
    • ES (Extra Segment):附加段寄存器

CS和IP

  • CS為代碼段寄存器经伙,IP為指令指針寄存器扶叉,它們指示了CPU當(dāng)前要讀取指令的地址
  • 任意時刻,8086CPU都會將CS:IP指向的指令作為下一條需要取出執(zhí)行的指令
1

2

指令的執(zhí)行過程

12
13.png
14.png
15.png
16.png
17.png
18.png
19.png
21.png
22.png
23.png
24.png
25.png
26.png
總結(jié).png

指令和數(shù)據(jù)

  • 在內(nèi)存或者磁盤上帕膜,指令和數(shù)據(jù)沒有任何區(qū)別枣氧,都是二進(jìn)制信息
  • CPU在工作的時候把有的信息看做指令,有的信息看做數(shù)據(jù)垮刹,為同樣的信息賦予了不同的意義
image.png
  • CPU根據(jù)什么將內(nèi)存中的信息看做指令达吞?
    • CPU將CS:IP指向的內(nèi)存單元的內(nèi)容看做指令
    • 如果內(nèi)存中的某段內(nèi)容曾被CPU執(zhí)行過,那么它所在的內(nèi)存單元必然被CS:IP指向過

jmp指令

  • CPU從何處執(zhí)行指令是由CS危纫、IP中的內(nèi)容決定的,我們可以通過改變CS乌庶、IP的內(nèi)容來控制CPU執(zhí)行目標(biāo)指令
  • 8086提供了一個mov指令(傳送指令)种蝶,可以用來修改大部分寄存器的值,比如
    • mov ax,10瞒大、mov bx,20螃征、mov cx,30、mov dx,40
  • 但是透敌,mov指令不能用于設(shè)置CS盯滚、IP的值,8086沒有提供這樣的功能
  • 8086提供了另外的指令來修改CS酗电、IP的值魄藕,這些指令統(tǒng)稱為轉(zhuǎn)移指令,最簡單的是jmp指令
image.png
image.png

jmp指令 -- 練習(xí)

image.png
答案.png
image.png
  • 解:執(zhí)行一次修改一次IP撵术,sub <ax-ax>,jmp ax <把IP改成ax>

代碼段

image.png
image.png
image.png
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末背率,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子嫩与,更是在濱河造成了極大的恐慌寝姿,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件划滋,死亡現(xiàn)場離奇詭異饵筑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)处坪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門根资,熙熙樓的掌柜王于貴愁眉苦臉地迎上來架专,“玉大人,你說我怎么就攤上這事嫂冻〗赫鳎” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵桨仿,是天一觀的道長睛低。 經(jīng)常有香客問我,道長服傍,這世上最難降的妖魔是什么钱雷? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮吹零,結(jié)果婚禮上罩抗,老公的妹妹穿的比我還像新娘。我一直安慰自己灿椅,他們只是感情好套蒂,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著茫蛹,像睡著了一般操刀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上婴洼,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天骨坑,我揣著相機(jī)與錄音,去河邊找鬼柬采。 笑死欢唾,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粉捻。 我是一名探鬼主播礁遣,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼肩刃!你這毒婦竟也來了亡脸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤树酪,失蹤者是張志新(化名)和其女友劉穎浅碾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體续语,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡垂谢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了疮茄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滥朱。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡根暑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出徙邻,到底是詐尸還是另有隱情排嫌,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布缰犁,位于F島的核電站淳地,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏帅容。R本人自食惡果不足惜颇象,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望并徘。 院中可真熱鬧遣钳,春花似錦、人聲如沸麦乞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姐直。三九已至倦淀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間简肴,已是汗流浹背晃听。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工百侧, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留砰识,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓佣渴,卻偏偏與公主長得像辫狼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子辛润,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

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

  • 8086匯編 本筆記是筆者觀看小甲魚老師(魚C論壇)《零基礎(chǔ)入門學(xué)習(xí)匯編語言》系列視頻的筆記置济,在此感謝他和像他一樣...
    Gibbs基閱讀 37,190評論 8 114
  • 王爽匯編全書知識點大綱 第一章 基礎(chǔ)知識 機(jī)器語言 匯編語言的產(chǎn)生 匯編語言的組成 存儲器 cpu對存儲器的讀寫 ...
    2c3ba901516f閱讀 2,417評論 0 1
  • 越底層越單純!真正的程序員都需要了解的一門非常重要的語言,匯編! 機(jī)器語言 我們所寫的語言最終安裝在機(jī)器上的是什么...
    瑞陽gg閱讀 591評論 0 0
  • 匯編總結(jié) 匯編的發(fā)展史 機(jī)械語言 由0和1組成的機(jī)器指令(如:0101 0001 1101 0110) 匯編語言(...
    iChuck閱讀 1,305評論 1 8
  • 作為一名一線崗位教學(xué)的作文老師解恰,每天接觸到不同的孩子锋八,孩子們單純可愛,每次見到我都要過來抱著我护盈,會毫不吝嗇地...
    泡泡侯閱讀 454評論 1 2