编写程序实验两个数的加减结果的判断_实验一 两个多字节数的加减运算 -
實驗一 多字節數求和運算,字節拆分運算
一. 實驗目的
1.熟悉emu8086調試程序的使用。
2.編寫兩個4字節數的加法、減法運算程序,并運用emu8086進行調試。 3. 編寫字節拆分運算程序,并運用emu8086進行調試 二. 實驗目的
1.學習數據傳送和算術運算指令 2.熟悉在PC機上調試程序的方法
三. emu8086調試程序的使用
1. 啟動emu8086
a.在WINDOWS下雙擊emu8086圖標,啟動界面如圖1所示,用戶可以選擇新建文本、程序實例、啟動指南、近期文檔。
2.新建文件
單擊圖1中的“New”選項,軟件會彈出如圖2所示的選擇界面。
選擇empty workspace的選項,打開一個完全空的文檔。
3. 編輯程序
如圖3所示為編輯程序界面。該編輯界面集文檔編輯、指令編譯、程序加載、系統工具、在線幫助為一體。
編寫完程序后,用戶只需單擊工具欄上的“emulate”按鈕即可仿真運行程序。 4.仿真運行
當用戶將程序加載到仿真器后,會同時打開仿真器界面和源程序界面,用戶在仿真器界面中也可以同時看到源代碼和編譯后的機器碼。點擊的任意一條源程序指令,則對應的機器代碼顯示為被選顯示狀態,與此同時,上面的代碼指針也會相應變化。用戶也可以通過這種操作了解,數據段和堆棧段中各變量或數據在存儲器中的情況。
用戶可以利用工具欄中的“single step”按鈕進行單步跟蹤調試,以便仔細觀察各寄存器、存儲器、變量、標記位等情況,這對于程序初始調試時十分有用;當程序調試完畢,或需要連續運行觀察時,則可以使用“run”按鈕;當希望返回上一步操作時,則可以使用“step back”按鈕;若單擊“reload”按鈕,則仿真器會重新加載程序,并將指令指針指向程序的第一條指令;您也可以利用“load”按鈕,從您保存的文件夾中加載其它程序。用戶除使用上述工具欄中的按鈕進行仿真調試外,還可以利用其菜單中的其它功能進行更高級的調試和設置。
四. 多字節加法
要求:在當前的數據段內(段基址寄存器DS)的偏移地址為1000H處定義4各字節的
被加數78H、56H、34H、12H(即被加數為12345678H);在偏移地址2000H處定義4字節加數12H、34H、56H、78H(即加數為78563412H) 程序流程:
程序清單:
MOV SI,1000H ;置被加數指針 MOV DI,2000H ;置加數指針 MOV CX,4 ;數據個數 CLC ;清進位標志 AGAIN: MOV AL,[SI] ;取被加數 ADC AL,[DI] ;加 加數 MOV [SI],AL ;和送回至加數 INC SI ;修改數據指針 INC DI
LOOP AGAIN ;記數—1=0?
五. 拆分字符
拆字
10050H 10051H
7 A 0 7 10052H 0 A 程序:
MOV AX,1000H
MOV DS,AX ;數據段基址DS=1000H MOV SI,50H ;需拆字的指針SI=50H MOV AL,[SI] ;取字節給AL AND AL,0FH ;屏蔽高4位
MOV [SI+1],AL ;得到的數據存入10051 MOV AL,[SI] ;再取出需拆字的字節 MOV CL,4
SHR AL,CL ;邏輯右移4次,高4位補0 MOV [SI+2],AL ;存入10052單元
五. 實驗內容(實驗程序及結果寫在練習本上)。
(1)熟悉emu8086各窗口內容。 (2)多字節加法
1. 在編輯窗口輸入多字節加法程序。 2. 點擊“emulate”進行仿真。
3. 在當前數據段的1000H、2000H偏移地址輸入被加數和加數。 4. 用單步命令逐步運行上述程序,運行過程注意每條指令執行后,指定的寄存器.
或內存的變化,填入下表。
MOV MOV MOV CLC ADC MOV INC INC
SI,1000H ;置被加數指針 (SI)= DI,2000H ;置加數指針 CX,4 AL,[SI] AL,[DI] [SI],AL SI DI
;數據個數 ;清進位標志 ;取被加數 ;+ 加數 ;和送回至加數
(DI)= (CX)= (AL)= (AL)= [SI]= (DI)= 循環第1次 AGAIN: MOV
;修改數據指針 (SI)= ;記數—1=0? (CX)= LOOP AGAIN
第2次 第3次 第4次 5. 運行結束查看和的情況。
即在當前的數據段內(段基址寄存器DS)的偏移地址為1000H處定義4各字節的內容
(3)拆分字符
1.在編輯窗口輸入多字節加法程序。 2.點擊“emulate”進行仿真。
3.在數據段中1000H:0050H單元輸入數據7A。 4.用單步命令逐步運行上述程序,運行過程注意查看每條指令執行后各寄存器及.
內存的變化。
MOV AX,1000H (AX)= MOV DS,AX MOV SI,50H MOV AL,[SI] AND AL,0FH MOV AL,[SI] MOV CL,4 SHR AL,CL
(DS)= (SI)= (AL)= (AL)= (AL)= (AL)= MOV [SI+1],AL [SI+1]= MOV [SI+2],AL [SI+2]=
6.查看1000H:0051H、1000H:0052H單元中的結果 六. 選做
將數據段中偏移地址為1000H處的120個字節搬移到2000H處,自己設計程序,運行,并思考應觀察哪些數據,如何觀察?
總結
以上是生活随笔為你收集整理的编写程序实验两个数的加减结果的判断_实验一 两个多字节数的加减运算 -的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谁认识猫咪的四叶草?
- 下一篇: 战狼1中吴京用的狙击枪叫啥