8086匯編 cmp 指令


8086匯編 cmp 指令

cmp 是比較指令,功能相當於減法指令,只是不保存結果。
cmp 指令執行后,將對標志寄存器產生影響。

格式:cmp 操作對象1,操作對象2
功能:計算操作對象1–操作對象2

原理:通過做減法運算影響標志寄存器,標志寄存器的相關位的取值,體現比較的結果。

cmp 指令說明

一、應用使用

其他相關指令通過識別這些被影響的標志寄存器位來得知比較結果。

應用方法:用標志寄存器值,確定比較結果。

二、無符號數比較與標志位取值

思路:通過cmp 指令執行后相關標志位的值,可以看出比較的結果

指令:cmp ax,bx

三、有符號數比較與標志位取值

問題:用cmp來進行有符號數比較時,CPU用哪些標志位對比較結果進行記錄

僅憑結果正負(SF)無法得出結論,需要配合是否溢出(OF)得到結論。

示例指令:cmp ah,bh

條件轉移指令

;或者其他影響標志寄存器的指令

cmp oper1, oper2  

jxxx 標號

一、根據單個標志位轉移的指令

二、根據無符號數比較結果進行轉移的指令

 三、根據有符號數比較結果進行轉移的指令

 四、轉移指令全寫

j-Jump e-Equal n-Not b-Below a-Above L-less g-Greater   s-Sign C-carry p-Parity o-Overflow  z-Zero

條件准轉移指令使用

jxxx系列指令和cmp指令配合,構造條 件轉移指令

  • 不必再考慮cmp指令對相關標志位的影響和jxxx指令對相關標志位的檢測
  • 可以直接考慮cmp和jxxx指令配合使用時表現出來的邏輯含義。
  • jxxx系列指令和cmp指令配合實現高級語言中if語句的功能

例1:如果(ah)=(bh),則(ah)=(ah)+(ah),否則(ah)=(ah)+(bh)

例2:如果(ax)=0,則(ax)=(ax)+1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM