机器语言是机器指令的集合,机器指令是可以被正确识别的数字——CPU将这些数字作为指令执行,汇编语言是机器指令的英文版。
几个基本概念:
1·寄存器 CPU存储数据的地方 寄存器大小:
63..32|31..16|15-8|7-0|
|AH. |AL.|
|..AX... |
|EAX........|字 |
|RAX...................|
2·内存分区 不同内存区域存储作用不同
1·代码区
2·常量数据区
3·静态数据区 全局变量
4·栈 局部变量 函数参数 函数返回地址
5·堆
3·处理器分环概念 (图片来源:Inter汇编语言程序设计)
4·调试器分类
内核调试器(0环) Windbg
用户调试器(3环) OllDebug(只有32位) X64Debug(32位和64位) Windbg
16位汇编调试器 debug.exe TD.exe
5·寄存器
8086CPU 16位CPU寄存器
AX 累加寄存器 乘除运算 字的输入输出的缓冲存储
BX 基址寄存器
CX 计数器寄存器
DX 数据寄存器
SI 源变址寄存器 存储器指针 串指令中的源操作数指针 可用来存放相对于DS段值源変址指针
DI 目标地址寄存器 存储器指针 串指令中的目的操作数指针 可用来存放相对于ES段值目的变址指针
SP 堆栈指针寄存器 指向栈顶 push(入栈)SP值减小 pop(出栈)SP值增大 大小为4 (此处结合栈结构分布理解 入栈之后栈顶指针抬升 栈地址从高地址向低地址增长 SP值因此减小)
BP 堆栈指针寄存器 指向栈底基地址 可用作SS的一个相对基址位置
IP 指令指针寄存器 指向将要执行的指令的地址
FLAGS 标志寄存器 标志寄存器存储指令后的状态 反映指令执行结果或控制指令的执行形式。