qemu QEMU_OPTION_d

博客展示了QEMU AArch64的相关汇编代码,包含PROLOGUE、IN、OP、OUT等部分,涉及寄存器操作、跳转指令、函数调用等内容,最后显示QEMU已终止,反映了在Linux环境下的操作情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

./aarch64-softmmu/qemu-system-aarch64 -machine virt -cpu cortex-a57 -m 1024M -kernel ./vmlinux -nographic -d out_asm,in_asm,op
PROLOGUE: [size=45]
0x7f4bb7d5a000:  55                       pushq    %rbp
0x7f4bb7d5a001:  53                       pushq    %rbx
0x7f4bb7d5a002:  41 54                    pushq    %r12
0x7f4bb7d5a004:  41 55                    pushq    %r13
0x7f4bb7d5a006:  41 56                    pushq    %r14
0x7f4bb7d5a008:  41 57                    pushq    %r15
0x7f4bb7d5a00a:  48 8b ef                 movq     %rdi, %rbp
0x7f4bb7d5a00d:  48 81 c4 78 fb ff ff     addq     $-0x488, %rsp
0x7f4bb7d5a014:  ff e6                    jmpq     *%rsi
0x7f4bb7d5a016:  33 c0                    xorl     %eax, %eax
0x7f4bb7d5a018:  48 81 c4 88 04 00 00     addq     $0x488, %rsp
0x7f4bb7d5a01f:  c5 f8 77                 vzeroupper
0x7f4bb7d5a022:  41 5f                    popq     %r15
0x7f4bb7d5a024:  41 5e                    popq     %r14
0x7f4bb7d5a026:  41 5d                    popq     %r13
0x7f4bb7d5a028:  41 5c                    popq     %r12
0x7f4bb7d5a02a:  5b                       popq     %rbx
0x7f4bb7d5a02b:  5d                       popq     %rbp
0x7f4bb7d5a02c:  c3                       retq

----------------
IN:
0x00100000:  d53b4220  mrs      x0, daif
0x00100004:  b27a0c00  orr      x0, x0, #0x3c0
0x00100008:  d51b4220  msr      daif, x0

OP:
 ld_i32 tmp0,env,$0xfffffffffffffff0
 movi_i32 tmp1,$0x0
 brcond_i32 tmp0,tmp1,lt,$L0

 ---- 0000000000100000 0000000000000000 0000000000000000
 movi_i64 pc,$0x100000
 movi_i64 tmp2,$0x55f5b1718f40
 movi_i32 tmp0,$0x6232d005
 movi_i32 tmp1,$0x1
 call access_check_cp_reg,$0x0,$0,env,tmp2,tmp0,tmp1
 ld_i64 x0,env,$0x230

 ---- 0000000000100004 0000000000000000 0000000000000000
 movi_i64 tmp2,$0x3c0
 or_i64 x0,x0,tmp2

 ---- 0000000000100008 0000000000000000 0000000000000000
 movi_i64 pc,$0x100008
 movi_i64 tmp2,$0x55f5b1718f40
 movi_i32 tmp0,$0x6232d004
 movi_i32 tmp1,$0x0
 call access_check_cp_reg,$0x0,$0,env,tmp2,tmp0,tmp1
 movi_i64 tmp2,$0x55f5b1718f40
 call set_cp_reg64,$0x0,$0,env,tmp2,x0
 movi_i32 tmp0,$0x1
 call rebuild_hflags_a64,$0x1,$0,env,tmp0
 movi_i64 pc,$0x10000c
 exit_tb $0x0
 set_label $L0
 exit_tb $0x7f4bb7d5a043

OUT: [size=200]
0x7f4bb7d5a100:  8b 5d f0                 movl     -0x10(%rbp), %ebx
0x7f4bb7d5a103:  85 db                    testl    %ebx, %ebx
0x7f4bb7d5a105:  0f 8c 94 00 00 00        jl       0x7f4bb7d5a19f
0x7f4bb7d5a10b:  48 c7 85 40 01 00 00 00  movq     $0x100000, 0x140(%rbp)
0x7f4bb7d5a113:  00 10 00
0x7f4bb7d5a116:  48 8b fd                 movq     %rbp, %rdi
0x7f4bb7d5a119:  48 be 40 8f 71 b1 f5 55  movabsq  $0x55f5b1718f40, %rsi
0x7f4bb7d5a121:  00 00
0x7f4bb7d5a123:  ba 05 d0 32 62           movl     $0x6232d005, %edx
0x7f4bb7d5a128:  b9 01 00 00 00           movl     $1, %ecx
0x7f4bb7d5a12d:  ff 15 8d 00 00 00        callq    *0x8d(%rip)
0x7f4bb7d5a133:  48 8b 9d 30 02 00 00     movq     0x230(%rbp), %rbx
0x7f4bb7d5a13a:  48 81 cb c0 03 00 00     orq      $0x3c0, %rbx
0x7f4bb7d5a141:  48 89 5d 40              movq     %rbx, 0x40(%rbp)
0x7f4bb7d5a145:  48 c7 85 40 01 00 00 08  movq     $0x100008, 0x140(%rbp)
0x7f4bb7d5a14d:  00 10 00
0x7f4bb7d5a150:  48 8b fd                 movq     %rbp, %rdi
0x7f4bb7d5a153:  48 be 40 8f 71 b1 f5 55  movabsq  $0x55f5b1718f40, %rsi
0x7f4bb7d5a15b:  00 00
0x7f4bb7d5a15d:  ba 04 d0 32 62           movl     $0x6232d004, %edx
0x7f4bb7d5a162:  33 c9                    xorl     %ecx, %ecx
0x7f4bb7d5a164:  ff 15 56 00 00 00        callq    *0x56(%rip)
0x7f4bb7d5a16a:  48 8b fd                 movq     %rbp, %rdi
0x7f4bb7d5a16d:  48 be 40 8f 71 b1 f5 55  movabsq  $0x55f5b1718f40, %rsi
0x7f4bb7d5a175:  00 00
0x7f4bb7d5a177:  48 8b 55 40              movq     0x40(%rbp), %rdx
0x7f4bb7d5a17b:  ff 15 37 00 00 00        callq    *0x37(%rip)
0x7f4bb7d5a181:  48 8b fd                 movq     %rbp, %rdi
0x7f4bb7d5a184:  be 01 00 00 00           movl     $1, %esi
0x7f4bb7d5a189:  ff 15 21 00 00 00        callq    *0x21(%rip)
0x7f4bb7d5a18f:  48 c7 85 40 01 00 00 0c  movq     $0x10000c, 0x140(%rbp)
0x7f4bb7d5a197:  00 10 00
0x7f4bb7d5a19a:  e9 77 fe ff ff           jmp      0x7f4bb7d5a016
0x7f4bb7d5a19f:  48 8d 05 9d fe ff ff     leaq     -0x163(%rip), %rax
0x7f4bb7d5a1a6:  e9 6d fe ff ff           jmp      0x7f4bb7d5a018
0x7f4bb7d5a1ab:  90                       nop
0x7f4bb7d5a1ac:  90                       nop
0x7f4bb7d5a1ad:  90                       nop
0x7f4bb7d5a1ae:  90                       nop
0x7f4bb7d5a1af:  90                       nop
0x7f4bb7d5a1b0:  .quad  0x000055f5afad1f84
0x7f4bb7d5a1b8:  .quad  0x000055f5afb3716c
0x7f4bb7d5a1c0:  .quad  0x000055f5afb36e56

----------------
IN:
0x0010000c:  58000121  ldr      x1, #0x100030
0x00100010:  9100003f  mov      sp, x1
0x00100014:  58000120  ldr      x0, #0x100038
0x00100018:  58000141  ldr      x1, #0x100040
0x0010001c:  b4000081  cbz      x1, #0x10002c

OP:
 ld_i32 tmp0,env,$0xfffffffffffffff0
 movi_i32 tmp1,$0x0
 brcond_i32 tmp0,tmp1,lt,$L0

 ---- 000000000010000c 0000000000000000 0000000000000f06
 movi_i64 tmp2,$0x100030
 qemu_ld_i64 x1,tmp2,leq,1

 ---- 0000000000100010 0000000000000000 0000000000000000
 mov_i64 tmp2,x1
 mov_i64 sp,tmp2

 ---- 0000000000100014 0000000000000000 0000000000000f02
 movi_i64 tmp2,$0x100038
 qemu_ld_i64 x0,tmp2,leq,1

 ---- 0000000000100018 0000000000000000 0000000000000f06
 movi_i64 tmp2,$0x100040
 qemu_ld_i64 x1,tmp2,leq,1

 ---- 000000000010001c 0000000000000000 0000000000000000
 mov_i64 tmp2,x1
 movi_i64 tmp3,$0x0
 brcond_i64 tmp2,tmp3,eq,$L1
 goto_tb $0x0
 movi_i64 pc,$0x100020
 exit_tb $0x7f4bb7d5a200
 set_label $L1
 goto_tb $0x1
 movi_i64 pc,$0x10002c
 exit_tb $0x7f4bb7d5a201
 set_label $L0
 exit_tb $0x7f4bb7d5a203

OUT: [size=360]
0x7f4bb7d5a2c0:  8b 5d f0                 movl     -0x10(%rbp), %ebx
0x7f4bb7d5a2c3:  85 db                    testl    %ebx, %ebx
0x7f4bb7d5a2c5:  0f 8c ec 00 00 00        jl       0x7f4bb7d5a3b7
0x7f4bb7d5a2cb:  bb 30 00 10 00           movl     $0x100030, %ebx
0x7f4bb7d5a2d0:  48 8b fb                 movq     %rbx, %rdi
0x7f4bb7d5a2d3:  48 c1 ef 07              shrq     $7, %rdi
0x7f4bb7d5a2d7:  48 23 7d 80              andq     -0x80(%rbp), %rdi
0x7f4bb7d5a2db:  48 03 7d 88              addq     -0x78(%rbp), %rdi
0x7f4bb7d5a2df:  48 8d 73 07              leaq     7(%rbx), %rsi
0x7f4bb7d5a2e3:  48 81 e6 00 f0 ff ff     andq     $0xfffff000, %rsi
0x7f4bb7d5a2ea:  48 3b 37                 cmpq     (%rdi), %rsi
0x7f4bb7d5a2ed:  48 8b f3                 movq     %rbx, %rsi
0x7f4bb7d5a2f0:  0f 85 cd 00 00 00        jne      0x7f4bb7d5a3c3
0x7f4bb7d5a2f6:  48 03 77 18              addq     0x18(%rdi), %rsi
0x7f4bb7d5a2fa:  48 8b 1e                 movq     (%rsi), %rbx
0x7f4bb7d5a2fd:  48 89 5d 48              movq     %rbx, 0x48(%rbp)
0x7f4bb7d5a301:  48 89 9d 38 01 00 00     movq     %rbx, 0x138(%rbp)
0x7f4bb7d5a308:  bb 38 00 10 00           movl     $0x100038, %ebx
0x7f4bb7d5a30d:  48 8b fb                 movq     %rbx, %rdi
0x7f4bb7d5a310:  48 c1 ef 07              shrq     $7, %rdi
0x7f4bb7d5a314:  48 23 7d 80              andq     -0x80(%rbp), %rdi
0x7f4bb7d5a318:  48 03 7d 88              addq     -0x78(%rbp), %rdi
0x7f4bb7d5a31c:  48 8d 73 07              leaq     7(%rbx), %rsi
0x7f4bb7d5a320:  48 81 e6 00 f0 ff ff     andq     $0xfffff000, %rsi
0x7f4bb7d5a327:  48 3b 37                 cmpq     (%rdi), %rsi
0x7f4bb7d5a32a:  48 8b f3                 movq     %rbx, %rsi
0x7f4bb7d5a32d:  0f 85 ad 00 00 00        jne      0x7f4bb7d5a3e0
0x7f4bb7d5a333:  48 03 77 18              addq     0x18(%rdi), %rsi
0x7f4bb7d5a337:  48 8b 1e                 movq     (%rsi), %rbx
0x7f4bb7d5a33a:  48 89 5d 40              movq     %rbx, 0x40(%rbp)
0x7f4bb7d5a33e:  bb 40 00 10 00           movl     $0x100040, %ebx
0x7f4bb7d5a343:  48 8b fb                 movq     %rbx, %rdi
0x7f4bb7d5a346:  48 c1 ef 07              shrq     $7, %rdi
0x7f4bb7d5a34a:  48 23 7d 80              andq     -0x80(%rbp), %rdi
0x7f4bb7d5a34e:  48 03 7d 88              addq     -0x78(%rbp), %rdi
0x7f4bb7d5a352:  48 8d 73 07              leaq     7(%rbx), %rsi
0x7f4bb7d5a356:  48 81 e6 00 f0 ff ff     andq     $0xfffff000, %rsi
0x7f4bb7d5a35d:  48 3b 37                 cmpq     (%rdi), %rsi
0x7f4bb7d5a360:  48 8b f3                 movq     %rbx, %rsi
0x7f4bb7d5a363:  0f 85 94 00 00 00        jne      0x7f4bb7d5a3fd
0x7f4bb7d5a369:  48 03 77 18              addq     0x18(%rdi), %rsi
0x7f4bb7d5a36d:  48 8b 1e                 movq     (%rsi), %rbx
0x7f4bb7d5a370:  48 89 5d 48              movq     %rbx, 0x48(%rbp)
0x7f4bb7d5a374:  48 85 db                 testq    %rbx, %rbx
0x7f4bb7d5a377:  0f 84 1e 00 00 00        je       0x7f4bb7d5a39b
0x7f4bb7d5a37d:  66 90                    nop
0x7f4bb7d5a37f:  e9 00 00 00 00           jmp      0x7f4bb7d5a384
0x7f4bb7d5a384:  48 c7 85 40 01 00 00 20  movq     $0x100020, 0x140(%rbp)
0x7f4bb7d5a38c:  00 10 00
0x7f4bb7d5a38f:  48 8d 05 6a fe ff ff     leaq     -0x196(%rip), %rax
0x7f4bb7d5a396:  e9 7d fc ff ff           jmp      0x7f4bb7d5a018
0x7f4bb7d5a39b:  e9 00 00 00 00           jmp      0x7f4bb7d5a3a0
0x7f4bb7d5a3a0:  48 c7 85 40 01 00 00 2c  movq     $0x10002c, 0x140(%rbp)
0x7f4bb7d5a3a8:  00 10 00
0x7f4bb7d5a3ab:  48 8d 05 4f fe ff ff     leaq     -0x1b1(%rip), %rax
0x7f4bb7d5a3b2:  e9 61 fc ff ff           jmp      0x7f4bb7d5a018
0x7f4bb7d5a3b7:  48 8d 05 45 fe ff ff     leaq     -0x1bb(%rip), %rax
0x7f4bb7d5a3be:  e9 55 fc ff ff           jmp      0x7f4bb7d5a018
0x7f4bb7d5a3c3:  48 8b fd                 movq     %rbp, %rdi
0x7f4bb7d5a3c6:  ba 31 00 00 00           movl     $0x31, %edx
0x7f4bb7d5a3cb:  48 8d 0d 2b ff ff ff     leaq     -0xd5(%rip), %rcx
0x7f4bb7d5a3d2:  ff 15 48 00 00 00        callq    *0x48(%rip)
0x7f4bb7d5a3d8:  48 8b d8                 movq     %rax, %rbx
0x7f4bb7d5a3db:  e9 1d ff ff ff           jmp      0x7f4bb7d5a2fd
0x7f4bb7d5a3e0:  48 8b fd                 movq     %rbp, %rdi
0x7f4bb7d5a3e3:  ba 31 00 00 00           movl     $0x31, %edx
0x7f4bb7d5a3e8:  48 8d 0d 4b ff ff ff     leaq     -0xb5(%rip), %rcx
0x7f4bb7d5a3ef:  ff 15 2b 00 00 00        callq    *0x2b(%rip)
0x7f4bb7d5a3f5:  48 8b d8                 movq     %rax, %rbx
0x7f4bb7d5a3f8:  e9 3d ff ff ff           jmp      0x7f4bb7d5a33a
0x7f4bb7d5a3fd:  48 8b fd                 movq     %rbp, %rdi
0x7f4bb7d5a400:  ba 31 00 00 00           movl     $0x31, %edx
0x7f4bb7d5a405:  48 8d 0d 64 ff ff ff     leaq     -0x9c(%rip), %rcx
0x7f4bb7d5a40c:  ff 15 0e 00 00 00        callq    *0xe(%rip)
0x7f4bb7d5a412:  48 8b d8                 movq     %rax, %rbx
0x7f4bb7d5a415:  e9 56 ff ff ff           jmp      0x7f4bb7d5a370
0x7f4bb7d5a41a:  90                       nop
0x7f4bb7d5a41b:  90                       nop
0x7f4bb7d5a41c:  90                       nop
0x7f4bb7d5a41d:  90                       nop
0x7f4bb7d5a41e:  90                       nop
0x7f4bb7d5a41f:  90                       nop
0x7f4bb7d5a420:  .quad  0x000055f5af961242

----------------
IN:
0x0010002c:  94000015  bl       #0x100080

OP:
 ld_i32 tmp0,env,$0xfffffffffffffff0
 movi_i32 tmp1,$0x0
 brcond_i32 tmp0,tmp1,lt,$L0

 ---- 000000000010002c 0000000000000000 0000000000000000
 movi_i64 lr,$0x100030
 goto_tb $0x0
 movi_i64 pc,$0x100080
 exit_tb $0x7f4bb7d5a480
 set_label $L0
 exit_tb $0x7f4bb7d5a483

OUT: [size=63]
0x7f4bb7d5a540:  8b 5d f0                 movl     -0x10(%rbp), %ebx
0x7f4bb7d5a543:  85 db                    testl    %ebx, %ebx
0x7f4bb7d5a545:  0f 8c 28 00 00 00        jl       0x7f4bb7d5a573
0x7f4bb7d5a54b:  48 c7 85 30 01 00 00 30  movq     $0x100030, 0x130(%rbp)
0x7f4bb7d5a553:  00 10 00
0x7f4bb7d5a556:  90                       nop
0x7f4bb7d5a557:  e9 00 00 00 00           jmp      0x7f4bb7d5a55c
0x7f4bb7d5a55c:  48 c7 85 40 01 00 00 80  movq     $0x100080, 0x140(%rbp)
0x7f4bb7d5a564:  00 10 00
0x7f4bb7d5a567:  48 8d 05 12 ff ff ff     leaq     -0xee(%rip), %rax
0x7f4bb7d5a56e:  e9 a5 fa ff ff           jmp      0x7f4bb7d5a018
0x7f4bb7d5a573:  48 8d 05 09 ff ff ff     leaq     -0xf7(%rip), %rax
0x7f4bb7d5a57a:  e9 99 fa ff ff           jmp      0x7f4bb7d5a018

----------------
IN: kernel_main
0x00100080:  b0000001  adrp     x1, #0x101000
0x00100084:  91000421  add      x1, x1, #1
0x00100088:  52800d00  movz     w0, #0x68
0x0010008c:  d2a12002  movz     x2, #0x900, lsl #16
0x00100090:  92401c00  and      x0, x0, #0xff
0x00100094:  f9000040  str      x0, [x2]
0x00100098:  38401420  ldrb     w0, [x1], #1
0x0010009c:  35ffffa0  cbnz     w0, #0x100090

OP:
 ld_i32 tmp0,env,$0xfffffffffffffff0
 movi_i32 tmp1,$0x0
 brcond_i32 tmp0,tmp1,lt,$L0

 ---- 0000000000100080 0000000000000000 0000000000000000
 movi_i64 x1,$0x101000

 ---- 0000000000100084 0000000000000000 0000000000000000
 movi_i64 tmp3,$0x1
 add_i64 tmp2,x1,tmp3
 mov_i64 x1,tmp2

 ---- 0000000000100088 0000000000000000 0000000000000000
 movi_i64 x0,$0x68

 ---- 000000000010008c 0000000000000000 0000000000000000
 movi_i64 x2,$0x9000000

 ---- 0000000000100090 0000000000000000 0000000000000000
 ext8u_i64 x0,x0

 ---- 0000000000100094 0000000000000000 0000000000000f02
 mov_i64 tmp2,x2
 mov_i64 tmp3,tmp2
 qemu_st_i64 x0,tmp3,leq,1

 ---- 0000000000100098 0000000000000000 0000000000000c00
 mov_i64 tmp2,x1
 mov_i64 tmp3,tmp2
 qemu_ld_i64 x0,tmp3,ub,1
 movi_i64 tmp4,$0x1
 add_i64 tmp2,tmp2,tmp4
 mov_i64 x1,tmp2

 ---- 000000000010009c 0000000000000000 0000000000000000
 ext32u_i64 tmp2,x0
 movi_i64 tmp3,$0x0
 brcond_i64 tmp2,tmp3,ne,$L1
 goto_tb $0x0
 movi_i64 pc,$0x1000a0
 exit_tb $0x7f4bb7d5a5c0
 set_label $L1
 goto_tb $0x1
 movi_i64 pc,$0x100090
 exit_tb $0x7f4bb7d5a5c1
 set_label $L0
 exit_tb $0x7f4bb7d5a5c3

OUT: [size=296]
0x7f4bb7d5a680:  8b 5d f0                 movl     -0x10(%rbp), %ebx
0x7f4bb7d5a683:  85 db                    testl    %ebx, %ebx
0x7f4bb7d5a685:  0f 8c c4 00 00 00        jl       0x7f4bb7d5a74f
0x7f4bb7d5a68b:  bb 01 10 10 00           movl     $0x101001, %ebx
0x7f4bb7d5a690:  48 89 5d 48              movq     %rbx, 0x48(%rbp)
0x7f4bb7d5a694:  41 bc 68 00 00 00        movl     $0x68, %r12d
0x7f4bb7d5a69a:  4c 89 65 40              movq     %r12, 0x40(%rbp)
0x7f4bb7d5a69e:  41 bd 00 00 00 09        movl     $0x9000000, %r13d
0x7f4bb7d5a6a4:  4c 89 6d 50              movq     %r13, 0x50(%rbp)
0x7f4bb7d5a6a8:  49 8b fd                 movq     %r13, %rdi
0x7f4bb7d5a6ab:  48 c1 ef 07              shrq     $7, %rdi
0x7f4bb7d5a6af:  48 23 7d 80              andq     -0x80(%rbp), %rdi
0x7f4bb7d5a6b3:  48 03 7d 88              addq     -0x78(%rbp), %rdi
0x7f4bb7d5a6b7:  49 8d 75 07              leaq     7(%r13), %rsi
0x7f4bb7d5a6bb:  48 81 e6 00 f0 ff ff     andq     $0xfffff000, %rsi
0x7f4bb7d5a6c2:  48 3b 77 08              cmpq     8(%rdi), %rsi
0x7f4bb7d5a6c6:  49 8b f5                 movq     %r13, %rsi
0x7f4bb7d5a6c9:  0f 85 8c 00 00 00        jne      0x7f4bb7d5a75b
0x7f4bb7d5a6cf:  48 03 77 18              addq     0x18(%rdi), %rsi
0x7f4bb7d5a6d3:  4c 89 26                 movq     %r12, (%rsi)
0x7f4bb7d5a6d6:  48 8b fb                 movq     %rbx, %rdi
0x7f4bb7d5a6d9:  48 c1 ef 07              shrq     $7, %rdi
0x7f4bb7d5a6dd:  48 23 7d 80              andq     -0x80(%rbp), %rdi
0x7f4bb7d5a6e1:  48 03 7d 88              addq     -0x78(%rbp), %rdi
0x7f4bb7d5a6e5:  48 8b f3                 movq     %rbx, %rsi
0x7f4bb7d5a6e8:  48 81 e6 00 f0 ff ff     andq     $0xfffff000, %rsi
0x7f4bb7d5a6ef:  48 3b 37                 cmpq     (%rdi), %rsi
0x7f4bb7d5a6f2:  48 8b f3                 movq     %rbx, %rsi
0x7f4bb7d5a6f5:  0f 85 7a 00 00 00        jne      0x7f4bb7d5a775
0x7f4bb7d5a6fb:  48 03 77 18              addq     0x18(%rdi), %rsi
0x7f4bb7d5a6ff:  0f b6 1e                 movzbl   (%rsi), %ebx
0x7f4bb7d5a702:  48 89 5d 40              movq     %rbx, 0x40(%rbp)
0x7f4bb7d5a706:  48 c7 45 48 02 10 10 00  movq     $0x101002, 0x48(%rbp)
0x7f4bb7d5a70e:  48 85 db                 testq    %rbx, %rbx
0x7f4bb7d5a711:  0f 85 1c 00 00 00        jne      0x7f4bb7d5a733
0x7f4bb7d5a717:  e9 00 00 00 00           jmp      0x7f4bb7d5a71c
0x7f4bb7d5a71c:  48 c7 85 40 01 00 00 a0  movq     $0x1000a0, 0x140(%rbp)
0x7f4bb7d5a724:  00 10 00
0x7f4bb7d5a727:  48 8d 05 92 fe ff ff     leaq     -0x16e(%rip), %rax
0x7f4bb7d5a72e:  e9 e5 f8 ff ff           jmp      0x7f4bb7d5a018
0x7f4bb7d5a733:  e9 00 00 00 00           jmp      0x7f4bb7d5a738
0x7f4bb7d5a738:  48 c7 85 40 01 00 00 90  movq     $0x100090, 0x140(%rbp)
0x7f4bb7d5a740:  00 10 00
0x7f4bb7d5a743:  48 8d 05 77 fe ff ff     leaq     -0x189(%rip), %rax
0x7f4bb7d5a74a:  e9 c9 f8 ff ff           jmp      0x7f4bb7d5a018
0x7f4bb7d5a74f:  48 8d 05 6d fe ff ff     leaq     -0x193(%rip), %rax
0x7f4bb7d5a756:  e9 bd f8 ff ff           jmp      0x7f4bb7d5a018
0x7f4bb7d5a75b:  48 8b fd                 movq     %rbp, %rdi
0x7f4bb7d5a75e:  49 8b d4                 movq     %r12, %rdx
0x7f4bb7d5a761:  b9 31 00 00 00           movl     $0x31, %ecx
0x7f4bb7d5a766:  4c 8d 05 69 ff ff ff     leaq     -0x97(%rip), %r8
0x7f4bb7d5a76d:  41 50                    pushq    %r8
0x7f4bb7d5a76f:  ff 25 2b 00 00 00        jmpq     *0x2b(%rip)
0x7f4bb7d5a775:  48 8b fd                 movq     %rbp, %rdi
0x7f4bb7d5a778:  ba 01 00 00 00           movl     $1, %edx
0x7f4bb7d5a77d:  48 8d 0d 7e ff ff ff     leaq     -0x82(%rip), %rcx
0x7f4bb7d5a784:  ff 15 0e 00 00 00        callq    *0xe(%rip)
0x7f4bb7d5a78a:  8b d8                    movl     %eax, %ebx
0x7f4bb7d5a78c:  e9 71 ff ff ff           jmp      0x7f4bb7d5a702
0x7f4bb7d5a791:  90                       nop
0x7f4bb7d5a792:  90                       nop
0x7f4bb7d5a793:  90                       nop
0x7f4bb7d5a794:  90                       nop
0x7f4bb7d5a795:  90                       nop
0x7f4bb7d5a796:  90                       nop
0x7f4bb7d5a797:  90                       nop
0x7f4bb7d5a798:  .quad  0x000055f5af960ffe
0x7f4bb7d5a7a0:  .quad  0x000055f5af961f2e

h----------------
IN: kernel_main
0x00100090:  92401c00  and      x0, x0, #0xff
0x00100094:  f9000040  str      x0, [x2]
0x00100098:  38401420  ldrb     w0, [x1], #1
0x0010009c:  35ffffa0  cbnz     w0, #0x100090

OP:
 ld_i32 tmp0,env,$0xfffffffffffffff0
 movi_i32 tmp1,$0x0
 brcond_i32 tmp0,tmp1,lt,$L0

 ---- 0000000000100090 0000000000000000 0000000000000000
 ext8u_i64 x0,x0

 ---- 0000000000100094 0000000000000000 0000000000000f02
 mov_i64 tmp2,x2
 mov_i64 tmp3,tmp2
 qemu_st_i64 x0,tmp3,leq,1

 ---- 0000000000100098 0000000000000000 0000000000000c00
 mov_i64 tmp2,x1
 mov_i64 tmp3,tmp2
 qemu_ld_i64 x0,tmp3,ub,1
 movi_i64 tmp4,$0x1
 add_i64 tmp2,tmp2,tmp4
 mov_i64 x1,tmp2

 ---- 000000000010009c 0000000000000000 0000000000000000
 ext32u_i64 tmp2,x0
 movi_i64 tmp3,$0x0
 brcond_i64 tmp2,tmp3,ne,$L1
 goto_tb $0x0
 movi_i64 pc,$0x1000a0
 exit_tb $0x7f4bb7d5a800
 set_label $L1
 goto_tb $0x1
 movi_i64 pc,$0x100090
 exit_tb $0x7f4bb7d5a801
 set_label $L0
 exit_tb $0x7f4bb7d5a803

OUT: [size=288]
0x7f4bb7d5a8c0:  8b 5d f0                 movl     -0x10(%rbp), %ebx
0x7f4bb7d5a8c3:  85 db                    testl    %ebx, %ebx
0x7f4bb7d5a8c5:  0f 8c bc 00 00 00        jl       0x7f4bb7d5a987
0x7f4bb7d5a8cb:  48 8b 5d 40              movq     0x40(%rbp), %rbx
0x7f4bb7d5a8cf:  0f b6 db                 movzbl   %bl, %ebx
0x7f4bb7d5a8d2:  48 89 5d 40              movq     %rbx, 0x40(%rbp)
0x7f4bb7d5a8d6:  4c 8b 65 50              movq     0x50(%rbp), %r12
0x7f4bb7d5a8da:  49 8b fc                 movq     %r12, %rdi
0x7f4bb7d5a8dd:  48 c1 ef 07              shrq     $7, %rdi
0x7f4bb7d5a8e1:  48 23 7d 80              andq     -0x80(%rbp), %rdi
0x7f4bb7d5a8e5:  48 03 7d 88              addq     -0x78(%rbp), %rdi
0x7f4bb7d5a8e9:  49 8d 74 24 07           leaq     7(%r12), %rsi
0x7f4bb7d5a8ee:  48 81 e6 00 f0 ff ff     andq     $0xfffff000, %rsi
0x7f4bb7d5a8f5:  48 3b 77 08              cmpq     8(%rdi), %rsi
0x7f4bb7d5a8f9:  49 8b f4                 movq     %r12, %rsi
0x7f4bb7d5a8fc:  0f 85 91 00 00 00        jne      0x7f4bb7d5a993
0x7f4bb7d5a902:  48 03 77 18              addq     0x18(%rdi), %rsi
0x7f4bb7d5a906:  48 89 1e                 movq     %rbx, (%rsi)
0x7f4bb7d5a909:  48 8b 5d 48              movq     0x48(%rbp), %rbx
0x7f4bb7d5a90d:  48 8b fb                 movq     %rbx, %rdi
0x7f4bb7d5a910:  48 c1 ef 07              shrq     $7, %rdi
0x7f4bb7d5a914:  48 23 7d 80              andq     -0x80(%rbp), %rdi
0x7f4bb7d5a918:  48 03 7d 88              addq     -0x78(%rbp), %rdi
0x7f4bb7d5a91c:  48 8b f3                 movq     %rbx, %rsi
0x7f4bb7d5a91f:  48 81 e6 00 f0 ff ff     andq     $0xfffff000, %rsi
0x7f4bb7d5a926:  48 3b 37                 cmpq     (%rdi), %rsi
0x7f4bb7d5a929:  48 8b f3                 movq     %rbx, %rsi
0x7f4bb7d5a92c:  0f 85 7b 00 00 00        jne      0x7f4bb7d5a9ad
0x7f4bb7d5a932:  48 03 77 18              addq     0x18(%rdi), %rsi
0x7f4bb7d5a936:  44 0f b6 26              movzbl   (%rsi), %r12d
0x7f4bb7d5a93a:  4c 89 65 40              movq     %r12, 0x40(%rbp)
0x7f4bb7d5a93e:  48 ff c3                 incq     %rbx
0x7f4bb7d5a941:  48 89 5d 48              movq     %rbx, 0x48(%rbp)
0x7f4bb7d5a945:  4d 85 e4                 testq    %r12, %r12
0x7f4bb7d5a948:  0f 85 1d 00 00 00        jne      0x7f4bb7d5a96b
0x7f4bb7d5a94e:  90                       nop
0x7f4bb7d5a94f:  e9 00 00 00 00           jmp      0x7f4bb7d5a954
0x7f4bb7d5a954:  48 c7 85 40 01 00 00 a0  movq     $0x1000a0, 0x140(%rbp)
0x7f4bb7d5a95c:  00 10 00
0x7f4bb7d5a95f:  48 8d 05 9a fe ff ff     leaq     -0x166(%rip), %rax
0x7f4bb7d5a966:  e9 ad f6 ff ff           jmp      0x7f4bb7d5a018
0x7f4bb7d5a96b:  e9 00 00 00 00           jmp      0x7f4bb7d5a970
0x7f4bb7d5a970:  48 c7 85 40 01 00 00 90  movq     $0x100090, 0x140(%rbp)
0x7f4bb7d5a978:  00 10 00
0x7f4bb7d5a97b:  48 8d 05 7f fe ff ff     leaq     -0x181(%rip), %rax
0x7f4bb7d5a982:  e9 91 f6 ff ff           jmp      0x7f4bb7d5a018
0x7f4bb7d5a987:  48 8d 05 75 fe ff ff     leaq     -0x18b(%rip), %rax
0x7f4bb7d5a98e:  e9 85 f6 ff ff           jmp      0x7f4bb7d5a018
0x7f4bb7d5a993:  48 8b fd                 movq     %rbp, %rdi
0x7f4bb7d5a996:  48 8b d3                 movq     %rbx, %rdx
0x7f4bb7d5a999:  b9 31 00 00 00           movl     $0x31, %ecx
0x7f4bb7d5a99e:  4c 8d 05 64 ff ff ff     leaq     -0x9c(%rip), %r8
0x7f4bb7d5a9a5:  41 50                    pushq    %r8
0x7f4bb7d5a9a7:  ff 25 2b 00 00 00        jmpq     *0x2b(%rip)
0x7f4bb7d5a9ad:  48 8b fd                 movq     %rbp, %rdi
0x7f4bb7d5a9b0:  ba 01 00 00 00           movl     $1, %edx
0x7f4bb7d5a9b5:  48 8d 0d 7e ff ff ff     leaq     -0x82(%rip), %rcx
0x7f4bb7d5a9bc:  ff 15 0e 00 00 00        callq    *0xe(%rip)
0x7f4bb7d5a9c2:  44 8b e0                 movl     %eax, %r12d
0x7f4bb7d5a9c5:  e9 70 ff ff ff           jmp      0x7f4bb7d5a93a
0x7f4bb7d5a9ca:  90                       nop
0x7f4bb7d5a9cb:  90                       nop
0x7f4bb7d5a9cc:  90                       nop
0x7f4bb7d5a9cd:  90                       nop
0x7f4bb7d5a9ce:  90                       nop
0x7f4bb7d5a9cf:  90                       nop
0x7f4bb7d5a9d0:  .quad  0x000055f5af960ffe
0x7f4bb7d5a9d8:  .quad  0x000055f5af961f2e

ello arm64 !----------------
IN: kernel_main
0x001000a0:  14000000  b        #0x1000a0

OP:
 ld_i32 tmp0,env,$0xfffffffffffffff0
 movi_i32 tmp1,$0x0
 brcond_i32 tmp0,tmp1,lt,$L0

 ---- 00000000001000a0 0000000000000000 0000000000000000
 goto_tb $0x0
 movi_i64 pc,$0x1000a0
 exit_tb $0x7f4bb7d5aa00
 set_label $L0
 exit_tb $0x7f4bb7d5aa03

OUT: [size=51]
0x7f4bb7d5aac0:  8b 5d f0                 movl     -0x10(%rbp), %ebx
0x7f4bb7d5aac3:  85 db                    testl    %ebx, %ebx
0x7f4bb7d5aac5:  0f 8c 1c 00 00 00        jl       0x7f4bb7d5aae7
0x7f4bb7d5aacb:  e9 00 00 00 00           jmp      0x7f4bb7d5aad0
0x7f4bb7d5aad0:  48 c7 85 40 01 00 00 a0  movq     $0x1000a0, 0x140(%rbp)
0x7f4bb7d5aad8:  00 10 00
0x7f4bb7d5aadb:  48 8d 05 1e ff ff ff     leaq     -0xe2(%rip), %rax
0x7f4bb7d5aae2:  e9 31 f5 ff ff           jmp      0x7f4bb7d5a018
0x7f4bb7d5aae7:  48 8d 05 15 ff ff ff     leaq     -0xeb(%rip), %rax
0x7f4bb7d5aaee:  e9 25 f5 ff ff           jmp      0x7f4bb7d5a018

QEMU: Terminated
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值