東北大學
專業班級: 姓名: 學號:
實驗題目日期: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 中斷只考概念...