小编Kno*_*oot的帖子

正确对齐python

我怎样才能证明这段代码的输出是正确的?

N = int(input())
case = '#'
print(case)

for i in range(N):
    case += '#'
    print(case)
Run Code Online (Sandbox Code Playgroud)

python python-3.x

4
推荐指数
2
解决办法
3464
查看次数

为什么要将相同的值复制到他已经拥有的rax?

可有人向我解释为什么我们在移动值rax,以rdi在主函数中@0x6f5,然后在值复制rdi到的堆栈 get_v,然后转移回rax @0x6c8?也许它是x86-64的惯例,但我不理解它的逻辑.

 main:
   0x00000000000006da <+0>:     push   rbp
   0x00000000000006db <+1>:     mov    rbp,rsp
   0x00000000000006de <+4>:     sub    rsp,0x10
   0x00000000000006e2 <+8>:     mov    rax,QWORD PTR fs:0x28
   0x00000000000006eb <+17>:    mov    QWORD PTR [rbp-0x8],rax
   0x00000000000006ef <+21>:    xor    eax,eax
   0x00000000000006f1 <+23>:    lea    rax,[rbp-0xc]
 =>0x00000000000006f5 <+27>:    mov    rdi,rax
   0x00000000000006f8 <+30>:    call   0x6c0 <get_v>
   0x00000000000006fd <+35>:    mov    eax,0x0
   0x0000000000000702 <+40>:    mov    rdx,QWORD PTR [rbp-0x8]
   0x0000000000000706 <+44>:    xor    rdx,QWORD PTR fs:0x28
   0x000000000000070f <+53>:    je     0x716 <main+60>
   0x0000000000000711 <+55>:    call …
Run Code Online (Sandbox Code Playgroud)

x86 assembly gdb reverse-engineering x86-64

2
推荐指数
1
解决办法
656
查看次数

标签 统计

assembly ×1

gdb ×1

python ×1

python-3.x ×1

reverse-engineering ×1

x86 ×1

x86-64 ×1