導航:首頁 > 程序命令 > cmp命令

cmp命令

發布時間:2022-01-24 11:27:50

『壹』 匯編中 cmp

cmp(compare)指令進行比較兩個操作數的大小。

『貳』 匯編語言中,cmp指令怎麼用比如cmp ax,bx ax大於bx怎麼跳轉,小於又怎麼跳,等於呢

CMP OPR1 , OPR2指令只是對操作數OPR1 , OPR2之間運算比較,不保存結果。指令本身不進行跳轉,只是根據結果設置相關的條件標志位(SF、ZF、CF、OF),CMP指令後往往跟著條件轉移指令,實現根據比較的結果產生不同的程序分支的功能。

格式:CMP OPR1 , OPR2.

執行操作:(OPR1)-(OPR2)

功能:該指令與SUB指令一樣執行減法的操作,但它並不保存運算結果,只是根據結果設置相關的條件標志位(SF、ZF、CF、OF)。CMP指令後往往跟著條件轉移指令,實現根據比較的結果產生不同的程序分支的功能。

(2)cmp命令擴展閱讀:

跳轉相關的條件跳轉指令:

1、JA/JNBE DEST指令:轉移條件是CF=0 AND ZF=0,含義是無符號數A>B,英文表示是JMP above (not below or equal)。

2、JAE/JNB DEST指令:轉移條件是CF=0,含義是無符號數A≥B,英文表示是JMP above or equal (not below )。

3、JB/JNAE DEST指令:轉移條件是CF=1,含義是無符號數A<B,英文表示是JMP blow (not above or equal)。

4、JBE/JNA DEST指令:轉移條件是CF=1 OR ZF=1,含義是無符號數A≤B,英文表示是JMP blow or equal (not above)。

『叄』 三菱plc的CMP指令到底是什麼意思

三菱plc的CMP指令意思就是單晶元多處理器指令,可以將對稱多處理器集成到同一晶元內,各個處理器並行執行不同的進程。

CMP指令下的結構被設計擁有多個處理器核,每個核都比較簡單,有利於優化設計,因此在一定程度上更具發展前途。

據了解,IBM的Power4晶元和Sun的MAJC5200晶元都採用了CMP指令,從而會在處理器內部共享緩存,提高緩存利用率,同時簡化其中設計的復雜度。

『肆』 匯編cmp指令的用法 大神請進

cmp是比較指令,cmp的功能相當於減法指令(sub)。它不保存結果,只是影響相應的標志位。其他的指令通過識別這些被影響的標志位來得知比較結果。

cmp指令格式: cmp 操作對象1, 操作對象2

注意是計算 操作對象2 - 操作對象1,和sub的一樣,而不是 操作數1-操作數2(ATT格式), 但不保存結果,只是根據結果修改相應的標志位。示例代碼:

#include <stdio.h>

int main()

{

int eax = 100;

int ebx = 200;

int output = -100;

asm volatile(

"movl %1,%%eax; "

"movl %2,%%ebx; "

"cmpl %%eax,%%ebx; " //用的是cmpl比較指令

"sets %%al; " //負數時設置

"movzbl %%al,%%eax; "

"movl %%eax,%0 "

: "=m"(output)

: "r"(eax), "r"(ebx)

: "eax");

printf("%d ", output);

return 0;

}

最終的輸出是1

(4)cmp命令擴展閱讀

cmp(compare)指令進行比較兩個操作數的大小

例:cmpoprd1,oprd2

為第一個操作減去第二個操作數,

但不影響第兩個操作數的值

它影響flag的CF,ZF,OF,AF,PF

若執行指令後

ZF=1 這個簡單,則說明兩個數相等,因為zero為1說明結果為0

當無符號時:

CF=1 則說明了有進位或借位,cmp是進行的減操作,故可以看出為借位,所以,此時oprd1<oprd2

CF=0 則說明了無借位,但此時要注意ZF是否為0,若為0,則說明結果不為0,故此時oprd1>oprd2

『伍』 三菱PLC命令CMP

CMP D0 D2 M0該指令為比較道指令,將比較的結果回<,=,>三種結果分別告知給M0,M1,M2。

如果D0>D2,M0=1,如果D0=D2,M1=1,如果D0<D2,M2=1,所以使用這個指令會連續佔用以M0為首的三個連續的位地址。

CMP用於16位數據比較,比較的數據范知圍是-32768到+32767,比較數據類型可以是常熟K,H等,可以是數據寄存器D,也可以是計數器C,可以是時間繼電器T,還可以是連續的位址(如K1X0,K2Y0,K3M0,K2S0等)。



(5)cmp命令擴展閱讀:

CF=1 則說明了有進位或借位,cmp是進行的減操作,故可以看出為借位,所以,此時oprd1<oprd2

CF=0 則說明了無借位,但此時要注意ZF是否為0,若為0,則說明結果不為0,故此時oprd1>oprd2

當有符號時:若SF=0,OF=0 則說明了此時的值為正數,沒有溢出,可以直觀的看出,oprd1>oprd2;若SF=1,OF=0 則說明了此時的值為負數,沒有溢出,則為oprd1<oprd2

若SF=0,OF=1 則說明了此時的值為正數,有溢出,可以看出oprd1<oprd2;若SF=1,OF=1則說明了此時的值為負數,有溢出,可以看出oprd1>oprd2

最後兩個可以作出這種判斷的原因是,溢出的本質問題:兩數同為正,相加,值為負,則說明溢出;兩數同為負,相加,值為正,則說明溢出;故有,正正得負則溢出,負負得正則溢出

『陸』 匯編語言中CMP是什麼意思

cmp是比較指令, cmp的功能相當於減法指令,只是不保存結果。cmp指令執行後,將對標志寄存器產生影響。其他相關指令通過識別這些被影響的標志寄存器位來得知比較結果。

比如:

mov ax,8

mov bx,3

cmp ax,bx

執行後:ax=8,ZF=0,PF=1,SF=0,CF=0,OF=0.

通過cmp指令執行後,相關標志位的值就可以看出比較的結果。

cmp ax,bx的邏輯含義是比較ax,bx中的值。如果執行後:

ZF=1則AX=BX

ZF=0則AX!=BX

SF=1則AX<BX

SF=0則AX>=BX

SF=0並ZF=0則AX>BX

SF=1或ZF=1則AX<=BX

CPU在執行cmp指令的時候,也包含兩種含義:進行無符號運算和進行有符號數運算。

cmp ah,bh

如果ah=bh則ah-bh=0所以ZF=1

如果ah≠bh則ah-bh≠0所以ZF=0

所以我們根據cmp指令執行後ZF的值,就可以知道兩個數據是否相等。如果ah<bh則可能發生什麼情況呢?

對於有符號數運算,在ah<bh情況下,ah-bh顯然可能引起SF=1既結果為負比如:

ah=1,bh=2則ah-bh=0FFH,0FFH為-1的補碼,因為結果為負,所以SF=1。

ah=0FEH,bx=OFFH;則ax-bx=-2-(-1)=OFFH,因為結果為負,所以SF=1。

(6)cmp命令擴展閱讀:

匯編語言的常用指令集如下:

數據傳送指令集

MOV

功能: 把源操作數送給目的操作數

語法: MOV 目的操作數,源操作數

格式: MOV r1,r2

MOV r,m

MOV m,r

MOV r,data

XCHG

功能: 交換兩個操作數的數據

語法: XCHG

格式: XCHG r1,r2 XCHG m,r XCHG r,m

PUSH,POP

功能: 把操作數壓入或取出堆棧

語法: PUSH操作數POP 操作數

格式: PUSH r PUSH M PUSH data POP r POP m

PUSHF,POPF,PUSHA,POPA

功能:堆棧指令群

格式: PUSHF POPF PUSHA POPA

LEA,LDS,LES

功能: 取地址至寄存器

語法: LEA r,m LDS r,m LES r,m

XLAT(XLATB)

功能:查表指令

語法: XLAT XLAT m

算術運算指令

ADD,ADC

功能: 加法指令

語法: ADD OP1,OP2 ADC OP1,OP2

格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data

影響標志: C,P,A,Z,S,O

SUB,SBB

功能:減法指令

語法: SUB OP1,OP2 SBB OP1,OP2

格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data

影響標志: C,P,A,Z,S,O

INC,DEC

功能: 把OP的值加一或減一

語法: INC OP DEC OP

格式: INC r/m DEC r/m

影響標志: P,A,Z,S,O

NEG

功能: 將OP的符號反相(取二進制補碼)

語法: NEG OP

格式: NEG r/m

影響標志: C,P,A,Z,S,O

MUL,IMUL

功能: 乘法指令

語法: MUL OP IMUL OP

格式: MUL r/m IMUL r/m

影響標志: C,P,A,Z,S,O(僅IMUL會影響S標志)

DIV,IDIV

功能:除法指令

語法: DIV OP IDIV OP

格式: DIV r/m IDIV r/m

CBW,CWD

功能:有符號數擴展指令

語法: CBW CWD

AAA,AAS,AAM,AAD

功能: 非壓BCD碼運算調整指令

語法: AAA AAS AAM AAD

影響標志: A,C(AAA,AAS) S,Z,P(AAM,AAD)

『柒』 CMP指令的指令詳解

cmp(compare)指令進行比較兩個操作數的大小
例:cmpoprd1,oprd2
為第一個操作減去第二個操作數,
但不影響第兩個操作數的值
它影響flag的CF,ZF,OF,AF,PF
我們怎麼判斷大小呢?
若執行指令後
ZF=1 這個簡單,則說明兩個數相等,因為zero為1說明結果為0
當無符號時:

CF=1 則說明了有進位或借位,cmp是進行的減操作,故可以看出為借位,所以,此時oprd1<oprd2
CF=0 則說明了無借位,但此時要注意ZF是否為0,若為0,則說明結果不為0,故此時oprd1>oprd2
當有符號時:
若SF=0,OF=0 則說明了此時的值為正數,沒有溢出,可以直觀的看出,oprd1>oprd2
若SF=1,OF=0 則說明了此時的值為負數,沒有溢出,則為oprd1<oprd2
若SF=0,OF=1 則說明了此時的值為正數,有溢出,可以看出oprd1<oprd2
若SF=1,OF=1則說明了此時的值為負數,有溢出,可以看出oprd1>oprd2
最後兩個可以作出這種判斷的原因是,溢出的本質問題:
兩數同為正,相加,值為負,則說明溢出
兩數同為負,相加,值為正,則說明溢出
故有,正正得負則溢出,負負得正則溢出

『捌』 匯編語言 CMP指令用法

語法:cmp [-c[v][-i <字元數目>][--help][第一個文件][第二個文件]。


參數用法:

-c或–print-chars 除了標明差異處的十進制字碼之外,一並顯示該字元所對應字元。

-i<字元數目>或–ignore-initial=<字元數目> 指定一個數目。

-l或–verbose 標示出所有不一樣的地方。

-s或–quiet或–silent 不顯示錯誤信息。

-v或–version 顯示版本信息。

–help 在線幫助。

(8)cmp命令擴展閱讀:

CMP控制轉移指令類型指令說明

無條件轉移指令 JMP(段間和段內轉移)

條件轉移指令 JZ(結果為0(或相等)則轉移)、JS(結果為負則轉移)、JNS(結果為正則轉移)、JO(溢出則轉移)、JNO(不溢出則轉移)、JP(奇偶位為1則轉移)、JNP(奇偶位為0則轉移)

循環指令 LOOP(循環指令)、LOOPPZ/LOOPE(當為0或相等時循環指令)、LOOPNZ/LOOPNE(當不為0或不相等時循環指令)

子程序指令 CALL(調用指令)、RET(返回指令)

中斷指令INT(中斷)、INTO(如溢出則中斷)、RIET(從中斷返回)

處理機控制指令:

處理機控制指令類型指令說明

標志處理指令 CLC(進位位置0指令)、CMC(進位位求反指令)、STC(進位位置為1指令)、CLD(方向標志置1指令)、STD(方向標志位置1指令)、CLI(中斷標志置0指令)、STI(中斷標志置1指令)

其他處理機控制指令 NOP(無操作)、HLT(停機)、WAIT(等待)、ESC(換碼)

『玖』 cmp的命令是什麼

winver檢查Windows版本
dxdiag檢查DirectX信息
mem.exe顯示內存使用情況
Sndvol32音量控製程序
sfc.exe系統文件檢查器
gpedit.msc 組策略
regedit.exe 注冊表
Msconfig.exe 系統配置實用程序
cmd.exe CMD命令提示符
chkdsk.exe Chkdsk磁碟檢查
mem.exe顯示內存使用情況
gpedit.msc 組策略
regedit.exe 注冊表
Msconfig.exe 系統配置實用程序
cmd.exe CMD命令提示符
services.msc 服務
lusrmgr.msc 本地賬戶管理
drwtsn32 系統醫生
cleanmgr 整理
iexpress 木馬捆綁工具,系統自帶
mmc 控制台
dcpromo 活動目錄安裝
ntbackup 系統備份和還原
rononce -p 15秒關機
taskmgr 任務管理器
conf 啟動netmeeting
devmgmt.msc 設備管理器
diskmgmt.msc NT的磁碟管理器
compmgmt.msc 計算機管理
winchat 區域網聊天
dvdplay DVD播放器
mplayer2 簡易widnows media player
mspaint 畫圖板
nslookup 網路管理的工具
syskey 系統加密,一旦加密就不能解開,保護windows xp系統的雙重密碼
wupdmgr WIDNOWS UPDATE
Clipbrd 剪貼板查看器
Odbcad32 ODBC數據源管理器
Nslookup IP地址偵測器

『拾』 請教下匯編的cmp指令的意思

意思是cmp [eax],0結果如果不相等即標志位ZF=0,則執行jne end語句。

jne是一個條件轉移指令。當ZF=0,轉至標號處執行。

cmp [eax],0的邏輯含義是比較[eax],0。如果執行後:

ZF=1則[eax]=0

ZF=0則[eax]!=0

SF=1則[eax]<0

SF=0則[eax]>=0

SF=0並ZF=0則[eax]>0

SF=1或ZF=1則[eax]<=0

(10)cmp命令擴展閱讀:

CPU在執行cmp指令的時候,也包含兩種含義:進行無符號運算和進行有符號數運算。

cmp ah,bh

如果ah=bh,則ah-bh=0,所以ZF=1

如果ah≠bh,則ah-bh≠0,所以ZF=0

所以根據cmp指令執行後ZF的值,就可以知道兩個數據是否相等。

如果ah<bh則可能發生以下情況

對於有符號數運算,在ah<bh情況下,ah-bh顯然可能引起SF=1既結果為負比如:

ah=1,bh=2則ah-bh=0FFH,0FFH為-1的補碼,因為結果為負,所以SF=1。

ah=0FEH,bx=OFFH;則ax-bx=-2-(-1)=OFFH,因為結果為負,所以SF=1。

閱讀全文

與cmp命令相關的資料

熱點內容
微商授權查詢系統源碼 瀏覽:978
安卓什麼情況沒法建立新工程 瀏覽:217
氣球解壓社區活動 瀏覽:922
話費會員充值源碼 瀏覽:319
郵件接收伺服器叫什麼 瀏覽:529
代理伺服器被限制怎麼辦 瀏覽:234
atompython環境變數 瀏覽:911
記錄程序員 瀏覽:996
javabbs源代碼 瀏覽:231
文件夾命名帶什麼符 瀏覽:966
黑馬程序員全棧 瀏覽:225
萍鄉溯源碼魚膠零售 瀏覽:440
倖存者pdf 瀏覽:556
中國人壽保險app怎麼變更銀行卡號 瀏覽:118
node服務啟動命令 瀏覽:548
自編寶塔線源碼 瀏覽:139
電腦桌面解壓視頻教程 瀏覽:846
安卓手機玩三國戰略為什麼會卡 瀏覽:536
浪潮伺服器怎麼進入啟動項 瀏覽:156
華為當前手機壁紙放在哪個文件夾 瀏覽:446