代码之家  ›  专栏  ›  技术社区  ›  WQYeo

RAX/RDI没有转到下一个系统调用?[副本]

  •  0
  • WQYeo  · 技术社区  · 6 年前

    在我正在学习的一个教程中,老师做到了

    ;Input codes, entry points, etc.
    
    _showAge:
        mov rax, 1
        mov rdi, 1
        mov rsi, ageTxt
        mov rdx, 13
        syscall ;"Your age is: "
    
        mov rax, 1
        mov rdi, 1
        mov rsi, age
        mov rdx, 3
        syscall
        ret
    

    _showAge:
        mov rax, 1
        mov rdi, 1
        mov rsi, ageTxt
        mov rdx, 13
        syscall ;"Your age is: "
    
        mov rsi, age
        mov rdx, 3
        syscall ; Doesn't do anything
        ret
    

    这已经不起作用了,

    (此脚本在Linux x86_64,Ubuntu中测试和运行)

    1 回复  |  直到 6 年前
        1
  •  2
  •   fuz    6 年前

    rax .因此,无论是什么 rcx r11 寄存器也会被系统调用破坏。所有其他寄存器的内容都由内核保存。