2.4通用寄存器下

2.4通用寄存器下

本節(jié)必須掌握的知識(shí)點(diǎn):

u掌握DTDebug界面零蓉、并熟練使用

u熟記匯編窗口的組成及寄存器窗口的組成

u?MOV指令的熟練使用

u掌握字節(jié)匆骗、字奋蔚、雙字的知識(shí)

u使用匯編指令對(duì)8位屑柔、16位饲漾、32位寄存器數(shù)據(jù)的存儲(chǔ)

在2.3節(jié)中介紹通用寄存器的知識(shí),并且知道了寄存器是處理器(CPU)中用來(lái)存儲(chǔ)數(shù)據(jù)的地方钓辆。接下來(lái)我們借用軟件了解2.3節(jié)中的知識(shí)點(diǎn)剪验。

2.4.1【DTDebug軟件】

DTDebug.exe是供程序員使用的程序調(diào)試工具∏傲【本節(jié)只簡(jiǎn)單介紹DTDebug的使用功戚,詳細(xì)說(shuō)明書(shū)請(qǐng)到編程達(dá)人官網(wǎng)去下載相關(guān)文檔】

在2.1節(jié)中介紹DTDebug軟件的安裝步驟,相信大家已經(jīng)安裝好這個(gè)軟件似嗤。接下來(lái)介紹這個(gè)軟件的使用啸臀。

雙擊DTDebug.exe軟件圖標(biāo)如圖2-4-1所示,打開(kāi)界面如圖2-4-2所示烁落。


圖2-4-2是軟件的原始界面乘粒,沒(méi)有任何記錄。那該怎么把將要被調(diào)試的程序打開(kāi)哪伤塌?

有四種方式:

1灯萍、在如圖2-4-2程序窗口中找到File -> Open ->找到調(diào)試程序;

2每聪、直接將要被調(diào)試的程序拖拽到如圖2-4-2程序窗口中旦棉。

3、關(guān)閉如圖2-4-2窗口熊痴,把將要被調(diào)試的程序拖到如圖2-4-1DTDebug圖標(biāo)上他爸。

4、在如圖2-4-2程序窗口中找到File -> Attach ->找到將要被調(diào)試的程序(正在運(yùn)行的軟件)果善。

以IPMGS.exe為例诊笤,介紹DTDebug界面,如圖2-4-3巾陕,圖2-4-4所示讨跟。


圖2-4-4中標(biāo)注的4個(gè)窗口,分別為匯編窗口鄙煤、寄存器窗口晾匠、內(nèi)存窗口、堆棧窗口梯刚。

【本節(jié)中只是簡(jiǎn)單介紹凉馆,更深入的操作以后課程會(huì)介紹】

?2.4.2【匯編窗口】

???簡(jiǎn)單介紹匯編窗口,匯編窗口由內(nèi)存、特征碼澜共、匯編向叉、標(biāo)注區(qū)(從左向右)這四塊組成∴露【在本節(jié)這三塊不做介紹】

一個(gè)程序運(yùn)行以后母谎,處理器會(huì)一行行的執(zhí)行它的代碼,如圖2-4-4處理器會(huì)沿著匯編窗口從上往下一行行執(zhí)行代碼京革,直至結(jié)束奇唤。跟著操作時(shí)肯定會(huì)有如下疑問(wèn),首先沒(méi)有看到被調(diào)試的程序運(yùn)行匹摇,其次匯編窗口并沒(méi)有從上往下一行行執(zhí)行代碼咬扇。接下來(lái)解答一下,DTDebug軟件是可以中斷當(dāng)前運(yùn)行的程序的来惧,如圖2-4-4黃色區(qū)域中寫(xiě)著Paused

表示當(dāng)前程序是被中斷的冗栗,其次接著看圖2-4-4匯編窗口中有黑色區(qū)域表示當(dāng)前被調(diào)試的程序被中斷在這塊內(nèi)存區(qū)域。該塊區(qū)域是被調(diào)試程序的入口點(diǎn)供搀。【文中講到的中斷指:處理器運(yùn)行到該段程序時(shí)钠至,讓該程序停止運(yùn)行了】葛虐。 那怎么讓程序一行行往下執(zhí)行哪?看圖2-4-4中有一個(gè)三角符號(hào)

棉钧,按下程序?qū)?huì)一行行往下執(zhí)行屿脐,此時(shí)被調(diào)試的程序就會(huì)運(yùn)行起來(lái)。

接下來(lái)介紹寄存器窗口宪卿。如圖2-4-4寄存器窗口所示的诵。

2.4.3【寄存器窗口】

簡(jiǎn)單介紹寄存器窗口,寄存器窗口由EAX佑钾、ECX西疤、EDX、EBX休溶、ESP代赁、EBP、ESI兽掰、EDI這8個(gè)通用寄存器芭碍,還有EIP寄存器、EFLAGS寄存器及它們相對(duì)應(yīng)存儲(chǔ)的數(shù)值孽尽。

EIP窖壕、EFLAGS寄存器與8個(gè)通用寄存器的區(qū)別在于,以EAX寄存器為例,EAX寄存器可以任意讀寫(xiě)數(shù)據(jù)瞻讽,而EIP寄存器狐蜕,它的作用是存放當(dāng)前代碼段即將被執(zhí)行的下一條指令的地址,不可以隨意讀寫(xiě)卸夕,如圖2-4-4寄存器窗口所示层释,EIP當(dāng)前存儲(chǔ)的值為:004185B7,看匯編窗口黑色區(qū)域和EIP存儲(chǔ)的值是一樣的快集。那么EFLAGS是標(biāo)志寄存器贡羔,它是受特殊匯編指令的控制,特殊匯編指令決定它當(dāng)前數(shù)值位的變化个初,【本節(jié)不做詳細(xì)介紹乖寒,內(nèi)存窗口和堆棧窗口本節(jié)不做介紹】。

寄存器窗口簡(jiǎn)單介紹完了院溺,那怎么用通用寄存器哪楣嘁?在介紹使用之前先介紹一個(gè)指令。

2.4.4【MOV指令】

MOV指令是移動(dòng)數(shù)據(jù)珍逸。MOV指令可以把立即數(shù)移動(dòng)到寄存器逐虚,也可以把寄存器的數(shù)據(jù)移動(dòng)到寄存器。


例:

MOV EAX,1 ???(把1移動(dòng)到EAX寄存器里)

????MOV EAX,ECX (把ECX寄存器的數(shù)據(jù)移動(dòng)到EAX寄存器里)

用DTDebug軟件把例題操作一遍谆膳。首先打開(kāi)軟件如圖2-4-4所示叭爱,將鼠標(biāo)移動(dòng)到匯編窗口,雙擊黑色區(qū)域所對(duì)應(yīng)的那一行匯編代碼漱病,彈出輸入指令窗口如圖2-4-5所示买雾,把鼠標(biāo)移動(dòng)到輸入窗口中,將里面的指令編寫(xiě)成:MOV EAX,1如圖2-4-6所示杨帽,點(diǎn)擊Enter鍵漓穿,匯編指令將被顯示到匯編窗口,如圖2-4-7所示注盈。MOV EAX,ECX重復(fù)以上的操作晃危。完成后按F8執(zhí)行,觀察寄存器窗口当凡,如圖2-4-8山害、圖2-4-9所示。


彈出輸入指令窗口


輸入指令:MOV EAX,1


??????????????輸完指令點(diǎn)擊鍵盤(pán)Enter鍵?????????????????????????????????????????????????????????????????????????????????????????????????


F8單步運(yùn)行


?????????????????????F8單步運(yùn)行

簡(jiǎn)單介紹完了MOV指令沿量,通過(guò)對(duì)MOV指令的編寫(xiě)浪慌、運(yùn)行,寄存器相對(duì)應(yīng)存儲(chǔ)的數(shù)據(jù)發(fā)生了變化朴则,那這些數(shù)據(jù)是怎么存儲(chǔ)的哪权纤?接下來(lái)介紹數(shù)據(jù)在通用寄存器中的存儲(chǔ)钓简。

2.4.5【通用寄存器對(duì)數(shù)據(jù)的存儲(chǔ)】

先回顧一下8位、16位汹想、32位通用寄存器外邓。

如通用寄存器表所示。

根據(jù)圖2-4-9寄存器窗口所示古掏,EAX對(duì)應(yīng)的數(shù)據(jù)是:0x0012FFB0.只有8個(gè)數(shù)據(jù)损话。而EAX是32位的,它是怎么存儲(chǔ)的哪槽唾?

這里要回顧一下字節(jié)丧枪、字、雙字這個(gè)知識(shí)點(diǎn)庞萍。

字節(jié):記為Byte,一個(gè)字節(jié)由8個(gè)bit組成拧烦,可以存在8位寄存器中。

字:記為Word,一個(gè)字由兩個(gè)字節(jié)組成钝计,這兩個(gè)字節(jié)分別為這個(gè)字的高位字節(jié)和低位字節(jié)恋博,可以存在16位寄存器中。

雙字:記為DoubleWord,一個(gè)雙字由2個(gè)字組成私恬,這兩個(gè)字分別為這個(gè)雙字的高位字和低位字债沮,可以存在32位寄存器中。


?????一個(gè)雙字可以存在一個(gè)32位寄存器中践付,這個(gè)雙字由高位字和低位字組成秦士。低位字可以存放16位寄存器,而16位寄存器永高,由兩個(gè)字節(jié)組成,這個(gè)高位字節(jié)和低位字節(jié)自然就存在這個(gè)寄存器的高8位寄存器和低8位寄存器中提针。

以EAX寄存器為例命爬,如圖2-4-10所示。


圖2-4-10 EAX寄存器邏輯結(jié)構(gòu)圖

????知道了字節(jié)辐脖、字饲宛、雙字,在看寄存器窗口中的數(shù)據(jù)相信大家知道它是怎麼存儲(chǔ)了的嗜价。

接下來(lái)用匯編指令來(lái)實(shí)現(xiàn)對(duì)8位艇抠、16位、32位寄存器進(jìn)行存儲(chǔ)久锥。

以下例題自己在軟件中實(shí)驗(yàn)家淤,增強(qiáng)寄存器對(duì)數(shù)據(jù)存儲(chǔ)的認(rèn)識(shí),其次可以加強(qiáng)對(duì)MOV指令的練習(xí)瑟由,再者多熟悉該軟件絮重,我們以后的章節(jié)都會(huì)用到。

例:

?????MOV AL,1

?????MOV AH,2

?????MOV AX,0xFFFF

?????MOV EAX,0xFFFF0000

?????MOV CL,1

?????MOV CH,2

?????MOV CX,0xFFFF

?????MOV ECX,0xFFFF0000


u下一節(jié)介紹內(nèi)存。

練習(xí):

?????1青伤、MOV EAX,200

????????MOV EAX,CX ?可以這樣操作嗎督怜?對(duì)嗎?大家思考一下

????????MOV CL,300 ?這個(gè)指令是錯(cuò)誤的嗎狠角?思考一下為什么錯(cuò)号杠?怎樣寫(xiě)才正確

????????MOV ECX,EAX 說(shuō)出哪個(gè)是源操作數(shù)、哪個(gè)是目的操作數(shù)丰歌、哪個(gè)是操作碼

?????2姨蟋、能夠正確理解字節(jié)、字动遭、雙字芬探,且可以用匯編指令對(duì)8位寄存器的高位、低位熟練的操作厘惦,熟練對(duì)16位偷仿、32位寄存器正確存儲(chǔ)數(shù)據(jù)。?????

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宵蕉,一起剝皮案震驚了整個(gè)濱河市酝静,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌羡玛,老刑警劉巖别智,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異稼稿,居然都是意外死亡薄榛,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)让歼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)敞恋,“玉大人,你說(shuō)我怎么就攤上這事谋右∮裁ǎ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵改执,是天一觀的道長(zhǎng)啸蜜。 經(jīng)常有香客問(wèn)我,道長(zhǎng)辈挂,這世上最難降的妖魔是什么衬横? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮呢岗,結(jié)果婚禮上冕香,老公的妹妹穿的比我還像新娘蛹尝。我一直安慰自己,他們只是感情好悉尾,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布突那。 她就那樣靜靜地躺著,像睡著了一般构眯。 火紅的嫁衣襯著肌膚如雪愕难。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天惫霸,我揣著相機(jī)與錄音猫缭,去河邊找鬼。 笑死壹店,一個(gè)胖子當(dāng)著我的面吹牛猜丹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播硅卢,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼射窒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了将塑?” 一聲冷哼從身側(cè)響起脉顿,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎点寥,沒(méi)想到半個(gè)月后艾疟,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡敢辩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年蔽莱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片戚长。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡碾褂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出历葛,到底是詐尸還是另有隱情,我是刑警寧澤嘀略,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布恤溶,位于F島的核電站,受9級(jí)特大地震影響帜羊,放射性物質(zhì)發(fā)生泄漏咒程。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一讼育、第九天 我趴在偏房一處隱蔽的房頂上張望帐姻。 院中可真熱鬧稠集,春花似錦、人聲如沸饥瓷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)呢铆。三九已至晦鞋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間棺克,已是汗流浹背悠垛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娜谊,地道東北人确买。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像纱皆,于是被迫代替她去往敵國(guó)和親湾趾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

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