東北大學
實驗目的
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單元。三 演算法描述流程圖 四 實驗步驟 ...