LXIOS

初见二进制/汇编/1.2通用寄存器_认识指令_内存读写

2025-11-09

根据教程视频,以下均以32位计算机为例

一.通用寄存器(32位计算机)

32位 16位 8位低↓高 编号
EAX AX AL 0
ECX CX CL 1
EDX DX DL 2
EBX BX BL 3
ESP SP AH 4
EBP BP CH 5
ESI SI DH 6
EDI DI BH 7

ps:eip显示的是当前程序运行处

其它寄存器主要用途在此先不做介绍

为何分出不同位?
减小不必要的损耗,8位能表示的就不必用32位表示。

寄存器结构

31 15 7 0
EAX AX AH AL
ECX CX CH CL
EDX DX DH DL
EBX BX BH BL
ESP SP
EBP BP
ESI SI
EDI DI

二.常用汇编指令

r代表寄存器,m代表相应内存空间,imm代表相应位的立即数(一般16进制)

说几位就几位,不够会补0,溢出会覆盖等等

数溢出时,只从最低位开始存,多余被去除

1.mov

实质:操作码+操作数

目标操作数:立即数,通用寄存器,段寄存器等等
源操作数:同上

在不搞小动作的情况下,操作数的宽度一般要一样,源操作数和目标操作数不为同一单元

用法:

mov 目标操作数,源操作数

语法:

目标操作数可为:
    
    1.r/m8(16,32),r8(16,32)	  
    2.r8(16,32),r/m8(16,32)
    3.r8(16,32),imm8(16,32)

2.add

3.sub

4.and

5.or

6.xor

7.not

三.内存

简要介绍

1.内存格式

2.读写内存

3.内存寻址

← Back to Home