寻址方式
2016-05-31 21:23
148 查看
在8086CPU中,只有bx,si,di,dp这四个寄存器可以用在”[…]”中来进行内存单元的寻址。
在[…]中,这四个寄存器可以单独出现,或只能以4种组合出现:bx和si,bx和di,bp和si,bp和di。
只要在[…]中使用寄存器bp,而指令中没有显性的给出段地址,段地址就默认在ss中。
(2)寄存器
(3)段地址(SA)和偏移地址(EA)
(2)寄存器间接寻址
(3)寄存器相对寻址
(4)基址变址寻址
(5)相对基址变址寻址
在[…]中,这四个寄存器可以单独出现,或只能以4种组合出现:bx和si,bx和di,bp和si,bp和di。
只要在[…]中使用寄存器bp,而指令中没有显性的给出段地址,段地址就默认在ss中。
汇编语言中用3个概念来表达数据的位置。
(1)立即数对于直接包含在机器指令中的数据(执行前在CPU的指令缓冲器中),在汇编语言中称为:立即数,在汇编指令中直接给出。 eg: mov ax,1 add bx,2000h or bx 00010000b mov al,'a'
(2)寄存器
指令要处理的数据在寄存器中,在汇编指令中给出相应的寄存器名。
(3)段地址(SA)和偏移地址(EA)
指令要处理的数据在内存中,在汇编指令中可用[x]的格式给出EA,SA在某个段寄存器中。
寻址方式
(1)直接寻址eg: [idata]
(2)寄存器间接寻址
eg: [bx] [si] [di] [bp]
(3)寄存器相对寻址
用于结构体: [bx].idata 用于数组: idata[si],idata[di] 用于二维数组: [bx][idata] eg: [bx+idata] [si+idata] [di+idata] [bp+idata]
(4)基址变址寻址
用于二维数组:[bx][si] eg: [bx+si] [bx+di] [bp+si] [bp+di]
(5)相对基址变址寻址
用于表格(结构)中的数组项: [bx].idata[si] 用于二维数组: idata[bx][si] eg: [bx+si+idata] [bx+di+idata] [bp+si+idata] [bp+di+idata]
相关文章推荐
- 汇编语言无效指令错误概述
- 汇编语言超浓缩教程
- C 语言内嵌汇编栈指针问题
- 初学汇编语言的几个练习题
- 算法效率分析
- 下资源网站”逆向工程,软件破解学习资料汇总
- 怨念。怎么就一直待审核呢
- 汇编语言Day_01:汇编中常用的寄存器简单介绍
- 汇编语言的Hello world程序
- X86编译学习
- 《汇编语言》-王爽-第三版-读书笔记-前言
- 麻省理工大学XV6操作系统赏析(用户态的实用工具)
- Hello World 汇编语言版
- 汇编语言 之 除法溢出问题
- 汇编语言王爽 实验10.1
- 汇编语言 课程设计2 之时间设置改进篇
- C语言综合研究与高强度程序设计训练 2
- 汇编语言寻址方式在结构化数据访问中的应用
- 学习汇编语言时DOS环境的搭建
- 王爽《汇编语言》(第3版) 实验七