汇编读书笔记 -- 第二章
来源:互联网 发布:选择网络项目的标准 编辑:程序博客网 时间:2024/05/22 17:12
1、 8086CPU有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。
通用寄存器:
AX、BX、CX、DX称为数据寄存器:
AX: 累加寄存器
BX: 基地址寄存器
CX: 计数器寄存器
DX: 数据寄存器
SP和BP称为指针寄存器:
SP: 堆栈指针寄存器
BP: 基指针寄存器
SI和DI又称为变址寄存器:
SI: 源变址寄存器
DI: 目的变址寄存器
段寄存器:
CS:代码段寄存器
DS:数据段寄存器
SS:堆栈段寄存器
ES:附加段寄存器
控制寄存器:
IP:指令指针寄存器
FLAG:标志寄存器
2、8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址:
物理地址 = 短地址*16 + 偏移地址
本质含义:CPU在访问内存时,用一个基础地址(段地址*16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址。
段的长度:偏移地址为16位,16位地址的寻址能力为64KB,所以一个段的长度最大为64KB。
3、8086CPU的工作过程:
1)、从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器。
2)、IP = IP + 所读指令的长度,从而指向下一条指令。
3)、执行指令。 转到步骤1),重复这个过程。
4、 修改CS、IP的指令
jmp 段地址:偏移地址
jmp 某一合法的寄存器
举例:jmp 1000:3 ===========> CS = 1000, IP = 3
mov ax, 100
jmp ax ===========> CS 值不变, IP = 100
5、 寄存器、内存单元、立即数之间的相互赋值规则:
只有通用寄存器才能操作立即数,其它段寄存器以及内存单元都要通过通用寄存器来中转。
- 汇编读书笔记 -- 第二章
- 【汇编学习】汇编语言读书笔记(第二章)
- 汇编第二章学习
- 汇编语言读书笔记 第二章
- UNP读书笔记第二章
- Python读书笔记-第二章
- Rails读书笔记第二章
- CSAPP读书笔记第二章:
- 《数据仓库》读书笔记:第二章
- prml读书笔记-第二章
- 汇编学习笔记 第二章
- 读书笔记-汇编
- Python基础教程第二版读书笔记-第二章
- C++ Pirmer 读书笔记-第二章
- C++ Pirmer 读书笔记-第二章
- PHP程序设计读书笔记第二章
- 《影响力》读书笔记,第二章 互惠
- 读书笔记——第二章
- POJ 3003 解题报告
- Codeforces Round #317 B. Order Book
- 【C语言探索之旅】第三部分第三课:SDL开发游戏之显示图像
- 汇编读书笔记 第一章
- 微信公共号开发者中心(JAVA)【token失败解决办法】
- 汇编读书笔记 -- 第二章
- 第35章:使用xml文件定义菜单(Menu)并设置监听事件
- PupopWindow第一次弹出后点击触发外框触发其他控件事件
- 免费DUMP分析服务
- win7 便签损坏
- viewPage notifyDataSetChanged无刷新解决方案之一
- JAVA IO流
- HDU 2523 hash排序
- 设置某一个Activity为单例模式无法接收到onActivityResult