声明

基于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

最新文章

  1. Linux服务器jps报process information unavailable
  2. UVALive 5061 Lightning Energy Report --LCA
  3. POJ2047 Concert Hall Scheduling(最小费用最大流)
  4. C#中判断一个网址是否可以打开
  5. [TSOI2005]Exhibit
  6. 前后台使用ajax传list的时候,用value[] 获取值
  7. C 中va_list,va_arg,va_start,va_end usage
  8. [Swust OJ 801]--Ordered Fractions
  9. C#通过接口与线程通信(捕获线程状态)介绍
  10. [Kafka] - Kafka 安装介绍
  11. C 指针的几个注意点
  12. Linux双网卡绑定实现负载均衡
  13. Netflix正式开源其API网关Zuul 2
  14. Java并发编程(七)深入剖析ThreadLocal
  15. LeetCode——9. Palindrome Number
  16. 零基础用Docker部署微服务
  17. RAD Studio 2010~XE8 官方 ISO 下载地址 (2015-03-28更新)
  18. Java中Math类的几个四舍五入方法的区别
  19. Tkinter Scrollbar(垂直滚动部件)
  20. java NIO学前准备

热门文章

  1. mysql(insert + str_to_date)
  2. 实现接口开启线程(实现Runnable接口)
  3. Android使用volley发送带参数的post请求
  4. windows安装和重装系统后无法识别U盘
  5. (0524) rbf 格式 (intel)
  6. Camstar报错:cannot be accessed through null object reference at CDO 'xxx'
  7. hadoop集群搭建之测试集群,配置历史服务器,日志聚集,时间同步
  8. D_GLIBCXX_USE_CXX11_ABI
  9. win/ubuntu/centos 安装后台监控工具btop
  10. mongodb对Obeject对象进行增删改操作