AT A 條件轉移cmp jxx

2021-10-10 07:29:25 字數 835 閱讀 2429

cmp 命令如下所示:

cmp operand1, operand2
cmp指令比較第二個操作和第乙個操作。cmp 執行operand2-operand1的減法操作。

在這個點上,gnu 彙編和intel彙編的operator的操作是相反的。intel彙編是執行operand1-operand2的減法操作。

看下面這個例子:

.code32

.section .text

.globl _start

_start:

nopmovl $15,%eax

movl $10,%ebx

cmp %eax,%ebx

jge greater

movl $1,%eax

int $0x80

greater:

movl $20,%ebx

movl $1,%eax

int $0x80

上述程式首先將立即數15賦值給eax暫存器,然後將立即數10賦值給ebx暫存器。

然後使用cmp指令對兩個暫存器進行比較。使用jge指令實現條件跳轉。

cmp  %eax,%ebx

jge greater

因為ebx暫存器的值小於eax暫存器的值,jge是如果大於等於就跳轉,因此跳轉的條件並不成立,因此往下執行,將立即數1賦值給eax暫存器,然後執行linux退出的系統呼叫。

執行程式並列印程式返回碼如下:

$ ./cmptest 

$ echo $?

10

彙編 JCXZ條件轉移指令

jcxz j jmp cx cx暫存器 z zero 當cx暫存器中的值為0時,進行跳轉 jcxz指令與loop指令正好相反.loop指令 當cx暫存器的值不等於0時,才進行跳轉.所有的條件轉移指令都是短轉移,位移範圍是 128 127 經過編譯後,機器碼中包含了位移的範圍。ebxx,xx就是轉移的...

170420 彙編 其他條件轉移指令

1625 5 王子昂 總結 2017年4月20日 連續第201天總結 a.彙編第十一章90 b.檢測比較結果的條件轉移指令 轉移指的是它能夠修改ip 條件指的是它可以根據某種條件決定是否修改ip 比如jcxz就是乙個條件轉移指令,檢測cx中的值是否為0,決定是否轉移至標號處 除此以外,大多數條件轉移...

8086條件轉移指令JNE,JNZ

jnz jne 指令格式 轉移條件 說明 jnz jne 標號 zf 0 不等於0或不相等轉移 code segment assume cs code mov ax,5 mov bx,2 cmp ax,bx 兩數比較 不相等則轉移 jne ok iout mov ax,4c00h int 21h o...