東北大學計算機硬體技術基礎實驗報告

2021-03-04 05:37:20 字數 1665 閱讀 8029

東北大學

專業班級: 姓名: 學號:

實驗題目日期:2013.11.9

實驗目的:

(1)掌握順序程式設計方法;

(2)學習資料傳送及算術和邏輯運算指令的用法;

(3) 熟悉在pc上建立、彙編、連線、除錯和執行8086組合語言程式的過程。

實驗內容:

編制程式,將位元組變數bvar中的壓縮bcd數轉換成二進位制數,並存入原變數中。

在編寫程式前,首先要確定轉換演算法。第一步,取壓縮bcd數的十位;第二步,計算十位數乘以10;第三步,取個位數相加。

實驗步驟:

(1)輸入源程式如下:

dseg segment資料段

bvar db 74h

dseg ends

cseg segment**段

assume cs:cseg,ds:dseg

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

mov ds,ax

mov al,bvar

mov cl,4

shr al,cl ;取高4位

mov ah,10

mul ah乘10

and bvar,0fh ;取低4位

add bvar,al ;相加

mov ah,4ch

int 21h ;程式結束退出

cseg ends

end start

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

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

(4) 執行debug除錯程式,使用d引數指令,在bvar對應的儲存單元中得到計算結果0100 1010h,結果正確.

思考題:程式中求個位數乘以10採用乘法指令mul實現,而用移位指令也可以實現,請問該如何修改程式?

將 mov ah,10

mul ah

改為 sal ah,1

mov cl,ah

sal ah,1

sal ah,1

add ah,cl

擴充套件題:這個程式還有另外乙個編制演算法,即首先將壓縮bcd數轉換成非壓縮bcd數,然後通過bcd碼調整指令將其直接轉換成二進位制數。請問應該使用哪乙個調整指令?試編制程式。

dseg segment

bvar db 74h

dseg ends

cseg segment

assume cs:cseg,ds:dseg

start:mov ax,dseg

mov ds,ax

mov al,bvar

mov ah,al

shr cl,4

mov ah,cl

and al,0fh

aadmov bvar,al

mov ah,4ch

int 21h

cseg ends

end start

東北大學計算機硬體基礎第一次實驗報告

東北大學 計算機硬體技術基礎實驗報告 一 實驗目的 1 掌握順序程式設計方法 2 學習資料傳送及算術和邏輯運算指令的用法 3 熟悉在pc機上建立 彙編 連線 除錯和執行8086組合語言程式的過程。二 實驗內容 首先將first字變數與second字變數相加,結果存至third1儲存字中,然後將fir...

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

東北大學 實驗目的 1 加深對迴圈結構的理解 2 掌握迴圈程式的設計方法 3 熟練掌握debug的常用命令,學會用debug除錯程式。1 實驗內容 設有3個單位元組無符號數存放在buf開始的緩衝區中,編寫乙個能將它們從大到小重新排序的程式。三 演算法描述流程圖 四 實驗步驟 1.輸入源程式 dseg...

計算機硬體技術基礎考試範圍

一 筆試部分 筆試開卷考試。可以帶課程的教材 實驗教程 實驗補充資料。手寫的筆記,列印或影印的課件資料 手寫類筆記和列印影印類的資料必須裝訂成一本,不能是一頁一頁的,單元測試題不告訴學生可以帶,如果是將試題和課件裝訂在一起,考試時也可以 往屆的試卷和硬體學習指導書絕不能帶。考試範圍 1 中斷只考概念...