組合語言裡jc指令是什麼意思,組合語言裡jc指令時啥意思

2021-03-03 22:01:58 字數 3605 閱讀 3712

1樓:天池血崩

jc=jump if carry

當運算產生進位標誌時,即cf=1時,跳轉到目標程式處。e69da5e6ba9062616964757a686964616f31333363396462

例如:add al,bl

jc carrybit

inc al;如果al+bl產生了進位,這一句就不執行了。

carrybit:

neg al

這段程式沒有任何意義,僅僅作為示例哈。。。

相同的指令還有:

jnc,當cf=0時跳轉;

jz,當zf=1時跳轉,jnz,當zf=0時跳轉;

jo,當of=1時跳轉,jno,當of=0時跳轉;

jp,當pf=1時跳轉......

依此類推,標誌暫存器的各個位基本上都可以用來做「條件跳轉」的條件。

當然,條件跳轉不僅僅是標誌暫存器位,還可以是cx如:a_loop:

;do something

dec cx

jcxz

jmp a_loop

可以看出,這一段相當於一個loop指令。。。

還有,用於大小判斷型的:

cmp op1,op2

jxx ***x

其中jxx有以下幾種:

ja表示op1>op2,jna表示op1<=op2;

jb表示op1=op2;

je表示op1=op2,jne表示op1<>op2;

還有jae、jnae、jbe、jnbe等等功能重複不再贅述。

以上是無符號數的比較。

有符號數的比較將a換成g,將b換成l即可。

a=above b=below g=greater l=less介紹的夠詳細了吧。。。

組合語言裡jc指令時啥意思

2樓:天池血崩

jc=jump if carry

當運算產生進位標誌時,即cf=1時,跳轉到目標程式處。

例如:add al,bl

jc carrybit

inc al;如果al+bl產生了進位,這一句就不執行了。

carrybit:

neg al

這段程式沒有任何意義,僅僅作為示例哈。。。

相同的指令還有:

jnc,當cf=0時跳轉;

jz,當zf=1時跳轉,jnz,當zf=0時跳轉;

jo,當of=1時跳轉,jno,當of=0時跳轉;

jp,當pf=1時跳轉......

依此類推,標誌暫存器的各個位基本上都可以用來做「條件跳轉」的條件。

當然,條件跳轉不僅僅是標誌暫存器位,還可以是cx如:a_loop:

;do something

dec cx

jcxz

jmp a_loop

可以看出,這一段相當於一個loop指令。。。

還有,用於大小判斷型的:

cmp op1,op2

jxx ***x

其中jxx有以下幾種:

ja表示op1>op2,jna表示op1<=op2;

jb表示op1=op2;

je表示op1=op2,jne表示op1<>op2;

還有jae、jnae、jbe、jnbe等等功能重複不再贅述。

以上是無符號數的比較。

有符號數的比較將a換成g,將b換成l即可。

a=above b=below g=greater l=less介紹的夠詳細了吧。。。

3樓:匿名使用者

組合語言裡jc是進位則跳轉指令;

跳轉指令分三類:

一、無條件跳** jmp;

二、根據 cx、ecx 暫存器的值跳** jcxz(cx 為 0 則跳轉)、jecxz(ecx 為 0 則跳轉);

三、根據 eflags 暫存器的標誌位跳轉。

4樓:匿名使用者

jc就是jump if carry

如果發生進位則跳轉,由標誌暫存器cf標誌位來判斷

5樓:

jc是一個單測試條件轉移指令,轉移條件為cf=1

6樓:不亦心

jc address 加/減法出現進/借位是就跳轉到address,否者順序執行

7樓:刷帖之神

如果cf=1跳轉到標號處

jc 在組合語言中什麼意思

8樓:胖大海君

jc 在組合語言 是一個

條件轉移指令的操作碼 後面應該再加上一個位元組的偏移量 即要轉移到地址(為運算元)

例如 jc llla ;其中 jc 為操作碼 表示指令要執行的功能

j 表示轉移 c表示轉移到條件 (當進位標誌c=1 即有進位時 轉移 否則不轉移)

llla 是運算元 表示要轉移到地址

9樓:戰雨

上一條cmp語句,左側數小於等於右側數則跳轉

下面兩個回答,答非所問或者答錯了

「jc」在組合語言中是什麼意思?

10樓:胖大海君

jc 在組合語言 是一

bai個du

條件轉移指令的操作碼zhi 後面應該再加上dao一個位元組的版偏移量 即要轉移權到地址(為運算元)

例如 jc llla ;其中 jc 為操作碼 表示指令要執行的功能

j 表示轉移 c表示轉移到條件 (當進位標誌c=1 即有進位時 轉移 否則不轉移)

llla 是運算元 表示要轉移到地址

組合語言裡jc\jnc\jb\jnb\jz\jnz的問題

11樓:匿名使用者

jc : jump if carry (有進位、即cf=1,則跳轉)

jb : jump if below (低於則跳轉)ja : jump if above (高於則跳轉)jnz:jump if not zero (不為零、即zf≠1,則跳轉)

jnge :jump if not greater or equal(不大於等於則跳轉)= jl :jump if less than (小於則跳轉)

***************

指令中字元的含義:

單個標誌位:

c: cf

s: sf

z: zf

o: of

p: pf

無符號數比較:

a: above 高於

b: below 低於

e: equal 等於

有符號數比較:

g: greater 大於

l: less 小於

e: equal 等於

組合語言rlc和jc

12樓:匿名使用者

不是的,只有在運算指令中才會產生進位的,a的資料移動式不會產生進位的

13樓:匿名使用者

是否進位還要看a的最高位是1還是0

組合語言這句指令是什麼意思STRING1 DB 4040 DUP

這樣一種定義是在dos功能呼叫 10號功能 中使用,10號功能是字串輸入,現在這樣定義,第一個40表示字串輸入最大字元數,後面是用?表示實際輸入的個數,字串輸入是以回車作為結束符,所以按完回車後會自動統計字元的個數,這個個數就放在第二個單元,後面的40就是開了40個空間,依次存放按下的鍵值 放在裡面...

組合語言堆疊段是什麼意思,組合語言的堆疊段是什麼意思

在記憶體開出的,先進後出的一段儲存區域。因為資料的存放象碼貨一樣,所以叫堆疊。進入山洞去探險,重要的是要 記住 走過的路。記在腦子裡,或者寫在內紙上,都可以。這就是容堆疊段。這些記憶,進洞時,順次記住,出洞,順次想起。組合語言堆疊段是什麼意思?在堆疊段裡面,就是儲存一些 記錄 的地方。專有一個 堆疊...

組合語言中db是什麼意思,組合語言中DB是什麼意思?

db作為組合語言中的偽操作命令,它用來定義運算元佔用的位元組數。表示式中可包含符號 字串 或表示式等項,各個項之間用逗號隔開,字串應用引號括起來。括號內的標號是可選項,如果使用了標號。db的作用 在這裡b是byte的縮寫,即位元組,所以,該偽操作所定義的每個運算元佔有1個位元組 8位 如 1mess...