南乐网站建设电话如何查网站建设者ip
寄存器
| eax | Accumulator | 累加器 | 
|---|---|---|
| ebx | Base register | 基寄存器 | 
| ecx | Counter register | 计数器寄存器 | 
| edx | Data register - can be used for I/O port access and arithmetic functions  | 数据寄存器-可用于I/O端口访问和算术函数 | 
| esi | Source index register | 源索引寄存器 | 
| edi | Destination index register | 目标索引寄存器 | 
| ebp | Base pointer register | 基指针寄存器 | 
| esp | Stack pointer | 堆栈指针 | 
所有的整数寄存器均为32位。但是,其中这么多都有16位或8位子寄存器
| 寄存器 | 子寄存器 | 位置说明 | 
|---|---|---|
| eax | ax | 低16位 | 
| ah | 高16位 | |
| al | 低8位 | |
| ebx | bx | 低16位 | 
| bh | 高16位 | |
| bl | 低8位 | |
| ecx | cx | 低16位 | 
| ch | 高16位 | |
| cl | 低8位 | |
| edx | dx | 低16位 | 
| dh | 高16位 | |
| dl | 低8位 | |
| esi | si | 低16位 | 
| edi | di | 低16位 | 
| ebp | bp | 低16位 | 
| esp | sp | 低16位 | 
注意:在WinDbg使用”?“(Evaluate Expression)查看子寄存器时,子寄存器前要加“@”符号,如? @ax ,而不是 ? ax。但用“r”(Registers)命令时,不需要“@”符号
| eip | Instruction pointer | 指令指针,正在执行的指令的地址 | 
|---|---|---|
| flags | flags | 标志位 | 
调用约定
x86体系结构具有多个不同的调用约定。但都遵循相同的寄存器保留和函数返回规则:
- 函数必须保留所有寄存器,但eax、ecx和edx除外(可在函数调用中更改),esp(必须根据调用约定进行更新)
 - 如果结果为32位或更小,则eax寄存器为返回值。如果结果为64位,则结果存储在edx:eax中。
 
x86体系结构上使用的调用约定:
- Win32(__stdcall)
函数参数在堆栈上传递,从右向左推送,被调用方清理堆栈。 - 本机C++方法调用(也称为thiscall)
函数参数在堆栈上传递,从右向左推送,"this"指针在ecx寄存器中传递,被调用方清理堆栈。 - COM(适用于c++的__stdcall)
 - __fastcall
前两个DWORD或较小的参数在ecx和edx寄存器中传递,其余参数在堆栈上传,从右向左推送。被调用方清理堆栈。 - __cdecl
函数参数在堆栈上传递,从右向左推送,被调用方清理堆栈。__cdecl调用约定用于具有可变长度参数的所有函数。 
x86标志位

 (图片引用自:https://blog.csdn.net/weixin_46013401/article/details/111823010)
| 标志 代码  | 标志名称 | 值 | 状态与说明 | 其它 | 
|---|---|---|---|---|
| OF | Overflow Flag 溢出标志  | 0 1  | nv-No overflow(无溢出) ov-Overflow(溢出)  | 有符号数 | 
| DF | Direction Flag 方向标志  | 0 1  | up-Direction up(递增,低往高) dn-Direction down(递减,高往低)  | 仅仅用于串处理指令中, 控制SI、DI的改变方向 CLD指令:将DF置为0 STD指令:将DF置为1  | 
| IF | Interrupt Flag 中断标志  | 0 1  | di-Interrupts disabled(禁用中断) ei-Interrupts-enabled(启用中断)  | STI指令:将IF设置为1 CLI指令:将IF设置为0  | 
| SF | Sign Flag 符号标志  | 0 1  | pl-Positive(or zero)正或零 ng-Negative(负数)  | 结果为负数,则SF=1 结果为非负,则SF=0  | 
| ZF | Zero Flag 零标志  | 0 1  | nz-Nonzero(非零) zr-Zero(零)  | 结果为零,则ZF=1 结果为非零,则ZF=0  | 
| AF | Auxiliary Carry Flag 辅助进位标志  | 0 1  | na-No auxiliary carry(无辅助进位) ac-Auxiliary carry(辅助进位)  | 反映加减运算时最低半字节有无进位或者借位 最低半字节有进位或借位时,AF=1, 否则AF=0。  | 
| PF | Parity Flag 奇偶标志  | 0 1  | pe-Parity even(奇) po-Parity odd(偶)  | 所有bit位中的1的个数是否为偶数 偶数:则PF=1,奇数:则PF=0  | 
| CF | Carry Flag 进位标志  | 0 1  | nc-No carry(无进位) cy-Carry(有进位)  | 无符号数 有进位或借位时CF=1,否则为0  | 
| TF | Trap Flag 跟踪标志  | 0 1  | 0-正常状态 1-单步状态  | 是否允许单步中断 | 
| iopl | I/O Privilege Level | 00~11 | 操作系统用来控制对硬件的访问 | 
用"r"命令查看或更改标志位的值
条件Conditions
条件描述一个或多个标志的状态。
 汇编程序使用一个或两个字母缩写来表示条件。
| 条件名称 | 标志 | 说明 | 
|---|---|---|
| Z | ZF=1 | 最后一个操作的结果为零 | 
| NZ | ZF=0 | 最后一个操作的结果不为零 | 
| C | CF=1 | 最后一个操作进位或借位(对于无符号整数,表示溢出) | 
| NC | CF=0 | 最后一个操作不需进位或借位 | 
| S | SF=1 | 最后一个操作具有高位集 | 
| NS | SF=0 | 最后一个操作没有高位集 | 
| O | OF=1 | 当视为有符号整数运算时,最后一个运算导致溢出 | 
| NO | OF=0 | 当视为有符号整数运算时,最后一个运算没有溢出 | 
条件还可以用于比较两个值。cmp指令比较其两个操作数,然后设置标志,类似从一个操作数减去一个操作数。
| 条件名称 | 标志 | CMP操作后的含义 | 
|---|---|---|
| E | ZF=1 | value1 == value2 | 
| NE | ZF=0 | value1 != value2 | 
| GE、NL | SF=OF | value1 >= value2(有符号整数) | 
| LE、NG | ZF=1 or SF!=OF | value1 <= value2(有符号整数) | 
| G、NLE | ZF=0 and SF=OF | value1 > value2 (有符号整数) | 
| L、NGE | SF!=OF | value1<value2(有符号整数) | 
| AE、NB | CF=0 | value1 >= value2 (无符号整数) | 
| BE、NA | CF=1 or ZF =1 | value1 <= value2(无符号整数) | 
| A、NBE | CF=0 and ZF=0 | value1 > value2 (无符号整数) | 
| B、NAE | CF=1 | value1 < value2 (无符号整数) | 
条件通常用于处理cmp 或 test 指令的结果。
数据类型
- byte:8 bits
 - word:16 bits
 - dword:32 bits
 - qword:64 bits(包括浮点双精度)
 - tword:80 bits(包括浮点扩展双精度)
 - oword:128 bits
 
符号
| 表示法 | 含义 | 
|---|---|
| r,r1,r2… | 寄存器 | 
| m | 内存地址 | 
| #n | 即时常量 | 
| r/m | 寄存器或内存地址 | 
| r/#n | 寄存器或即时常量 | 
| r/m/#n | 寄存器/内存地址/即时常量 | 
| cc | 条件代码 | 
| T | “B”,“W” or “D” (byte,word,dword) | 
| accT | T大小的累加器 T=“B”,则为al;T=“W”,为ax;T=“D”,为eax  | 
寻址模式
采用 T PTR [expr]的形式寻址,其中T是某种数据类型,expr是涉及常量和寄存器的一些表达式。
 
 图片来源于网络
 引用:
 https://learn.microsoft.com/zh-cn/windows-hardware/drivers/debugger/x86-architecture
 https://blog.csdn.net/weixin_46013401/article/details/111823010
