組合語言裡jc指令時啥意思JC在組合語言中什麼意思

2021-03-07 10:27:33 字數 3700 閱讀 8905

1樓:天池血崩

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介紹的夠詳細了吧。。。

2樓:匿名使用者

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

跳轉指令分三類:

一、無條件跳** jmp;

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

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

3樓:匿名使用者

jc就是jump if carry

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

4樓:

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

5樓:不亦心

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

6樓:刷帖之神

如果cf=1跳轉到標號處

jc 在組合語言中什麼意思

7樓:胖大海君

jc 在組合語言 是一個

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

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

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

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

8樓:戰雨

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

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

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

9樓:胖大海君

jc 在組合語言 是一

bai個du

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

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

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

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

組合語言裡jc指令是什麼意思?

10樓:天池血崩

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\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 等於

組合語言jc 跳轉條件是cy=1,即第一個數小於第二個數的時候,如果兩數相等呢,滿足此條件麼

12樓:匿名使用者

jc是判斷c標誌,和第一第二個數無關,如果你是用減法做了第一個數減第二個數才行,相等和大於都不滿足跳轉條件。

13樓:匿名使用者

不滿足。

如果第一個數大於或等於第二個數,相減時不需要借位,cf標誌位就不會置1,因而jc指令執行時不會跳轉。

組合語言中st指令什麼意思組合語言中,ST指令什麼意思?

st是store的簡寫,ld是load簡寫,前面一個是寫,後面一個是讀。st是源暫存器 儲存區,ld是儲存區 目的暫存器。字資料傳送指令 ld,st 這是最簡單的資料傳送指令,不用考慮符號位的問題,直接以機器的位長存取資料。ld 從記憶體中取32位字資料放人暫存器,st將暫存器中的32位字資料儲存到...

彙編的ADD指令組合語言中ADD加法指令的問題

為你解答 你使用哪個暫存器啊?就替你選擇使用r5暫存器吧 另外暫存器加1功能 的實現的 最好使用現成的微控制器本身就有的加1指令 inc r5 就可以實現暫存器r5的加1 如果使用 add指令 一條完成不了 add指令必須以累加器a做為目的運算元 需要用到 mov a,r5 add a,1 mov ...

彙編JB指令,組合語言中JB,JA,是什麼意思

jb是指判斷位變數轉移指令,ja jump above 大於則轉移到目標指令執行。jb p1.3,l1意思就是說判斷p1.3的值是不是 1 如果是就跳轉到l1程式執行,如果不是就順序執行下一條指令。jnae jump not above and equal 低於,即不高於且不等於則轉移,但執行這條語...