汇编学习笔记---3内存访问
2015-11-20 13:01
204 查看
在CPU中,用16位寄存器来存储一个字,高8位存放高字节,低8位存放弟子姐。
字单元:存放一个字型数据16位的内存单元,有两个地址连续的内存单元组成。
CPU读写一个内存单元的时候,必须给出这个内存单元的地址,在8086PC中,内存地址由段地址X16+偏移地址组成。
8086CPU有一个DS寄存器,通常用来存放数据的段地址,eg:
mov bx, 1000H
mov ds, bx
mov a1,[0]
表示将10000H中的数据读到a1中。
其中,[...]表示一个内存单元,[0]表示内存单元的偏移地址;mov bx, 1000H表示:mov 寄存器名,内存单元地址;
上面的代码实际上是先将段地址1000H放入DS寄存器中,然后使用mov a1,[0]来完成传送。
如何将一个数据放入寄存器呢?
由于8086CPU不支持将数据直接送入段寄存器,因此,我们无法直接使用mov ds, 1000H将1000H送入ds寄存器,我们这里是使用一个一般的级才能起bx进行了中转,以此来实现的。
mov, add, sub指令集:
字单元:存放一个字型数据16位的内存单元,有两个地址连续的内存单元组成。
CPU读写一个内存单元的时候,必须给出这个内存单元的地址,在8086PC中,内存地址由段地址X16+偏移地址组成。
8086CPU有一个DS寄存器,通常用来存放数据的段地址,eg:
mov bx, 1000H
mov ds, bx
mov a1,[0]
表示将10000H中的数据读到a1中。
其中,[...]表示一个内存单元,[0]表示内存单元的偏移地址;mov bx, 1000H表示:mov 寄存器名,内存单元地址;
上面的代码实际上是先将段地址1000H放入DS寄存器中,然后使用mov a1,[0]来完成传送。
如何将一个数据放入寄存器呢?
由于8086CPU不支持将数据直接送入段寄存器,因此,我们无法直接使用mov ds, 1000H将1000H送入ds寄存器,我们这里是使用一个一般的级才能起bx进行了中转,以此来实现的。
mov, add, sub指令集:
相关文章推荐
- 微信扫描二维码返回XML
- MFC定时器的使用
- 浅谈lambda表达式
- php后台“爬虫”模拟登录第三方系统(一)---cURL的介绍
- Linux CentOS6.0图文安装教程
- maven之ContextLoaderListener和sqlSessionFactory没找到
- 如何快速掌握一门技术
- 稳定软件供应链的关键是雇佣开源维护者
- 给出二叉树,将二叉树进行中序线索化,在根据中序线索化二叉树,找出给定节点的前序后继节点,和给出节点的后序后继节点
- ubuntu下apt-get安装nginx后的升级
- LIBSVM的安装——Mac/Windows
- TCP/IP网络配置实验
- 编辑-发布-开发分离:git作为NoSQL数据库
- android 适配器里面的按钮点击切换
- 堆和栈的区别
- RS-7445 [Serv MS leaking memory] [It will be restarted]
- asp.net 动态压缩、切割图片,并做缓存处理机制
- java spring - MVC异常统一处理实战
- BNU 13289 Energetic Pandas DP
- Windbg实用手册