寄存器
2016-05-28 16:16
155 查看
1,初识寄存器
不同的cpu寄存器结构和个数不相同
例如:8086CPU寄存器有14个寄存器:AX,BX,CX,DX,SI,DI,SP,DP,IP,CS,DS,SS,ES,PSW,
AX,BX,CX,DX,通用寄存器,
每个寄存器有16个字节,
一个寄存器可以分成两个寄存器,每个寄存器8位
AX:AH,AL
BX:BH,BL
CX:CH,CL
DX:DH,DL
8086CPU为16位CPU
运算器一次可以处理16位数据,
寄存器的最大宽度为16位
寄存器与运算器之间的通路为16位
16位只能寻址64kb
所以8086使用地址加法器
地址加法器计算方法 物理地址=断地址*16 + 偏移地址
例如:
地址段1H可以寻址的范围是1H*16+0 -- 1H*16+2^16-1
段寄存器(提供段地址)
CS,DS,SS,ES
IP为指令寄存器
CS内容为M,IP为N, 8086CPU 将从内存M*16+N 单元开始 读取第一条指令
修改CS,IP的内容用jmp指令 语法:jmp 段地址:偏移地址 eg:jmp 2AE3:3 执行过后 CS=2AE3H, IP=0003H 从2AE33H处读取指令
如果只想修改IP的内容 则可以用 语法:jmp 一个合法寄存器 eg:jmp ax, 执行前:ax = 1000H, CS=2000H,IP=0003H
执行后:ax = 1000H, CS=2000H,IP=1000H
DS寄存器 --存放CPU访问的内存段
当CPU访问内存时,需要把内存的地址放入DS寄存器
eg:mov bx,1000H //将要访问的内存放入一个寄存器(不能直接放入段地址寄存器,注意前面可以用r 修改,那是debug的内容,并不代表汇编代码可以这样写)
mov ds,bx //bx寄存器里面的地址段 赋给ds
mov al,[0] //读取ds内的内存的内容到al寄存器,[0]表示地址偏移量
不同的cpu寄存器结构和个数不相同
例如:8086CPU寄存器有14个寄存器:AX,BX,CX,DX,SI,DI,SP,DP,IP,CS,DS,SS,ES,PSW,
AX,BX,CX,DX,通用寄存器,
每个寄存器有16个字节,
一个寄存器可以分成两个寄存器,每个寄存器8位
AX:AH,AL
BX:BH,BL
CX:CH,CL
DX:DH,DL
8086CPU为16位CPU
运算器一次可以处理16位数据,
寄存器的最大宽度为16位
寄存器与运算器之间的通路为16位
16位只能寻址64kb
所以8086使用地址加法器
地址加法器计算方法 物理地址=断地址*16 + 偏移地址
例如:
地址段1H可以寻址的范围是1H*16+0 -- 1H*16+2^16-1
段寄存器(提供段地址)
CS,DS,SS,ES
IP为指令寄存器
CS内容为M,IP为N, 8086CPU 将从内存M*16+N 单元开始 读取第一条指令
修改CS,IP的内容用jmp指令 语法:jmp 段地址:偏移地址 eg:jmp 2AE3:3 执行过后 CS=2AE3H, IP=0003H 从2AE33H处读取指令
如果只想修改IP的内容 则可以用 语法:jmp 一个合法寄存器 eg:jmp ax, 执行前:ax = 1000H, CS=2000H,IP=0003H
执行后:ax = 1000H, CS=2000H,IP=1000H
DS寄存器 --存放CPU访问的内存段
当CPU访问内存时,需要把内存的地址放入DS寄存器
eg:mov bx,1000H //将要访问的内存放入一个寄存器(不能直接放入段地址寄存器,注意前面可以用r 修改,那是debug的内容,并不代表汇编代码可以这样写)
mov ds,bx //bx寄存器里面的地址段 赋给ds
mov al,[0] //读取ds内的内存的内容到al寄存器,[0]表示地址偏移量
相关文章推荐
- Unity拖影效果
- POSIX && XSI
- C++: 生命游戏(模拟细胞群演化)
- Jenkins常用插件说明(持续更新)
- 《构建之法》第8,9,10章 读后感
- Struts1和Struts2都有什么区别?
- scroller的使用
- 安卓Picasso实战体验--图片加载、缓存、回收新选择
- Axis2实现 web service接口开发 + 客户端调用
- ( Leetcode 104 ) Maximum Depth of Binary Tree
- 途牛面试经历
- websphere 启动服务
- Android中Application类用法
- 关联、组合、聚合、依赖关系比较 [转]
- 设计模式之门面模式
- How to Remove Table Partitioning in SQL Server
- Linux下如何用vi编辑和保存文件
- 时钟显示
- Hibernate基本查询(学习笔记)
- 排序算法性能和使用场景总结