昆明理工大學彙編實驗報告

2022-07-19 07:18:03 字數 3639 閱讀 2679

資訊工程及自動化學院

組合語言試驗報告

試驗環境:

os : windows 7 ultimate x64

tool : dosbox0.74

目錄試驗一 2

(1)使用debug,將下面的程式段寫入記憶體,逐條執行,觀察每條指令執行後,cpu中相關暫存器中內容的變化。 2

(2)將下面3條指令寫入從2000:0開始的記憶體單元中,利用這3條指令計算2的8次方。 9

(3)檢視記憶體中的內容 11

(4)向記憶體從b8100h開始的單元中填寫資料,如: 11

試驗二 12

<1.>使用debug,將下面的程式段寫入記憶體,逐條執行,根據指令執行後的實際運**況填空。 12

<2.>觀察下圖得出結論 15

附錄: 16

〈程式〉

機器碼彙編指令

b8 20 4emov ax,4e20h

05 16 14add ax,1416h

bb 00 20mov bx,2000h

01 d8add ax,bx

89 c3mov bx,ax

01 d8add ax,bx

b8 1a 00mov ax,001ah

bb 26 00mov bx,0026h

00 d8add al,bl

00 dcadd ah,bl

00 c7add bh,al

b4 00mov ah,0

00 d8add al,bl

04 9cadd al,9ch

《執行觀察》執行前一次值:

1) 4e20h→axcs:ip 0123:0000

2) 1416h+ax→axcs:ip 0123:0003

3) 2000h→bxcs:ip 0123:0006

4) bx+ax→axcs:ip 0123:0009

5) ax→bxcs:ip 0123:000b

6) bx+ax→axcs:ip 0123:000d

7) 001ah→axcs:ip 0123:000f

8) 0021h→bxcs:ip 0123:0012

9) al+bl→al (al=1ah,bl=21h) cs:ip 0123:0015

10) ah+bl→ah (ah=00h,bl=21h) cs:ip 0123:0017

11) bh+al→bh (bh=00h,al=3bh) cs:ip 0123:0019

12) 0→ahcs:ip 0123:001b

13) al+bl→al (al=3bh,bl=21h) cs:ip 0123:001d

14) al+9ch→alcs:ip 0123:001f

cs:ip 0123:0021

配圖如下:

圖1.1-1

圖1.1-1:dosbox v0.74 對虛擬硬碟的掛載

圖1.1-2

圖1.1-2:因為我們進入demo資料夾對於可執行程式來說資料夾在其下層,所以我們配置環境變數.為了方便我們調整cs為0123調整開始ip為0000;

圖1.1-3

圖1.1-3:用e編寫程式.

圖1.1-4

圖1.1-4:總的編寫展示.對於其間我們省略了一步截圖.是對於再次讀寫位置的確定.我們根據程式定點為0123:0015;

圖1.1-5

圖1.1-5:單步執行不再贅述.

圖1.1-6

圖1.1-7

圖1.1-8

圖1.1-9

圖1.1-9:採用a編寫程式.指定開始位置.

圖1.1-10

圖1.1-11

圖1.1-12

圖1.1-13

〈程式〉

mov ax,1

add ax,ax

jmp 2000:0003

圖1.2-1

圖1.2-2

圖1.2-3

《執行觀察》

第一條指令給ax賦值。

第二條指令讓ax相加,相當於乘2。

第三條跳轉上一條指令

連續跳轉8八次,就是2的八次方

(3)檢視記憶體中的內容

pc機主板上的rom中寫有乙個生產日期,在記憶體fff00h~fffffh的某幾個單元中,請找到這個生產日期並試圖改變它。

圖1.3-1

《執行觀察》

因為實體地址=段位址*16+段內位址

記憶體fff00h~fffffh在計算機ffff:0000~fff0:000f中

運用d ffff:0000指令檢視記憶體的位址

改不了.

(4)向記憶體從b8100h開始的單元中填寫資料,如:

-e b810:0000 01 01 02 02 03 03 04 04

此試驗我參看了多方資料.最後得出結論在b800以後幾個記憶體空間是視訊記憶體位置.對於編寫程式用e讀寫開始第一位是設定字元,後一位是顏色.

我們通過顏色表對比得出選擇的顏色. 又知道在一頁顯示緩衝區中:

偏移000~09f對應顯示器上的第1行(80個字元佔160個位元組):

偏移0a0~13f對應顯示器上的第2行:

偏移140~1df對應顯示器上的第3行。

所以很好確定我們顯示的位置.具體資料見附錄.

圖1.4-1

mov ax,ffff

mov ds,ax

mov ax,2200

mov ss,ax

mov sp,0100

mov ax,[0] ax=_c0ea_____

add ax,[2] ax=_0000_____

mov bx,[4] bx=_30f0____

add bx,[6] bx=_6021____

push ax sp=_00fe____;修改的記憶體單元位址是 _2200:00fe____ 內容為_____

push bx sp=_00fc____, 修改的記憶體單元位址是 _2200:00fc____ 內容 _____

pop ax sp=_00fe____,ax=_6021____

pop bx sp=_0100____,bx=_c0fc____

push [4] sp=_00fe____修改的記憶體單元位址是 _2200:00fe ____ 內容 _30f0____

push [6] sp=_00fc____修改的記憶體單元位址是 _2200:00fc ____ 內容 _2f31____

圖2.1-1

圖2.1-2

圖2.1-3

圖2.1-4

圖2.1-5

因為用t指令進行除錯時,會產生中斷。而為了保護現場,cpu則先將標誌暫存器進棧、再把當前cs的值進棧,最後將ip的值進棧。

1.背景色顯示表

前一位數字表示背景色,後乙個字母則為前景。每個數字可以為以下任何值之一:

0 = 黑色 1 = 藍色 2 = 綠色 3 = 湖藍色 4 = 紅色 5 = 紫色 6 = 黃色

7 = 白色 8 = 灰色 9 = 淡藍色 a = 淡綠色 b = 淡淺綠色 c = 淡紅色

d = 淡紫色 e = 淡黃色 f = 亮白色

碼表由於內容過多不再贅述.end

昆明理工大學封面個人簡歷

姓名 杜宗飛專業 電腦科學與技術 學院 數理資訊學院學歷 本科 手機 e mail 位址 昆明理工大學 自薦信尊敬的領導 您好!今天我懷著對人生事業的追求,懷著激動的心情向您毛遂自薦,希望您在百忙之中給予我片刻的關注。我是昆明理工大學電腦科學與技術專業的2014屆畢業生。昆明理工大學大學四年的薰陶,...

昆明理工大學文獻檢索實習報告

資訊檢索與利用 實習報告 姓名 學號 學院 專業班級 完成日期 昆明理工大學圖書館文獻檢索教研室 資訊檢索與利用實習報告作業要求 1 確定檢索課題。2 做課題分析,提檢索詞,制定檢索策略。3 結合課題選擇校園網的1個中文科技期刊全文資料庫和1個外文科技期刊全文資料庫做檢索實習,要求記錄 1條中文文獻...

昆明理工大學科技文獻檢索報告

資訊檢索與利用 實習報告 姓名 學號 學院 專業班級 教師姓名 常彥峰 完成日期 年月日 昆明理工大學圖書館文獻檢索教研室 資訊檢索與利用實習報告作業要求 1 確定檢索課題。2 做課題分析,提檢索詞,制定檢索策略。3 結合課題選擇校園網的2個中文科技期刊全文資料庫和1個外文科技期刊全文資料庫做檢索實...