東北大學軟體學院彙編實驗報告

2021-03-04 05:37:21 字數 4401 閱讀 6643

(附錄二)

組合語言程式設計

實驗報告

軟體學院

一、 實驗目的與意義

了解和掌握邏輯指令、比較指令、無條件/有條件轉移類指令的功能和作用,以及此類指令的使用方法。

二、 實驗環境

作業系統:windows7

除錯軟體名稱及版本號:microsoft visual studio2008

三、 實驗的預習內容

預習的主要內容:看了邏輯指令add,or,not,xor,test和有條件無條件轉移指令的作用和使用方法

實驗思路:觀察暫存器的數值在邏輯指令作用前後的變化,了解邏輯指令的作用,通過使用條件或無條件跳轉指令,用逐語句除錯觀察程式執行的步驟和順序,了解條件跳轉語句的作用

四、 實驗的步驟與除錯方法

實驗的大致步驟:在.code中通過把賦值的暫存器通過各個邏輯指令,逐語句除錯觀察各個暫存器前後的變化。在程式中使用跳轉語句,觀察程式執行的順序,了解各個指令的作用

實驗中遇到的問題及除錯方法:當把16進製制的數值賦值給暫存器時,直接寫的16進製制的數,除錯報錯。後來在16進製制的數後加h,程式執行。

如果不加字尾計算機預設為10進製,會導致計算機無法識別數值

五、 實驗資料與實驗結果

在debug系統狀態下,分別編制、除錯並記錄以下邏輯指令程式段的每一條指令的運**況:

(ⅰ)mov al,41 ┃eax = 76a51129 ebx = 7ffd8000 ecx = 00000000

edx = 00171005 esi = 00000000 edi = 00000000

eip = 00171017 esp = 0027fa50 ebp = 0027fa58

efl = 00000246

or al,20 ┃eax = 76a5113d ebx = 7ffd8000 ecx = 00000000

edx = 00171005 esi = 00000000 edi = 00000000

eip = 00171019 esp = 0027fa50 ebp = 0027fa58

efl = 00000202

mov al,66 ┃eax = 76fc1142 ebx = 7ffdc000 ecx = 00000000

edx = 01211005 esi = 00000000 edi = 00000000

eip = 01211017 esp = 0026febc ebp = 0026fec4

efl = 00000246

and al,0df ┃eax = 76fc1142 ebx = 7ffdc000 ecx = 00000000

edx = 01211005 esi = 00000000 edi = 00000000

eip = 01211019 esp = 0026febc ebp = 0026fec4

efl = 00000206

mov eax,5678 ┃eax = 0000162e ebx = 7ffd9000 ecx = 00000000

edx = 01071005 esi = 00000000 edi = 00000000

eip = 0107101a esp = 0014fe90 ebp = 0014fe98

efl = 00000246

xor eax,eax ┃eax = 00000000 ebx = 7ffd9000 ecx = 00000000

edx = 01071005 esi = 00000000 edi = 00000000

eip = 0107101c esp = 0014fe90 ebp = 0014fe98

efl = 00000246

mov eax,0ff00 ┃eax = 0000ff00 ebx = 7ffd8000 ecx = 00000000

edx = 002a1005 esi = 00000000 edi = 00000000

eip = 002a101a esp = 0021fc5c ebp = 0021fc64

efl = 00000246

not eax ┃eax = ffff00ff ebx = 7ffd8000 ecx = 00000000

edx = 002a1005 esi = 00000000 edi = 00000000

eip = 002a101c esp = 0021fc5c ebp = 0021fc64

efl = 00000246

mov eax,1234 ┃eax = 000004d2 ebx = 7ffd6000 ecx = 00000000

edx = 00311005 esi = 00000000 edi = 00000000

eip = 0031101a esp = 0029fa64 ebp = 0029fa6c

efl = 00000246

test eax,1 ┃eax = 000004d2 ebx = 7ffd6000 ecx = 00000000

edx = 00311005 esi = 00000000 edi = 00000000

eip = 0031101f esp = 0029fa64 ebp = 0029fa6c

efl = 00000246

test eax,2 ┃eax = 000004d2 ebx = 7ffd6000 ecx = 00000000

edx = 00311005 esi = 00000000 edi = 00000000

eip = 00311024 esp = 0029fa64 ebp = 0029fa6c

efl = 00000202

test eax,4 ┃eax = 000004d2 ebx = 7ffd6000 ecx = 00000000

edx = 00311005 esi = 00000000 edi = 00000000

eip = 00311029 esp = 0029fa64 ebp = 0029fa6c

efl = 00000246

test eax,8 ┃eax = 000004d2 ebx = 7ffd6000 ecx = 00000000

edx = 00311005 esi = 00000000 edi = 00000000

eip = 0031102e esp = 0029fa64 ebp = 0029fa6c

efl = 00000246

test eax,10 ┃eax = 000004d2 ebx = 7ffd6000 ecx = 00000000

edx = 00311005 esi = 00000000 edi = 00000000

eip = 00311033 esp = 0029fa64 ebp = 0029fa6c

efl = 00000202

test eax,20 ┃eax = 000004d2 ebx = 7ffd6000 ecx = 00000000

edx = 00311005 esi = 00000000 edi = 00000000

eip = 00311038 esp = 0029fa64 ebp = 0029fa6c

efl = 00000202

test eax,40 ┃eax = 000004d2 ebx = 7ffd6000 ecx = 00000000

edx = 00311005 esi = 00000000 edi = 00000000

eip = 0031103d esp = 0029fa64 ebp = 0029fa6c

efl = 00000246

test eax,80 ┃eax = 000004d2 ebx = 7ffd6000 ecx = 00000000

edx = 00311005 esi = 00000000 edi = 00000000

eip = 00311042 esp = 0029fa64 ebp = 0029fa6c

efl = 00000206

test指令的作用是:在每對運算元的對應資料位之間執行隱含的「與」操作,並相應設定標誌位,並且不改變目的運算元。

(2) 已知data單元開始存放三個帶符號數,編制程式,檢查三個資料是否同號,若同時為正,則在顯示器上顯示「+」;同時為負,則顯示「-」;否則顯示空格「 」。

要求:分別用三組資料(同時為正,同時為負,異號)除錯程式,驗證程式的正確性。

**:title ma** templatemain.a**)

; description:

; ; revision date:

include irvine32.inc

.data

val1 sbyte 10110000b

val2 sbyte 11111000b

val3 sbyte 11000001b

.code

main proc

東北大學秦皇島分校彙編實驗報告

組合語言 實驗報告 東北大學秦皇島分校 計算機與通訊工程學院 實驗編號 6 實驗名稱 實踐課程中的程式 實驗目的 加強對彙編程式設計的掌握,熟練不同的定址方法 實驗內容 程式設計,完成問題7.9中的程式 assume cs codesg,ss stacksg,ds datasg stacksg se...

東北大學物理實驗報告

實驗一霍爾效應及其應用 預習思考題 1 列出計算霍爾係數 載流子濃度n 電導率 及遷移率 的計算公式,並註明單位。霍爾係數 載流子濃度 電導率 遷移率 2 如已知霍爾樣品的工作電流及磁感應強度b的方向,如何判斷樣品的導電型別?以根據右手螺旋定則,從工作電流旋到磁感應強度b確定的方向為正向,若測得的霍...

東北大學感測器實驗報告

一 實驗目的 了解金屬箔式應變片的應變效應,單臂電橋工作原理和效能。二 基本原理 電阻絲在外力作用下發生機械變形時,其電阻值發生變化,這就是電阻應變效應,描述電阻應變效應的關係式為 r r k 式中 r r為電阻絲電阻相對變化,k為應變靈敏係數,l l為電阻絲長度相對變化。金屬箔式應變片就是通過光刻...