标签:push div isa rac pre nbsp title unsigned sem
(lldb) disassemble -n comp2 untitled6`comp2: 0x10d065f40 <+0>: pushq %rbp 0x10d065f41 <+1>: movq %rsp, %rbp 0x10d065f44 <+4>: movl %edi, -0x4(%rbp) 0x10d065f47 <+7>: movl %esi, -0x8(%rbp) 0x10d065f4a <+10>: movl -0x4(%rbp), %esi 0x10d065f4d <+13>: cmpl -0x8(%rbp), %esi 0x10d065f50 <+16>: seta %al 0x10d065f53 <+19>: andb $0x1, %al 0x10d065f55 <+21>: movzbl %al, %eax 0x10d065f58 <+24>: popq %rbp 0x10d065f59 <+25>: retq (lldb) disassemble -n comp untitled6`comp: 0x10d065f20 <+0>: pushq %rbp 0x10d065f21 <+1>: movq %rsp, %rbp 0x10d065f24 <+4>: movl %edi, -0x4(%rbp) 0x10d065f27 <+7>: movl %esi, -0x8(%rbp) 0x10d065f2a <+10>: movl -0x4(%rbp), %esi 0x10d065f2d <+13>: cmpl -0x8(%rbp), %esi 0x10d065f30 <+16>: setg %al 0x10d065f33 <+19>: andb $0x1, %al 0x10d065f35 <+21>: movzbl %al, %eax 0x10d065f38 <+24>: popq %rbp 0x10d065f39 <+25>: retq
这个指令相当于 sub 指令,除了它不改变 flag寄存器之外的寄存器
而 sub 因为 在二进制层面上的位操作都是相同的,也就是说, unsigned subtract 和 signed substract 是同时执行的,所以无论 unsigned compare 还是 signed compare 都是使用 comp 指令。
标签:push div isa rac pre nbsp title unsigned sem
原文地址:https://www.cnblogs.com/sky-view/p/9968986.html