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...