匯編學(xué)習(xí)筆記二

指令的執(zhí)行

指令的長(zhǎng)度是可以是多個(gè)字節(jié)

  • cpu從cs:ip所指向的內(nèi)存單元中讀取指令菠齿,存放到指令緩存器中
  • ip=ip+所讀指令的長(zhǎng)度糠惫,從而指向下一條指令
  • 執(zhí)行指令緩存器的內(nèi)容骑疆,回到下一個(gè)步驟

這個(gè)順序是很重要的贿肩,為什么要使用2和3的順序哪座哩,這是因?yàn)楫?dāng)我們調(diào)用一個(gè)函數(shù)時(shí)使用這種方式很好用

我們可以得出結(jié)論苍凛,數(shù)據(jù)和指令是沒(méi)有差別的趣席,當(dāng)使用讀取cs:ip指向的地址,cpu便將其當(dāng)成指令執(zhí)行

debug使用
-u 表示顯示出當(dāng)前位置的代碼
-u 段地址:偏移地址 顯示指定位置的代碼
-d 表示顯示當(dāng)前位置的數(shù)據(jù)
-u 段地址:偏移地址 顯示指定位置的數(shù)據(jù)
-a 表示直接在當(dāng)前位置寫入指令
-a 段地址:偏移地址 表示在指定的位置寫入指令
-r 表示顯示當(dāng)前寄存器的內(nèi)容
-r 寄存器 然后顯示指定寄存器的內(nèi)容在下一行寫入 :2000表示將這個(gè)寄存器的內(nèi)容設(shè)置成2000
-e 段地址:偏移地址 可以改寫內(nèi)存的內(nèi)容

jmp指令

jmp是轉(zhuǎn)移指令是jump的簡(jiǎn)寫醇蝴,表示跳躍的意思宣肚。
指令的格式: jmp 2000:0表示將cs設(shè)置成2000,將ip設(shè)置成0悠栓,因此這個(gè)指令能夠改變指令執(zhí)行的位置

cs和ip寄存器是不能夠使用mov來(lái)進(jìn)行更改的霉涨,只能使用jmp來(lái)改變
比如 mov cs,1000是錯(cuò)誤的
還可以使用
jmp 寄存器
的方式來(lái)更改ip的內(nèi)容

call 函數(shù)名 表示函數(shù)的開(kāi)始
這個(gè)指令也是一個(gè)轉(zhuǎn)移指令惭适,但是這個(gè)指令和jmp還是有區(qū)別的笙瑟,因?yàn)閏all指令會(huì)保存一個(gè)當(dāng)前的執(zhí)行到的位置保存在內(nèi)存中。

ret 這個(gè)指令是在函數(shù)的結(jié)束的一個(gè)指令癞志,他的操作是將call指令執(zhí)行時(shí)保存的那個(gè)地址還原回來(lái)逮走。

上面兩個(gè)的作用實(shí)現(xiàn)了函數(shù)的調(diào)用

我們可以使用

-e 2000:0
輸入數(shù)據(jù)

-r cs
:2000
-r ip
:0
表示改變cs:ip
現(xiàn)在我們便可以執(zhí)行了

問(wèn)題:
call指令將ip這個(gè)偏移地址值存放到那里去了 ret可以拿回

小端法 表示高位在高地址 低位在低地址

ds段地址寄存器

mov al,ds:[0]
mov al,ds:[1]

mov ax,ds:[0]
mov ax,ds:[1]

mov ds:[0],ax
mov ds:[1],ax

mov ds:[0],al
mov ds:[1],al

mov ax,[1]

字節(jié)型數(shù)據(jù)和自行數(shù)據(jù)在內(nèi)存中的存放
使用小端法進(jìn)行存放
ds段地址寄存器 數(shù)據(jù)段寄存器
cs和指令有關(guān)

棧 是一段連續(xù)的存儲(chǔ)單元

入棧和出棧的數(shù)據(jù)長(zhǎng)度都是16位的,因此push和pop的對(duì)象都是16位的

棧頂標(biāo)記 在入棧時(shí)決定了押入棧的數(shù)據(jù)

棧頂標(biāo)記是內(nèi)存地址 內(nèi)存地址是使用段地址和偏移地址表示的
在8086cpu中 將段地址寄存器ss和偏移地址寄存器sp所組合的內(nèi)存地址當(dāng)成棧頂標(biāo)記

因此ss和sp只能確定一個(gè)地址 棧頂?shù)刂?/p>

push的工作原理表示將數(shù)據(jù)入棧,然后sp=sp-2

pop的工作原理表示將數(shù)據(jù)出棧师溅,然后sp=sp+2

使用 d ss:偏移地址可以顯示棧的數(shù)據(jù)

在入棧時(shí)會(huì)將寄存器的值放入棧中

我們可以控制棧的位置和大小

比如我們更改ss的值來(lái)設(shè)置棧的位置 設(shè)置sp的大小來(lái)決定棧的大小茅信,這樣便可以在sp處入棧,直到ss*10h處

所以說(shuō)我們可以隨便設(shè)置一個(gè)棧的地址

棧頂?shù)脑浇鐔?wèn)題
當(dāng)數(shù)據(jù)的存儲(chǔ)滿時(shí)墓臭,還繼續(xù)push變會(huì)棧的越界蘸鲸,會(huì)破壞其他的數(shù)據(jù)

pop和push只影響sp的值
sp的變化的范圍 0~ffffH
因此棧的大小是有范圍的 如果超過(guò)這個(gè)返回會(huì)覆蓋棧的內(nèi)容,因?yàn)閟s是不變的窿锉,sp會(huì)變酌摇,sp從某個(gè)值一直減小到0,然后又從ffffH繼續(xù)減小嗡载,會(huì)覆蓋原來(lái)存入棧的內(nèi)容

如果我們需要使用函數(shù)需要設(shè)置ss和sp來(lái)設(shè)置一個(gè)棧窑多,然后使用call指令,這個(gè)call指令有兩個(gè)作用洼滚,一個(gè)是保存當(dāng)前的ip值到棧的最高位置中埂息,另一個(gè)是設(shè)置ip的新值來(lái)獲取函數(shù)的執(zhí)行地址。

棧的作用便是臨時(shí)性保存數(shù)據(jù)遥巴,這是因?yàn)榧拇嫫魇呛苌俚那Э担?dāng)執(zhí)行另外一個(gè)功能時(shí),我們需要臨時(shí)保存數(shù)據(jù)到內(nèi)存中铲掐,否則當(dāng)其他代碼使用寄存器時(shí)會(huì)覆蓋掉寄存器的內(nèi)容拾弃。

棧的作用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市摆霉,隨后出現(xiàn)的幾起案子豪椿,更是在濱河造成了極大的恐慌,老刑警劉巖携栋,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砂碉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡刻两,警方通過(guò)查閱死者的電腦和手機(jī)增蹭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)磅摹,“玉大人滋迈,你說(shuō)我怎么就攤上這事』模” “怎么了饼灿?”我有些...
    開(kāi)封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)帝美。 經(jīng)常有香客問(wèn)我碍彭,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任庇忌,我火速辦了婚禮舞箍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘皆疹。我一直安慰自己疏橄,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布略就。 她就那樣靜靜地躺著捎迫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪表牢。 梳的紋絲不亂的頭發(fā)上窄绒,一...
    開(kāi)封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音崔兴,去河邊找鬼彰导。 笑死,一個(gè)胖子當(dāng)著我的面吹牛恼布,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播搁宾,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼折汞,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了盖腿?” 一聲冷哼從身側(cè)響起爽待,我...
    開(kāi)封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎翩腐,沒(méi)想到半個(gè)月后鸟款,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茂卦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年何什,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片等龙。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡处渣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蛛砰,到底是詐尸還是另有隱情罐栈,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布泥畅,位于F島的核電站荠诬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柑贞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一方椎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凌外,春花似錦辩尊、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至疮薇,卻和暖如春胸墙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背按咒。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工迟隅, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人励七。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓智袭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親掠抬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吼野,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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

  • 王爽匯編全書知識(shí)點(diǎn)大綱 第一章 基礎(chǔ)知識(shí) 機(jī)器語(yǔ)言 匯編語(yǔ)言的產(chǎn)生 匯編語(yǔ)言的組成 存儲(chǔ)器 cpu對(duì)存儲(chǔ)器的讀寫 ...
    2c3ba901516f閱讀 2,418評(píng)論 0 1
  • 計(jì)算機(jī)通過(guò)執(zhí)行指令序列來(lái)使機(jī)器得以工作,所以對(duì)于每一系列的計(jì)算機(jī)都有指定的一組指令集供計(jì)算機(jī)使用两波,這組指令...
    未來(lái)科技工作室閱讀 7,994評(píng)論 1 10
  • 匯編總結(jié) 匯編的發(fā)展史 機(jī)械語(yǔ)言 由0和1組成的機(jī)器指令(如:0101 0001 1101 0110) 匯編語(yǔ)言(...
    iChuck閱讀 1,306評(píng)論 1 8
  • 靜謐的夜瞳步, 月光幽幽, 天空中有幾點(diǎn)星星忽明忽暗腰奋, 沒(méi)有白天的嘈雜单起, 一切都回歸了一樣, 一種祥和的感覺(jué)劣坊。 我的心...
    可心可可閱讀 76評(píng)論 0 2
  • 青春詩(shī)之麗江的魚(yú) 麗江的雪嘀倒,以另一種方式穿城而過(guò) 就像穿城而過(guò)的烈酒和爵士舞 以及四方街上震耳欲聾的月光 青春總是...
    巴特爾邱閱讀 160評(píng)論 0 1