UNIT TWO
声明
基于8086的寄存器共14个16位的,分别是
ax bx cx dx (通用寄存器)
si di bp sp (基址与变址寄存器)
cs ss ds es (段寄存器)
ip flags (指令指针和标志寄存器)
常用的是第一排、第三排
附:
AX Accumulator Register
BX Base Register
CX Count Register
DX Data Register
CS Code Segment Register
IP Instruction Pointer Register
通用寄存器
如ax,bx,cx,dx寄存器,通常用于存放一般数据,称为通用寄存器。
为了与早期CPU操作兼容,这4个寄存器均可拆分成两个8位寄存器单独使用。
AX分为AH和AL
BX分为BH和BL
CX分为CH和CL
DX分为DH和DL
而AH和AL可以作为两个八位寄存器单独使用。
字在寄存器中的存放
字节 内存划分的基本单位
字 两个字节
双字 四个字节
四字 八个字节
汇编指令mov add
注意事项:
1.在mov和add指令中,两个操作对象的位数应一致
2.运算时超出寄存器表示的位数时,进位大的1不显示
2的示例:
8086表示物理地址的方法
段地址 × 16 + 偏移地址 = 物理地址
*根据需要,段的起始物理地址必须是16的倍数
CS与IP
CS: 代码段段寄存器,用于存放代码段的「段地址」
IP: 指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址
CS:IP对应的物理地址存放的是CPU将要读取的指令。
(CS) × 16 + (IP) → 指令的物理地址
JMP指令:修改CS与IP
1.同时修改cs ip
jmp 段地址: 偏移地址
例:
jmp 2AE3:3 ; CS ← 2AE3H
IP ← 3H
2.只修改ip
jmp 某一合法寄存器
例:
jmp AX ; IP ← AX
最新文章
- Linux服务器jps报process information unavailable
- UVALive 5061 Lightning Energy Report --LCA
- POJ2047 Concert Hall Scheduling(最小费用最大流)
- C#中判断一个网址是否可以打开
- [TSOI2005]Exhibit
- 前后台使用ajax传list的时候,用value[] 获取值
- C 中va_list,va_arg,va_start,va_end usage
- [Swust OJ 801]--Ordered Fractions
- C#通过接口与线程通信(捕获线程状态)介绍
- [Kafka] - Kafka 安装介绍
- C 指针的几个注意点
- Linux双网卡绑定实现负载均衡
- Netflix正式开源其API网关Zuul 2
- Java并发编程(七)深入剖析ThreadLocal
- LeetCode——9. Palindrome Number
- 零基础用Docker部署微服务
- RAD Studio 2010~XE8 官方 ISO 下载地址 (2015-03-28更新)
- Java中Math类的几个四舍五入方法的区别
- Tkinter Scrollbar(垂直滚动部件)
- java NIO学前准备
热门文章
- mysql(insert + str_to_date)
- 实现接口开启线程(实现Runnable接口)
- Android使用volley发送带参数的post请求
- windows安装和重装系统后无法识别U盘
- (0524) rbf 格式 (intel)
- Camstar报错:cannot be accessed through null object reference at CDO 'xxx'
- hadoop集群搭建之测试集群,配置历史服务器,日志聚集,时间同步
- D_GLIBCXX_USE_CXX11_ABI
- win/ubuntu/centos 安装后台监控工具btop
- mongodb对Obeject对象进行增删改操作