zoukankan      html  css  js  c++  java
  • Windbg学习 (0x000b) 命令-寄存器控制

    r

    读取/设置寄存器值

    r Register[:[Num]Type] [= [Value]]

    举例:

    r :打印所有寄存器

    r rax

    r eax 

    r @rax=0   设置寄存器的值

    RegisterName:

    关于不同架构上的寄存器名称 

    |63..32|31..16|15-8|7-0|

           |AH..AL..|

             |AX......|

        |EAX...........|

    |RAX...................|

    所以对于 ax寄存器,是读取寄存器的不同长度

    r al

    r ax

    r eax

    r rax

    可用的寄存器 如下

    • rax 作为函数返回值使用。
    • rsp 栈指针寄存器,指向栈顶
    • rdi,rsi,rdx,rcx,r8,r9 用作函数参数,依次对应第1参数,第2参数。。。
    • rbx,rbp,r12,r13,14,15 用作数据存储,遵循被调用者使用规则,简单说就是随便用,调用子函数之前要备份它,以防他被修改
    • r10,r11 用作数据存储,遵循调用者使用规则,简单说就是使用之前要先保存原值

    register

    状态

    使用

    RAX

    易失的

    返回值寄存器

    RCX

    易失的

    第一个整型参数

    RDX

    易失的

    第二个整型参数

    R8

    易失的

    第三个整型参数

    R9

    易失的

    第四个整型参数

    R10:R11

    易失的

    必须根据需要由调用方保留;在 syscall/sysret 指令中使用

    R12:R15

    非易失的

    必须由被调用方保留

    RDI

    非易失的

    必须由被调用方保留

    RSI

    非易失的

    必须由被调用方保留

    RBX

    非易失的

    必须由被调用方保留

    RBP

    非易失的

    可用作帧指针;必须由被调用方保留

    RSP

    非易失的

    堆栈指针

    XMM0、YMM0

    易失的

    第一个 FP 参数;使用 __vectorcall 时的第一个矢量类型参数

    XMM1、YMM1

    易失的

    第二个 FP 参数;使用 __vectorcall 时的第二个矢量类型参数

    XMM2、YMM2

    易失的

    第三个 FP 参数;使用 __vectorcall 时的第三个矢量类型参数

    XMM3、YMM3

    易失的

    第四个 FP 参数;使用 __vectorcall 时的第四个矢量类型参数

    XMM4、YMM4

    易失的

    必须根据需要由调用方保留;使用 __vectorcall 时的第五个矢量类型参数

    XMM5、YMM5

    易失的

    必须根据需要由调用方保留;使用 __vectorcall 时的第六个矢量类型参数

    XMM6:XMM15、YMM6:YMM15

    非易失的 (XMM),易失的(YMM 的上半部分)

    必须根据需要由被调用方保留。YMM 寄存器必须根据需要由调用方保留。

     

    关于 x86 和 x64寄存器介绍 可以参考一下文章: 

    https://msdn.microsoft.com/zh-cn/library/9z1stfyw.aspx 

    http://www.mouseos.com/x64/extend64.html

  • 相关阅读:
    ASP.NET : 自定义HttpModule的时候要注意的问题
    ASP.NET : Win7 及 IIS 7中对于处理程序映射
    .NET : 一定不要忘记关闭DataReader对象
    IE 8 Accelerator加速器开发介绍{转载}
    .NET : CLR Profiler的使用
    .NET : 在实现WCF的双工服务时可能遇到的问题
    Silverlight学习资源
    .NET : 如何查看值类型的大小
    .NET: 如何通过AppDomain动态加载插件程序
    Web.config中的特殊字符
  • 原文地址:https://www.cnblogs.com/ywnwa417/p/5678323.html
Copyright © 2011-2022 走看看