【汇编】RAX,eax,ax,ah,al 关系

【汇编】RAX,eax,ax,ah,al 关系

bash 复制代码
|63..32|31..16|15-8|7-0|
               |AH.|AL.|
               |AX.....|
       |EAX............|
|RAX...................|

一般寄存器 :AX(2字节)BXCXDX

  • AX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器

索引暂存器:SI、DI

  • SI:来源索引暂存器,DI:目的索引暂存器

堆叠、基底暂存器:SP、BP

  • SP:堆叠指标暂存器,BP:基底指标暂存器

EAX(4字节)、ECX、EDX、EBX :為ax,bx,cx,dx的延伸,各為32位元
ESI、EDI、ESP、EBP:為si,di,sp,bp的延伸,32位元

eax, ebx, ecx, edx, esi, edi, ebp, esp等都是X86 汇编语言中CPU上的通用寄存器的名称,是32位的寄存器。如果用C语言来解释,可以把这些寄存器当作变量看待。

比方说:add eax,-2 ; //可以认为是给变量eax加上-2这样的一个值。

这些32位寄存器有多种用途,但每一个都有"专长",有各自的特别之处。

  • EAX 是"累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器。

  • EBX 是"基地址"(base)寄存器, 在内存寻址时存放基地址。

  • ECX 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。

  • EDX 则总是被用来放整数除法产生的余数。

ESI/EDI分别叫做"源/目标索引寄存器"(source/destination index),因为在很多字符串操作指令中, DS:ESI指向源串,而ES:EDI指向目标串.

EBP 是"基址指针"(BASE POINTER), 它最经常被用作高级语言函数调用的"框架指针"(frame pointer). 在破解的时候,经常可以看见一个标准的函数起始代码:

bash 复制代码
  push ebp ;保存当前ebp
  mov ebp,esp ;EBP设为当前堆栈指针
  sub esp, xxx ;预留xxx字节给函数临时变量.
  ...

这样一来,EBP 构成了该函数的一个框架, 在EBP上方分别是原来的EBP, 返回地址和参数. EBP下方则是临时变量. 函数返回时作

bash 复制代码
   mov esp,ebp
   pop ebp
   ret 

即可.

ESP 专门用作堆栈指针,被形象地称为栈顶指针,堆栈的顶部是地址小的区域,压入堆栈的数据越多,ESP也就越来越小。在32位平台上,ESP每次减少4字节。

除次之外 就是 RAX, RAX是 EAX的64位版本(8字节)。同理 ,其他的都有64位版本

bash 复制代码
x86.dbg
779193C8 | B0 0B                    | mov al,B                                | al 表示的是EAX的第一个字节 低字节 低8位
779193CA | 66:B8 CDAB               | mov ax,ABCD                             | AX是EAX首2个字节空间
779193CE | B8 563412AB              | mov eax,AB123456                        | 4个字节操作
779193D3 | B8 00000000              | mov eax,0                               | 4个字节
779193D8 | B4 1F                    | mov ah,1F                               | ah 表示的是eax的第二字节 高字节 高8位

779193DA | 90                       | nop                                     |
779193DB | 90                       | nop                                     |

779193DC | B3 0B                    | mov bl,B                                | 0B:'\v'
779193DE | 66:BB 8F19               | mov bx,198F                             |
779193E2 | BB 21436587              | mov ebx,87654321                        | 一个字节 00---FF
779193E7 | B7 AB                    | mov bh,AB                               |

779193E9 | 90                       | nop                                     |
779193EA | 90                       | nop                                     |
779193EB | 90                       | nop                                     |

779193EC | B2 21                    | mov dl,21                               | 
779193EE | 66:BA 2143               | mov dx,4321                             |
779193F2 | BA 21436587              | mov edx,87654321                        |
779193F7 | B6 AB                    | mov dh,AB                               |

x64.dbg
00007FF89B3ECBC5                     | B2 21                     | mov dl,21                                         | 指令 *
00007FF89B3ECBC7                     | 66:BA 2143                | mov dx,4321                                       |
00007FF89B3ECBCB                     | BA 21436587               | mov edx,87654321                                  |
00007FF89B3ECBD0                     | 48:BA 2143658799EFCDAB    | mov rdx,ABCDEF9987654321                          |
00007FF89B3ECBDA                     | B6 AB                     | mov dh,AB                                         |
00007FF89B3ECBDC                     | BA 4E61BC00               | mov edx,BC614E                                    |
00007FF89B3ECBE1                     | BA 78563412               | mov edx,12345678                                  | 清空高位为0
00007FF89B3ECBE6                     | C7C2 78563412             | mov edx,12345678                                  |
相关推荐
我在人间贩卖青春2 天前
汇编之伪指令
汇编·伪指令
我在人间贩卖青春3 天前
汇编之伪操作
汇编·伪操作
济6173 天前
FreeRTOS基础--堆栈概念与汇编指令实战解析
汇编·嵌入式·freertos
myloveasuka3 天前
汇编TEST指令
汇编
我在人间贩卖青春3 天前
汇编编程驱动LED
汇编·点亮led
我在人间贩卖青春3 天前
汇编和C编程相互调用
汇编·混合编程
myloveasuka3 天前
寻址方式笔记
汇编·笔记·计算机组成原理
请输入蚊子4 天前
《操作系统真象还原》 第六章 完善内核
linux·汇编·操作系统·bochs·操作系统真像还原
myloveasuka4 天前
指令格式举例
汇编·笔记·计算机组成原理
我在人间贩卖青春4 天前
汇编之分支跳转指令
汇编·arm·分支跳转