1. 程式人生 > >匯編-寄存器數據的存儲與變化-算術運算對標誌位的影響

匯編-寄存器數據的存儲與變化-算術運算對標誌位的影響

位操作 https IE 都是 AS -a 內容 text 存在

實驗3:寄存器數據的存儲與變化-算術運算對標誌位的影響

1.項目設計
將操作數放在2000H和2001H兩個單元中,編程進行以下的算術運算 ,並記錄標誌位的狀態。
(1)41H+3BH,結果放在2002H單元中;
(2)41H+5AH,結果放在2003H單元中;
(3)AFH+7EH,結果放在2004H單元中;
(4)E3H+1DH,結果放在2005H單元中;
(5)41H-3BH,結果放在2006H單元中;
(6)3BH-41H,結果放在2007H單元中;
2.項目實施
(1)寫出指令代碼段,例如41H+3BH
MOV AX, [2000H]
ADD AX, [2001H]
MOV [2002H], AX
(2)寫出指令的機器代碼:
例如上面指令的機器代碼為 A0 00 20
04 01 20
A2 02 20
(3)在debug中調試程序。
3.項目運行
(1)運行每一段指令,按表1格式在項目報告中記錄結果。

實驗步驟:

直接進入DOSBox 進行相關掛載操作

技術分享圖片

切換至c盤 輸入debug

  • -A命令進入編寫代碼界面
  • -R查看當前寄存器中指令
  • -T查看寄存器下一地址的內容以及相應的機器碼
  • -D查看DS內數據存放的結果

1.1)程序1代碼以及機器碼及結果
技術分享圖片
分別寫入三條語句來進行計算41H+3BH並放到2002H單元內
按ENTER鍵 再輸入R查看當前寄存器中的內容,可以看到對應匯編語句所對應的機器碼。 由於涉及到32位與64位操作系統,所生成的機器碼會有所差別。
使用-T查看寄存器下一地址的內容和相應的機器碼
註意:使用-T查看直到運行完最後一條匯編指令為止。

此時,使用-D xxx xxx
即-D 2002 2002即可查看寫在2002H單元內的內容
可知值為7C 相對於的NV UP EI PL NZ NA PO NC 為狀態標誌 ,具體參數參見此圖

技術分享圖片

當然例題1也能 使用AX 立即數計算 其也能計算41H+3BH的值。結果存在2002H 結果都是7C 但機器碼不同
如圖:

技術分享圖片

2,1)程序2的相關指令和結果

技術分享圖片
得到對應的SF,ZF,CF

技術分享圖片

3)DEBUG寫入代碼進行T測試

技術分享圖片
3.3)程序3代碼以及機器碼

技術分享圖片

3.3)程序3結果及SFZFCF
技術分享圖片
4)找到02的值
技術分享圖片

4.1)程序4代碼以及機器碼

技術分享圖片

4.3)得到SF,ZF,CF

技術分享圖片

5.1)程序5代碼以及機器碼
技術分享圖片
5.2)得到SF,ZF,CF與2006h的值

技術分享圖片

6.1)程序6代碼以及機器碼
技術分享圖片

6.2)程序6結果及SFZFCF
技術分享圖片

7.1)程序7代碼以及機器碼以及結果

技術分享圖片

個人得到的程序運行結果及CF,SF,ZF值

技術分享圖片

相關參考資料

技術分享圖片
機器碼的構成結構

DOSBox下debug的使用 https://www.jianshu.com/p/bf7caf046420

機器碼 與 匯編指令的關系https://blog.csdn.net/z3410218746/article/details/7485602

80x86尋址方式及指令系統https://wenku.baidu.com/view/d9bb76a40029bd64783e2c6a.html

計算機組成原理實驗報告單算數運算及對標誌位的影響https://wenku.baidu.com/view/5ed10f72d1f34693dbef3e12.html

匯編-寄存器數據的存儲與變化-算術運算對標誌位的影響