汇编 高低八位寄存器数据存储方式(逆向分析)

目录

一、32位寄存器中支持高低八位的寄存器

二、低八位与高八位的基本概念

三、实际案例与二进制编码

[案例1:mov al, 98(修改低8位)](#案例1:mov al, 98(修改低8位))

案例2:同时操作低8位和高8位(EBX)

[案例3:mov ah, 0xFF(修改高8位)](#案例3:mov ah, 0xFF(修改高8位))

四、64位寄存器中的低高八位

五、总结

一、32位寄存器中支持高低八位的寄存器

在32位x86架构中,只有以下4个寄存器 同时支持低8位高8位的独立访问:

32位寄存器 低8位寄存器 高8位寄存器 说明
EAX AL AH 累加器,最常用
EBX BL BH 基址寄存器
ECX CL CH 计数器寄存器
EDX DL DH 数据寄存器

其余寄存器(ESI、EDI、EBP、ESP)只有低8位访问方式,没有对应的高8位寄存器。

二、低八位与高八位的基本概念

32位寄存器由4个字节组成(32位),以 EAX 为例,其结构如下:

复制代码
EAX = | Byte 3(31-24位) | Byte 2(23-16位) | Byte 1(15-8位) | Byte 0(7-0位) |
      最高字节             中字节             高8位(AH)       低8位(AL)
  • 低8位:Byte 0(最低有效字节),对应 AL/BL/CL/DL

  • 高8位:Byte 1(第8-15位),对应 AH/BH/CH/DH


三、实际案例与二进制编码

案例1:mov al, 98(修改低8位)
复制代码
mov eax, 0x12345678
mov al, 98

执行前(EAX = 0x12345678)二进制:

复制代码
0001 0010  0011 0100  0101 0110  0111 1000
Byte3      Byte2       Byte1(AH)  Byte0(AL)

执行后(EAX = 0x12345662)二进制:

复制代码
0001 0010  0011 0100  0101 0110  0110 0010
Byte3      Byte2       Byte1(AH)  Byte0(AL)

变化

  • AL(低8位):0111 1000 (0x78) →替换 0110 0010 (0x62 = 98)

  • AH(高8位):0101 0110 (0x56) 保持不变

案例2:同时操作低8位和高8位(EBX)
复制代码
mov ebx, 0x00000000
mov bl, 0xAB        ; 修改低8位
mov bh, 0xCD        ; 修改高8位

执行后 EBX = 0x0000CDAB

二进制显示:

复制代码
0000 0000  0000 0000  1100 1101  1010 1011
Byte3      Byte2       Byte1(BH)  Byte0(BL)
          高8位 = 0xCD      低8位 = 0xAB
案例3:mov ah, 0xFF(修改高8位)

执行前:

复制代码
... 0101 0110  0111 1000   (AH=0x56, AL=0x78)

执行后:

复制代码
... 1111 1111  0111 1000   (AH=0xFF, AL=0x78)

EAX 变为 0x1234FF78

四、64位寄存器中的低高八位

64位寄存器(RAX等)包含8个字节,低高八位的访问方式与32位完全兼容:

复制代码
RAX = | Byte7 | Byte6 | Byte5 | Byte4 | Byte3 | Byte2 | Byte1(AH) | Byte0(AL) |

案例4:64位下修改低8位

复制代码
mov rax, 0x1122334455667788
mov al, 0x99

执行后 :最低字节变为 0x99,结果为 0x1122334455667799

二进制局部变化(最低16位):

  • 执行前:0111 1000 1000 1000 (AH=0x77, AL=0x88)

  • 执行后:0111 1000 1001 1001 (AH不变,AL=0x99)


五、总结

  • 支持高低8位的寄存器 只有 EAX、EBX、ECX、EDX ,分别对应 AL/AH、BL/BH、CL/CH、DL/DH

  • 低8位 = 寄存器最低字节(第0-7位),高8位 = 第8-15位。

  • mov al, xx 只修改最低8位,其他字节完全不变。

  • mov ah, xx 只修改第8-15位(高8位),不影响低8位和其他高位字节。

  • 这种字节级访问在字符处理、标志位操作、颜色值提取和汇编优化中非常常用。

相关推荐
汤愈韬2 小时前
TK_HCIP-Security_FW的可靠性_双机热备场景_上接路由器下接交换机
网络·网络协议·网络安全
BW.SU3 小时前
PackagingTool 嵌入式资源打包合并工具
单片机·二进制·嵌入式开发·资源合并软件·图片打包
梧六柒5 小时前
9-::$DATA后缀绕过
网络安全
X7x58 小时前
网络入侵防御系统(IPS):从被动防御到主动拦截的网络安全革命
网络安全·网络攻击模型·安全威胁分析·安全架构·ips
Soari9 小时前
AI 编码智能体的“安全防弹衣”:深度拆解 agent-skills,构建百分百受信任的专业技能注册表
人工智能·网络安全·github·软件工程·aiagent·claudecode·agent-skills
a833319610 小时前
C语言嵌入汇编详解
汇编·单片机·语言
梧六柒11 小时前
8- 点绕过
网络安全
深邃-11 小时前
【Web安全】-SRC平台介绍:CNVD平台-事件型漏洞-通用型漏洞,教育SRC平台,漏洞盒子,补天漏洞平台,企业SRC平台,企业和公益SRC平台
网络协议·安全·web安全·网络安全·https·src·cnvd
HackTwoHub11 小时前
AI 挖洞新思路、深度解析两大间接提示词注入漏洞攻防思路,注入也能获得上万美金
人工智能·安全·web安全·网络安全·系统安全·安全架构