彙編實驗報告

2021-04-23 10:27:13 字數 3494 閱讀 6242

課程編號:b080103020

組合語言程式設計

實驗報告

東北大學軟體學院

實驗1 資料傳送指令

實驗目的:了解和掌握 mov、push、pop、xchg四條指令的作用和在程式設計中的用法。

實驗內容:(ⅰ)採用立即數定址方式將19e0h,3f56h,0af37h,9a81h分別送給eax、ebx、ecx、edx四個暫存器。

記錄:操作前 eax= 00000000h 、 ebx= 7ffde000h 、 ecx= 0012ffb0h 、 edx= 00851005h

操作後 eax= 000019e0h 、 ebx= 00003f56h 、 ecx= 0000af37h 、 edx= 00009a81h

(ⅱ)採用採用暫存器定址方式將19e0h送給ebx、ecx、edx三個暫存器。

記錄:操作前 eax= 00000000h 、 ebx= 7ffd8000h 、 ecx= 00000000h 、 edx= 00881005h

操作後 eax= 000019e0h 、 ebx= 000019e0h 、 ecx= 0012ffb0h 、 edx= 000019e0h

(2)對eax、ebx、ecx、edx四個暫存器進行出入堆疊的操作。

將eax、ebx、ecx、edx四個暫存器的內容依次壓入堆疊中,注意觀察棧指標暫存器和堆疊內容的變化。

記錄: 壓入eax前 esp= 0012ffc4 , (esp)= 7c44fa10h

壓入eax後 esp= 0012ffc0 , (esp)= 00000000h

壓入ebx前 esp= 0012ffc0 , (esp)= 00000000h

壓入ebx後 esp= 0012ffbc , (esp)= 7ffd8000h

壓入ecx前 esp= 0012ffbc , (esp)= 7ffd8000h

壓入ecx後 esp= 0012ffb8 , (esp)= 0012ffb0h

壓入edx前 esp= 0012ffb8 , (esp)= 0012ffb0h

壓入edx後 esp= 0012ffb4 , (esp)= 7c92e514h

(ⅱ)將堆疊中的內容依次彈出到eax、ebx、ecx、edx四個暫存器, 注意觀察棧指標暫存器和堆疊內容的變化。

實驗結果:(1)

(ⅰ)記錄:操作前 eax= 00000000h 、 ebx= 7ffde000h 、 ecx= 0012ffb0h 、 edx= 00851005h

操作後 eax= 000019e0h 、 ebx= 00003f56h 、 ecx= 0000af37h 、 edx= 00009a81h

(ⅱ)記錄:操作前 eax= 00000000h 、 ebx= 7ffd8000h 、 ecx= 00000000h 、 edx= 00881005h

操作後 eax= 000019e0h 、 ebx= 000019e0h 、 ecx= 0012ffb0h 、 edx= 000019e0h

(2)記錄: 壓入eax前 esp= 0012ffc4 , (esp)= 7c44fa10h

壓入eax後 esp= 0012ffc0 , (esp)= 00000000h

壓入ebx前 esp= 0012ffc0 , (esp)= 00000000h

壓入ebx後 esp= 0012ffbc , (esp)= 7ffd8000h

壓入ecx前 esp= 0012ffbc , (esp)= 7ffd8000h

壓入ecx後 esp= 0012ffb8 , (esp)= 0012ffb0h

壓入edx前 esp= 0012ffb8 , (esp)= 0012ffb0h

壓入edx後 esp= 0012ffb4 , (esp)= 7c92e514h

記錄:彈出到eax前 esp= 0012ffb4 , (esp)= 7c92e514h

彈出到eax後 esp= 0012ffb8 , (esp)= 7c92e514h

彈出到ebx前 esp= 0012ffb8 , (esp)= 0012ffb0h

彈出到ebx後 esp= 0012ffbc , (esp)= 7ffd7000h

彈出到ecx前 esp= 0012ffbc , (esp)= 7ffd7000h

彈出到ecx後 esp= 0012ffc0 , (esp)= 00000000h

彈出到edx前 esp= 0012ffc0 , (esp)= 00000000h

彈出到edx後 esp= 0012ffc4 , (esp)= 7c44fa10h

實驗2 邏輯指令、跳轉指令與分支程式設計

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

實驗內容:具體了解和掌握邏輯指令、比較指令、無條件/有條件轉移類指令的使用和在使用時應注意的問題,學習分支型程式設計的一般方法。

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

mov al,41 ┃

or al,20 ┃

mov al,66 ┃

and al,0df ┃

mov eax,5678 ┃

xor eax,eax ┃

mov eax,0ff00 ┃

not eax ┃

mov eax,1234 ┃

test eax,1 ┃

test eax,2 ┃

test eax,4 ┃

test eax,8 ┃

test eax,10 ┃

test eax,20 ┃

test eax,40 ┃

test eax,80 ┃

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

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

實驗結果:test指令的作用是____將原運算元與目的運算元相與,但結果不送會目的運算元,只改變標誌位,並不修改運算元

實驗3 算術運算類指令、移位指令及迴圈程式設計

實驗目的:了解和掌握加、減、乘、除指令的在程式設計中的用法和應注意的問題,了解和掌握移位指令的功能、作用和方法。了解和掌握迴圈控制類指令的功能、作用和方法。

學會迴圈程式設計的方法。學習組合語言輸出輸入語句的設計。

彙編實驗報告

組合語言與微機接 術實驗報告 一分支程式設計 二迴圈程式設計 學號 1120102118 姓名 馬婧婷 班級 08311001 完成日期 2013 04 18 實驗1.1 一實驗背景 1 實驗目的 掌握組織及除錯乙個簡單並完整的組合語言程式,熟悉組合語言上機過程。實驗的第乙個程式是分支設計程式。2 ...

彙編實驗報告一

組合語言程式設計 軟體學院 一 實驗目的與意義 1 掌握組合語言程式設計的基本方法和技能 2 熟練掌握使用全螢幕編輯程式edit編輯組合語言源程式 3 熟練掌握巨集匯程式設計序ma 的使用 4 熟練掌握連線程式link的使用 5 學習資料傳送及算數和邏輯運算指令的用法 6 掌握分支程式的結構 7 掌...

彙編程式設計實驗報告

組合語言程式設計 實驗報告 一 課程設計目的 1 熟練掌握組合語言指令 2 掌握組合語言程式格式 迴圈與分支程式設計 子程式設計 巨集彙編 3 掌握模組化程式設計 4 培養動手能力 5 培養程式設計者解決問題的能力 二 課程設計任務 1 判斷閏年 根據輸入的具體年份 在1900 2100之間,要求對...