1,寄存器他与普通的内存条差不多但它是在CPU内部的可以对CPU数据进行快速储存
寄存器的基本样式如下
寄存器 | 编号 (二进制) | 十进制 | ||
32位 | 16位 | 8位 | ||
EAX | AX | AL | 0000 | 0 |
ECX | CX | CL | 0001 | 1 |
EDX | DX | DL | 0010 | 2 |
EBX | BX | BL | 0011 | 3 |
ESP | SP | AH | 0100 | 4 |
EBP | BP | CH | 0101 | 5 |
ESI | SI | DH | 0110 | 6 |
EDI | DI | BH | 0111 | 7 |
2,实际上寄存器是包含关系大致意思
3,基础汇编指令 mov 指令 用法 mov eax,0x32435 即将32453移动到EAX中
基本指令
MOV指令 | 移动 |
ADD指令 | 加法 |
SUB指令 | 减法 |
NOT指令 | 逻辑运算 非运算 |
AND指令 | 与运算 |
OR指令 | 或运算 |
XOP指令 | 异或运算 |
用法示例 | add eax,123(就是在寄存器eax记录数再加一) |
4,内存 当我们需要运算一个很大的数时我们就会发现寄存器不够用了,而这就自然而然
引出内存的概念,内存是在CPU外面的所以说它可以很大但速度就与寄存器差很多啦,所
以内存不想寄存器有那麽多EAX ECX 啥的具体分类,内存是通过0x000 0x001 0x002这种
进行编号的由于寄存器和内存功能啥的是一致的(内存要和硬盘区分开)所以说以32为计算
机为例寄存器识别 0x00000000到0xffffffff 所以说内存编号只能到0x00000000 0xffffffff为止
内存一个存储单元最大单位是字节 而寄存器是四个字节所以说在汇编中内存的读取是一次性读取
四个地址 内存编号0x00000000 0xffffffff 所以说内存存储最大位0xffffffff+1也就是4G,所以说32位
计算机对应的识别内存是4G。(事无绝对也可以通过补丁等手段令其改变)
5,在汇编中获取内存是若用0x3223f890f这种方法会与立即数产生矛盾所以用内存时需要先[]来将
地址括住
即写的数是多大
by 八位 | word 十六位 | dword 32位 |
即正确格式 mov word ptr ds:[0x003243f9],0x4721abcd