計算機硬體技術基礎實驗報告

2021-03-04 07:03:56 字數 2026 閱讀 6237

東北大學

實驗目的

1)加深對迴圈結構的理解;

2)掌握迴圈程式的設計方法;

3)熟練掌握debug的常用命令,學會用debug除錯程式。

1、實驗內容

設有3個單位元組無符號數存放在buf開始的緩衝區中,編寫乙個能將它們從大到小重新排序的程式。

三、演算法描述流程圖

四、實驗步驟

1. 輸入源程式:

dseg segment資料段

x dw 12h

y dw 34h

z dw ?

dseg ends

cseg segment**段

assume cs:cseg,ds:dseg

start: mov ax,dseg ;段暫存器初值

mov ds,ax

mov ax,x

add ax,y求x+y和

mov z,ax儲存

mov ah,4ch

int 21h程式結束退出

cseg ends

end start

2. 儲存原始檔,執行ma**彙編源程式,生成obj目標檔案,結果無錯誤。

3. 執行link連線程式,生成exe可執行檔案,結果無錯誤。

4. 執行debug除錯程式,使用t引數單步執行程式,在al暫存器中得到計算結果46h,結果正確,執行d引數命令察看z所在的位址單元中的資料為節單元中存放46h。

五、實驗結果

1. 執行ma**編譯源程式得到如下介面:

2. 執行link連線程式,生成exe可執行檔案得到如下介面:

3. 執行debug除錯程式,使用t引數單步執行程式,在al暫存器中得到計算結果46h,結果正確,得到如下介面:

4. 執行d引數命令察看z所在的位址單元中的資料為節單元中存放46h,得到如下介面:

六、思考題

本程式沒有考慮進製的情況。如果考慮可能產生的進製,應如何修改程式?

答:如果考慮進製情況,應該定義z為dw型別,在程式中執行完add al,y後,執行addc指令。

七、擴充套件題

設x和y均為三位元組無符號數,編制程式求其和,並將結果放置在z開始的儲存單元。

答:因為x和y都是三位元組的無符號數,所以要給z定義三個位元組的儲存空間。具體程式如下:

dseg segment資料段

x db 12h,34h,56h

y db 34h,56h,78h

z db 3 dup(?)

dseg ends

cseg segment**段

assume cs:cseg,ds:dseg

start: mov ax,dseg ;段暫存器初值

mov ds,ax

mov al,x

add al,y求x+y和

mov z,al儲存

mov al,x+1

adc al,y+1 ;求x+y和

mov z+1,al ;儲存

mov al,x+2

adc al,y+2 ;求x+y和

mov z+2,al ;儲存

mov ah,4ch

int 21h程式結束退出

cseg ends

執行debug除錯程式,執行d引數命令,在z對應的儲存單元中得到計算結果468aceh,結果正確。

八、實驗心得

理解了組合語言中程式設計的基本步驟,掌握了通過位址對資料賦值的方法。掌握組合語言編制基本順序結構的演算法,包括位址取值和加法的演算法步驟等。這個實驗,使我可以在程式設計中認識到直接通過cpu暫存器位址賦值可以大大提高了程式效率,但我要繼續練習熟讀組合語言**的能力。

計算機硬體實驗報告

東北大學 一 實驗目的 1 加深對迴圈結構的理解 2 掌握迴圈程式的設計方法 3 熟練掌握debug的常用命令,學會用debug除錯程式。二 實驗內容 統計以buf為首位址開始的位元組資料塊中的正數的個數,將統計結果存放至rlt單元。三 演算法描述流程圖 四 實驗步驟 1.輸入源程式 data se...

計算機硬體組裝實驗報告

山東政法學院 實驗 實訓 實習 報告 實驗名稱 計算機硬體組裝 一 任務和目的 掌握裝機方法,了解裝機時的注意事項,鍛鍊動手操作能力。二 內容與步驟 按照指導書寫出實驗 實訓 實習 的內容和步驟。1 依次拆卸舊電腦的各個部件,記住各部件與電腦的連線方式 2 在主機板上安裝cpu及其風扇 3 在主機板...

計算機硬體技術基礎實驗報告迴圈程式設計2

東北大學 計算機硬體技術基礎實驗報告 一 實驗目的 1 加深對迴圈結構的理解。2 掌握迴圈程式的設計方法。3 熟練掌握debug的常用命令,學會用debug除錯程式。二 實驗內容 從strn位址開始有一字串,以 作為結束標誌,要求統計該字串長度並存於leng單元。三 演算法描述流程圖 四 實驗步驟 ...