匯編語言(第3版松申,王爽著):實(shí)驗(yàn)1 查看 CPU 和內(nèi)存云芦,用機(jī)器指令和匯編指令編程

一、預(yù)備知識(shí):Debug 的使用

(1). 什么是 Debug贸桶?

Debug 是 DOS舅逸、Windows 都提供的實(shí)模式(8086 方式)程序的調(diào)試工具。使用它皇筛,可以查看 CPU 各種寄存器中的內(nèi)容琉历、內(nèi)存的情況和在機(jī)器碼級(jí)跟蹤程序的運(yùn)行。

(2). 我們用到的 Debug 功能

  • 用 Debug 的 R 命令查看水醋、改變CPU寄存器的內(nèi)容
  • 用 Debug 的 D 命令查看內(nèi)存中的內(nèi)容
  • 用 Debug 的 E 命令改寫內(nèi)存中的內(nèi)容
  • 用 Debug 的 U 命令將內(nèi)存中的機(jī)器指令翻譯成匯編指令
  • 用 Debug 的 T 命令執(zhí)行一條機(jī)器指令
  • 用 Debug 的 A 命令以匯編指令的格式在內(nèi)存中寫入一條機(jī)器指令
  • 用 Debug 的 Q 命令可以退出 Debug

關(guān)于在 Windows 中使用 Debug旗笔,請(qǐng)看我的上一篇文章:
64 位 Windows 下配置匯編用的 Debug 環(huán)境(win7和win10都適用

(3). 命令的使用

  1. R 命令

功能:
使用 R 命令查看、改變CPU寄存器的內(nèi)容

  • 進(jìn)入 Debug


    進(jìn)入 Debug
  • 使用 R 命令查看 CPU 中各個(gè)寄存器中的內(nèi)容


    使用 R 命令查看 CPU 中各個(gè)寄存器中的內(nèi)容
  • 使用 R 命令修改寄存器的內(nèi)容

用法:
r 寄存器名稱

使用 R 命令修改寄存器的內(nèi)容
  1. D 命令

功能:
使用 D 命令查看內(nèi)存中的內(nèi)容

用法:(默認(rèn)查看 128 個(gè)內(nèi)存單元的內(nèi)容)
d 段地址:偏移地址
或指定查看范圍:
d 段地址:起始偏移地址 結(jié)尾偏移地址

使用 D 命令查看內(nèi)存 073f:0100 處的內(nèi)容
  1. E 命令

功能:
使用 E 命令改寫內(nèi)存中的內(nèi)容(也可視為寫入機(jī)器指令)

用法一:
e 段地址:起始偏移地址 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) ······
用法二:(以提問的方式來逐個(gè)地修改從某一地址開始的內(nèi)存單元中的內(nèi)容拄踪,以從 073f:10 單元開始為例)
1. 輸入 e 073f:10蝇恶,按 Enter 鍵
2. 在光標(biāo)的 . 后面輸入想要寫入的數(shù)據(jù)(輸入數(shù)據(jù)然后按空格;單單按空格則視為不修改惶桐,跳到下一單元)
3. 希望修改的內(nèi)存單元改寫完畢后撮弧,按 Enter 鍵潘懊,E 命令操作結(jié)束

使用 E 命令改寫內(nèi)存中的內(nèi)容
  1. U 命令

功能:
使用 U 命令查看內(nèi)存中機(jī)器碼的含義(將內(nèi)存中的機(jī)器指令翻譯成匯編指令)

用法:
u 段地址:偏移地址

  • 先用 E 命令向內(nèi)存中寫入機(jī)器指令,再用 U 命令將內(nèi)存單元中的內(nèi)容翻譯為匯編指令

機(jī)器指令??????????對(duì)應(yīng)的匯編指令
b80100?????????????mov ax, 0001
b90200?????????????mov cx, 0002
01c8?????????????????add ax, cx

用 U 命令將內(nèi)存單元中的內(nèi)容翻譯為匯編指令
  1. T 命令

功能:
使用 T 命令執(zhí)行 CS:IP 指向的機(jī)器指令

使用 T 命令執(zhí)行 CS:IP 指向的指令
  1. A 命令

功能:
使用 A 命令以匯編指令的格式在內(nèi)存中寫入一條機(jī)器指令

前面使用了 E 命令寫入機(jī)器指令贿衍,這樣寫起來很不方便授舟,也不直觀,最好能直接以匯編指令的形式寫入指令舌厨。


使用 A 命令從 073f:0f 開始的內(nèi)存單元中寫入指令

二岂却、實(shí)驗(yàn)任務(wù)

1. 將下面三條指令寫入從 2000:0 開始的內(nèi)存單元中,利用這三條指令計(jì)算 2 的 3 次方

mov ax, 1
add ax, ax
jmp 2000:0003
實(shí)驗(yàn)1:利用三條指令計(jì)算

2. 查看主板內(nèi)存中的內(nèi)容

PC 機(jī)主板上的 ROM 中寫有一個(gè)生產(chǎn)日期裙椭,在內(nèi)存 FFF00H~FFFFFH 的某幾個(gè)單元中躏哩,請(qǐng)找出這個(gè)日期并試圖改變它。


查看主板內(nèi)存中的內(nèi)容

PC 機(jī)主板上的 ROM 寫的生產(chǎn)日期是:01/01/92
由于內(nèi)存 FFF00H~FFFFFH 屬于 ROM揉燃,只能讀扫尺,不能寫,所以寫入數(shù)據(jù)的操作是沒有結(jié)果的

3. 向內(nèi)存 B8100H 開始的單元中填寫數(shù)據(jù)

// 如:
e b810:0000 01 01 02 02 03 03 04 04

請(qǐng)先填寫不同的數(shù)據(jù)炊汤,觀察產(chǎn)生的現(xiàn)象正驻;再改變填寫的地址,觀察產(chǎn)生的現(xiàn)象抢腐。

觀察到的現(xiàn)象

可以看到屏幕出現(xiàn)了些彩色的圖案姑曙,這些是寫入的數(shù)據(jù)對(duì)應(yīng)的 ASCII 碼字符;
而 b810:0 所對(duì)應(yīng)的內(nèi)存地址是顯存地址空間(如下圖所示)迈倍,所以往顯存中寫入信息伤靠,顯卡會(huì)將它輸出到顯示器上。

8086PC 機(jī)內(nèi)存地址空間分配
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末啼染,一起剝皮案震驚了整個(gè)濱河市宴合,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌迹鹅,老刑警劉巖卦洽,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異斜棚,居然都是意外死亡阀蒂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門弟蚀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脂新,“玉大人,你說我怎么就攤上這事粗梭。” “怎么了级零?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵断医,是天一觀的道長(zhǎng)滞乙。 經(jīng)常有香客問我,道長(zhǎng)鉴嗤,這世上最難降的妖魔是什么斩启? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮醉锅,結(jié)果婚禮上兔簇,老公的妹妹穿的比我還像新娘。我一直安慰自己硬耍,他們只是感情好垄琐,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著经柴,像睡著了一般狸窘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坯认,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天翻擒,我揣著相機(jī)與錄音,去河邊找鬼牛哺。 笑死陋气,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的引润。 我是一名探鬼主播巩趁,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼椰拒!你這毒婦竟也來了晶渠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤燃观,失蹤者是張志新(化名)和其女友劉穎褒脯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缆毁,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡番川,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脊框。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颁督。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖浇雹,靈堂內(nèi)的尸體忽然破棺而出沉御,到底是詐尸還是另有隱情,我是刑警寧澤昭灵,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布吠裆,位于F島的核電站伐谈,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏试疙。R本人自食惡果不足惜诵棵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望祝旷。 院中可真熱鬧履澳,春花似錦、人聲如沸怀跛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敌完。三九已至储耐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滨溉,已是汗流浹背什湘。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晦攒,地道東北人闽撤。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像脯颜,于是被迫代替她去往敵國(guó)和親哟旗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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