8086 CPU 寻址方式
来源:互联网 发布:宁波ug编程培训学校 编辑:程序博客网 时间:2024/06/01 10:40
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 寻址方式
- 8086CPU的寻址方式
- 大话8086/8088cpu寻址方式
- CPU寻址方式
- CPU寻址方式与过程
- 8086 寻址方式(一)CPU和主存中的寻址方式
- 8086 CPU的七种基本的寻址方式【备查】
- 微型计算机原理与接口技术8086cpu的寻址方式
- 32位cpu的寻址方式
- 【转】32位cpu的寻址方式
- intel x86 cpu系列的寻址方式
- 32位cpu的寻址方式
- 软考之CPU的寻址方式
- Intel X86系列CPU寻址方式
- 32位下CPU的寻址方式
- 深度理解“CPU内部寻址方式”
- [汇编]8086寻址方式
- 8086寻址方式学习
- win7 vmware虚拟机 中 mac系统无法上网
- RIP路由协议
- c++的文件读写
- hdu1392Surround the Trees 凸包
- 期末二
- 8086 CPU 寻址方式
- 总结:复合数据对象
- Opengl Depth Value Transformation
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- 逆向常用断点设置列表
- 三、初学Java多线程:使用Runnable接口创建线程
- 研发漫画之二:救火还需纵火犯
- Android TouchDelegate
- C#枚举类型 标志枚举