操作系统:ubuntu11.10
条件传送指令集包含了许多指令,所有指令都具有如下格式:
cmovx source, destination
其中 x 是一个或者连个字母的代码,表示将触发传送操作的条件。
条件取决于 EFLAGS 寄存器的当前值。
条件传送指令使用的特定位如下:
实例:
-
.section .data
-
output:
-
.asciz "The largest value is %d\n"
-
-
values:
-
.int 105,234,61,315,134,221,53,145,117,5
-
-
.section .text
-
.global _start
-
_start:
-
nop
-
movl values, %ebx
-
movl $1, %edi
-
-
loop:
-
movl values( ,%edi,4), %eax
-
cmp %ebx, %eax
-
cmova %eax, %ebx
-
inc %edi
-
cmp $10, %edi
-
jne loop
-
-
pushl %ebx
-
pushl $output
-
call printf
-
addl $8, %esp
-
pushl $0
-
call exit
结果:
阅读(20862) | 评论(0) | 转发(1) |