Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .text
- .global bitrev
- .type bitrev, @function
- bitrev:
- mov %rdi,%rax //num = rax = rdi
- xor %rbx,%rbx
- neg %rbx //mask = rbx
- mov $0x40,%rsi //s = rsi
- while:
- mov %rbx,%rcx //mask = rbx = rcx
- sal %rsi,%rbx
- xor %rcx,%rbx // mask ^ (mask << s)
- mov %rbx,%rcx // mask = rbx
- neg %rcx // ~mask = rcx
- sar %rsi,%rdi // num >> s
- and %rcx,%rdi //mask & (num >> s)
- sal %rsi,%rax
- and %rcx,%rax
- or %rdi,%rax
- mov %rax,%rdi
- sar %rsi // s = s/2
- jge while
- ret
- .size bitrev, .-bitrev
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement