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

目录

一、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位和其他高位字节。

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

相关推荐
黄俊懿17 小时前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第八节:网关-注入攻击与预防
sql·网络安全·架构·系统架构·架构师·架构设计
黄俊懿17 小时前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第七节:网关-XSS攻击与预防
网关·网络安全·架构·系统架构·架构师·xss·架构设计
数据知道17 小时前
.NET 反序列化漏洞——ViewState 与 BinaryFormatter 实战深度剖析
网络·网络安全·.net
HackTwoHub20 小时前
Butter_Cookie 黄油曲奇|浏览器渗透插件,云存储检测、XSS、SQL 注入一站式 Web 安全测试工具
前端·sql·安全·web安全·网络安全·自动化·xss
AI备忘录1 天前
(十六)GRE/IPSec 隧道配置命令五厂商对照:华为 华三 锐捷 迈普 思科
运维·服务器·网络·网络协议·网络安全·华为
Eason_LYC2 天前
【GetShell】DataEase H2 JDBC远程命令执行漏洞(CVE-2025-32966+CVE-2025-49001)
网络安全·漏洞复现·dataease·白帽子·cve-2025-32966·cve-2025-49001·远程命令执行
白猫不黑2 天前
运维如何转安全(个人经验篇)
运维·学习·安全·web安全·网络安全·信息安全
Demons_kirit2 天前
PortSwigger网络缓存欺骗(4)
网络安全·缓存
白猫不黑2 天前
网络空间安全/信息安全专业学习规划(超级详细版)
运维·学习·安全·web安全·网络安全·信息安全
2601_966377132 天前
2026年教育数据安全研修班举办,数达安全发布密评工具箱与行业商用密码安全解决方案
网络安全·数据安全·2026年教育数据安全研修班