8086 CPU 寻址方式
8086 CPU 寻址方式灵活。有以下几种
idata 表示常量
1. [ idata ] 用一个常量来表示地址,可用于直接定位内存单元,但是在 MASM中要显实在的说明 ds 段寄存器, 比如 mov ax, ds:[0] ,表示把 ds 寄存器中所在段的地址+偏移地址 0 的内存单元中的值赋给ax , 不能用
mov ax, [0] ,这样在masm 中会当作mov ax, 0, 在windows的 debug 和 nasm 中可以用 mov ax, [..] 的方式定位内存,段地址默认放在 ds 中。
2. [bx] 用一个变量来表示内存地址,可用于间接定位一个内存单元。 比如 mov ax, [bx] ,段地址默认放在ds 中
3. [bx+idata] 用一个变量加常量表示内存地址,可在一个其实地址的基础上用变量间接定位一个内存单元
比如:
mov ax, [bx+idata]
mov ax, [idata+bx]
mov ax, idata[bx]
都是等价的,相当于高级语言中的数组表示方法。
4. [bx+si] 用两个变量表示地址。
5. [bx+di] 等价于 [bx+si].
6. [bx+si+idata] 用两个变量和一个常量表示地址。
7 [bx+di+idata] 等价于 [bx+si+idata].
关于 bx,si,di,bp
在 8086 CPU 中,只有这四个寄存器可以用在 [...] 中进行内存单元的寻址,比如
mov ax, [bx]
mov ax, [bx+si]
mov ax, [bx+di]
mov ax,[ bp]
mov ax, [bp+si]
mov ax, [bp+di]
在[..]中,bx,di,si,bp,可以单个出现,但是只能以四种组合方式出现
bx和si, bx和di, bp和si, bp和di
比如
mov ax,[bx+bp]
mov ax,[si+di]
这两条指令是错误的。
只要在[...]中使用寄存器bp, 而指令中没有显实的给出段地址,段地址默认在 ss 中
mov ax, [bp] 段地址在 ss中
mov ax,[bp+idata] 段地址在 ss中
mov ax,[bp+si] 段地址在 ss中
mov ax, [bp+si+idata] 段地址在 ss中
也可以显实的指定段寄存器
mov ax, ds:[bp]
mov ax, es:[bx]
mov ax, ss:[bx]
mov ax ,cs:[bx+si]
-------------------------------------------------------------------------------------------------
寻址方式总结
寻址方式 名称
[idata] 直接寻址
[bx] 寄存器间接寻址
[si] 寄存器间接寻址
[di] 寄存器间接寻址
[bp] 寄存器间接寻址
[bx+idata] 寄存器相对寻址
[ si+idata] 寄存器相对寻址
[di +idata] 寄存器相对寻址
[bp+ idata] 寄存器相对寻址
[bx+si] 基址变址寻址
[bx+di] 基址变址寻址
[bp+si] 基址变址寻址
[bp+di] 基址变址寻址
[bx+si+idata] 相对基址变址寻址
[bx+di+idata] 相对基址变址寻址
[bp +si +idata] 相对基址变址寻址
[bp+di+idata] 相对基址变址寻址
8086 CPU 寻址方式的更多相关文章
- 8086 CPU 寄存器简介
转载:http://www.cnblogs.com/BoyXiao/archive/2010/11/20/1882716.html 引子 打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些 ...
- Intel 8086 CPU
一.8086概述 Intel8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标).资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配 ...
- [转帖]8086 CPU 寄存器简介
8086 CPU 寄存器简介 https://www.cnblogs.com/BoyXiao/archive/2010/11/20/1882716.html 哎 没看完 感觉好复杂. 引子 打算写几篇 ...
- 8086 cpu为什么要把段地址*16+偏移量形成物理地址呢?
8086 cpu为什么要把段地址*16+偏移量形成物理地址呢? 这是因为,8086地址线是20位,段寄存器是16位,将段寄存器*16实际上就是向左移动4位,形成20位和8086的二十位地址线匹配. I ...
- 8086 CPU 寄存器简介(超详细,图文并茂)
http://www.cnblogs.com/BoyXiao/archive/2010/11/20/1882716.html
- linux 内核源代码情景分析——Intel X86 CPU 系列的寻址方式
当我们说一个CPU是"16位"或"32"位时,指的是处理器中"算数逻辑单元"(ALU)的宽度.数据总线通常与ALU具有相同的宽度.当Inte ...
- 【OS】实模式和保护模式区别及寻址方式
实模式和保护模式区别及寻址方式 转载请注明出处:http://blog.csdn.NET/rosetta 64KB-4GB-64TB? 我记得大学的汇编课程.组成原理课里老师讲过实模式和保护模式的区别 ...
- [转]CPU的位数与操作系统的位数的区别
转自:http://weiheyouchou.blog.hexun.com/35564976_d.html 随着近来AMD和Intel的64位CPU以及 Microsoft 64位操作系统的相继发布, ...
- 汇编语言--寄存器(cpu工作原理)
本文地址:http://www.cnblogs.com/archimedes/p/assembly-register.html,转载请注明源地址. 本文主要将介绍的是8086 CPU中的寄存器, 寄存 ...
随机推荐
- 自定义安装Apache+php+mysql网站服务器环境
自定义安装Apache+php+mysql 这种方式是比较麻烦的安装方式,需要具有一定的对Apache了解的基础上才能安装,安装顺序就是先安装Apache软件,然后安装php,最后安装mysql.这里 ...
- R语言RJava安装步骤
1.安装JDK 2.在R下运行install.packages("rJava") 2.环境变量设置 CLASSPATH=xxx\R-xxx\library\rJava\jri ...
- JQuery - 提交表单
[JavaScript] JQuery异步提交表单与文件上传 Jquery.form.js是一个可以异步提交表单及上传文件的插件. 文档地址:http://jquery.malsup.com/form ...
- nginx提示:500 Internal Server Error错误的解决方法
现在越来越多的站点开始用 Nginx ,("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 ...
- 05-UIKit(UITableViewController)
目录: 一.UITableViewController(表视图控制器) 二.委托协议 三.tableview工作过程(三问一响应) 四.UITableViewCell 回到顶部 一.UITableVi ...
- 清华集训2014 day2 task3 矩阵变换
题目 算法 稳定婚姻系统(其实就是贪心) 一个方案不合法,当且仅当下面这种情况: 设第\(i\)行选了数字\(x\),如果第\(j\)行有一个\(x\)在第\(i\)行的\(x\)后面,并且第\(j\ ...
- UITableViewHeaderFooterView的使用+自己主动布局
UITableViewHeaderFooterView的使用+自己主动布局 使用UITableView的header或footer复用时,假设採用自己主动布局,你会发现有约束冲突,以下这样写能够消除约 ...
- 普通图片转ascii码字符图
效果图 基本思路 把图片每个像素点的信息拿出来,最重要的是拿到rgb的值 把每个像素点由rgb转成灰度图像,即0-255 给0-255分级,把每个等级的像素点转换成ascii码,完成 实现 第一步:获 ...
- 瑞蓝RL-NDVM-A16网络视频解码器 视频上墙解决方案专家--数字视频解码矩阵
瑞蓝网络数字视频解码矩阵(简称RL-NDVM)是依据第三代开放式网络视频监控系统的实际需求,专为视频上墙显示而研制的一款新型数字解码上墙设备.RL-NDVM解码矩阵是集解码器和HDMI/DVI/VGA ...
- 远程调用内核接口(remote call kernel)
-------------------------------------------------------------------------------- 标题: 远程调用内核接口(remote ...