匯編指令之CMP, TEST指令


一、CMP指令

這一塊呢,我不想上圖了,匯編的博文我已經快要讓我寫吐了,其實也有好多我沒有補充進來,比如進制,LEA指令,數據寬度,有符號,無符號的區分等等,但我真的要吐了,這些玩意我已經不是第一次寫了,也不是第一次看了,以前我是習慣於在EXCEL上寫,這一次由於是我對匯編遺忘的有點狠,想從頭復習一遍,剛好把這個復習的過程上傳到博客園來,於是就有了這些文章,這兩條指令,如果有興趣,大家自己去測試測試吧

 

版權聲明:本文為博主原創文章,轉載請附上原文出處鏈接和本聲明。2019-09-06,20:23:27。
作者By-----溺心與沉浮----博客園 

 

指令格式:CMP  R/M,R/M/IMM

CPM指令相當於SUB,唯一不同的是它不改變操作數或者寄存器的值

該指令是比較兩個操作數,實際上,它相當於SUB指令,但是相減的結構並不保存到第一個操作數中。

只是根據相減的結果來改變零標志位的,當兩個操作數相等的時候,零標志位置1。

MOV EAX,100

MOV ECX,100

CMP EAX,ECX    觀察Z位

 

 MOV EAX,100

 MOV ECX,200

 CMP EAX,ECX    觀察S位

 

 CMP AX,WORD PTR DS:[405000]

 CMP AL,BYTE PTR DS:[405000]

 CMP EAX,DWORD PTR DS:[405000]

 

 二、TEST指令

 指令格式:TEST  R/M,R/M/IMM

 該指令在一定程序上和CMP指令時類似的,兩個數值進行與操作,結果不保存,但是會改變相應標志位.

 與的操作表項如下:

 1 and 1 = 1

 1 and 0 = 0

 0 and 1 = 0

 0 and 0 = 0

 常見用法:用這個指令,可以確定某寄存器是否等於0。

 TEST EAX,EAX    觀察Z位

 但是如果EAX的二進制某些位為1的話,那么運算的結果就不為零。

 

版權聲明:本文為博主原創文章,轉載請附上原文出處鏈接和本聲明。2019-09-06,20:23:27。
作者By-----溺心與沉浮----博客園


免責聲明!

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



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