Jodå det "finns", följande kod:jesse skrev: Rotate finns givetvis inte då "carry" inte existerar i C.
Kod: Markera allt
unsigned char foo(unsigned char bar)
{
bar = (bar << 1) | (bar >> 7);
return bar;
}
Kod: Markera allt
clang -O2 -ccc-host-triple x86_64-unknown-linux-gnu -c rol.c -S -o -
Kod: Markera allt
.file "rol.c"
.text
.globl foo
.align 16, 0x90
.type foo,@function
foo: # @foo
.cfi_startproc
# BB#0: # %entry
rolb %dil
movzbl %dil, %eax
ret
.Ltmp0:
.size foo, .Ltmp0-foo
.cfi_endproc
.section ".note.GNU-stack","",@progbits