汇编学习 1 寄存器的作用 寻址方式首先 是寄存器的介绍
寄存器名 说明 功能 eax: 累加器 加法乘法指令的缺省寄存器, 函数返回值 ecx 计数器 REP & LOOP指令的内定计数器 edx 除法寄存器 存放整数除法产生的余数 ebx 基址寄存器 在内存寻址时存放基地址 esp 栈顶指针寄存器 SS:ESP当前堆栈的栈顶指针 ebp 栈底指针寄存器 SS:EBP当前堆栈的栈底指针 esi, edi 源、目标索引寄存器 在字符串操作指令中,DS:ESI指向源串 ES:EDI指向目标串 //以上为通用寄存器 eip 指令寄存器 CS:EIP指向下一条指令的地址 (也叫PC) eflags 标志寄存器 标志寄存器 cs 代码段寄存器 当前执行的代码段 ss 椎栈段寄存器 stack segment, 当前堆栈段 ds 数据段寄存器 data segment, 当前数据段 然后是 寻址方式 1 直接寻址方式 直接访问内存地址 2:寄存器间接寻址方式: 通过寄存器中存储的内存地址访问内存 3 寄存器相对寻址方式: 将寄存器中内存地址加上一个数值后作为地址访问内存 4:基址变址寻址方式: 把一个基址寄存器(EBX或EBP)的内容加上变址寄存器(ESI或EDI)的内容构成有效地址的寻址方式。若基址寄存器使用EBX,其默认段为数据段DS;若基址寄存器使用EBP,其默认段为堆栈段SS 5:相对基址变址寻址方式: 就是基址变址寻址方式得出的地址再加上一个数值然后进行寻址 譬如[EBX + EDI + 100] 一些基础 再加上指令的基础 就可以读懂基本的汇编语句 可以进行debug和写程序了 |
|