1 内存中字的存储

一个字型数据占2个内存单元,内存里面一个内存单元一个字节(8位),高地址单位放高8位,低地址单元放低8位。

注意:0号是地址单元,1是高地址单元(上是低地址,下面是高地址)

(1) 2地址单元中存放的 字节型 数据是 12H

(2)2地址单元的存放法 字型 数据是0012H (字型要2个字节)

(3) 1地址单元的存放的 字型 数据是 124EH

结论:

任何2个地址连续的内存单元,N号和N+1号,可以看成2个内存单元,

也可以看成一个地址为N的字单元中的高字节单元(n+1)和低位字节单元(n)

一个字型数据占2个内存单元,内存里面一个内存单元一个字节(8位),高地址单位放高8位,低地址单元放低8位。

cpu要读取一个内存单元的时候,要先给出这个内存单元的地址

DS寄存器(数据段寄存器),存放要访问的数据的段地址

mov指令的可以完成3种传送:

(1)数据直接送入寄存器

(2)一个寄存器的内容送入另一个寄存器

(3)可以将一个内存单元中的内容送入一个寄存器

mov指令的格式:

mov 寄存器名,内存单元地址

[...]表示一个内存单元,[....]中的0表示内存单元的偏移地址是0

但是内存单元的段地址是: cpu自动取ds中的数据为内存单元的段地址

mov ds,1000H 表示是错误的,

因为8086CPU不支持将数据直接送入段寄存器,

但是直接可以送入通用寄存器,这是硬件设计的问题

数据--》通用寄存器--》段寄存器

从哪个内存单元送到哪个寄存器中呢?

例如: 将数据从内存中单元送入寄存器(AH 是AX 的高8位,AL 是AX 的低8位)

mov bx,1000H

mov ds,bx

mov al,[0] //偏移地址0放到al里面 ,[ ... ]表示一个内存单元, [ ...]里的0表示内存单元的偏移地址是0

上面指令是从1000H(1000:0)中的读数据

思考:如何将数据从寄存器送入内存单元:

mov bx,1000H

mov ds,bx

mov [0],al

2  字的传送:

8086cpu是16位结构,有16根数据线,所以一次性可以传送16位的数据,也就是一次性传送一个字(2个字节,2个16进制=1个字节,2个字节=4个16进制)

比如:

mov bx,1000H

mov ds,bx

mov ax,[0]//1000:0 处的字 型数据(一个字=2个字节)传入

mov [0],cx //cx 中的16位数据送到1000:0处

一个字型数据占2个单元,内存里面一个内存单元一个字节(8位)

测试:

修改命令是 e 1000:0 23 11 22 66

写入命令( a CS:IP)

t执行命令

结果是

分析说明:

3: mov add , sub(减法)指令

mov指令的几个形式:

mov 寄存器,数据 比如 mov ax,8

mov 寄存器,寄存器比如 mov ax,bx

mov 寄存器,内存单元比如 mov ax,[0]

mov 内存单元,寄存器比如 mov [0],ax

mov 段寄存,寄存器比如 mov ds,ax

add和sub形式和mov指令类似,

说明:sub ax,ax和mov ax,0 功能一样;区别是  sub的机器码是2个字节,mov的机器码是3个字节

小结:

(1)字在内存中存储时,要在2个连续的内存单元(一个单元一个字节)来存放。字的低位字节存放在低地址单元中,高为字节存放在高地址单元中

(2)用mov指令访问内存单元,可以在mov指令中给出单元的偏移地址,此时,段地址默认在DS寄存器中

(3)[address]表示一个偏移地址为address的内存单元

(4)在内存和寄存器之间传递 字型 数据时,高地址单元和高8位寄存器,低地址单元和低8位寄存器想对应

(5)mov ,add,sub具有2个操作对象的指令,jmp是具有一个操作对象的指令

C#基础知识之三

C#基础知识之三 1.  程序集间的继承:基类必须被声明为public.必须在project中包含对该基类的程序集引用. 2.  对其它程序集引用和添加对using指令的差别:前者是告诉编译器所需的类 ...

汇编中中括号[]作用以及lea和mov指令的区别

现在总结一下:其中牵扯到lea指令,mov指令,[] 一.lea指令:对于寄存器来说:第二个操作数是寄存器必须要加[],不然报错,这里lea就是取[寄存器]的值,如:mov eax,2lea ebx, ...

【Unity基础知识之三】Unity Assets目录下的特殊文件夹名称

Unity3D的特殊目录名称   Unity预留了一些目录名称,这些目录有着特殊的含义.比较重要的有: Resources这个目录下的所有文件都会被打包到发布版本中,程序可以通过文件路径来访问它们.这 ...

JVM内存划分基础知识

第一部分 JVM内存划分 目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbag ...

PHP数据访问基础知识(20161028)

数据访问 动态页面的特征:能够读取数据库,网页的内容都是从数据库读出来的,而不是写死的 所有的程序归根结底都是对数据的增删改查 如何用服务器的PHP来操作服务器的MySQL,Apache则是用来管理, ...

vue.js基础知识篇(2):指令详解

第三章:指令 1.语法 指令以v-打头,它的值限定为绑定表达式,它负责的是按照表达式的值应用某些行为到DOM上. 内部指令有v-show,v-else,v-model,v-repeat,v-for,v ...

Vue 2.0入门基础知识之内部指令

1.Vue.js介绍 当前前端三大主流框架:Angular.React.Vue.React前段时间由于许可证风波,使得Vue的热度蹭蹭地上升.另外,Vue友好的API文档更是一大特色.Vue.js是一 ...

linux内存基础知识和相关调优方案

内存是计算机中重要的部件之中的一个.它是与CPU进行沟通的桥梁. 计算机中全部程序的执行都是在内存中进行的.因此内存的性能对计算机的影响很大.内存作用是用于临时存放CPU中的运算数据,以及与硬盘等外部 ...

3 Dalvik基础知识

Dalvik汇编基础知识: Dalvik指令:由位描述+指令格式标示 位描述: 1. 每16位空格隔开 2. 每个字母表示4位,每个字母按从高字节开始,排列到低字节.每四位之间可用 | 分开表示不同内 ...

随机推荐

Spring boot开发过程遇到的一些小问题

1.无法将yml文件自动注入到对应的类的实例中去: pom.xml文件里没有加如下依赖 org.springframework.bo ...

6SQL SERVER视图/索引

一.视图 1.视图概念 ①视图是包含由一张或多张表的列组成的数据集.该表中的记录是由一条查询语句执行后所得到的查询结果所构成的. ②视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数 据,其结构 ...

有关Java的优秀博客集锦

1. 在java编程中,多线程并发总有些疑惑:如为什么会产生并发?并发会有什么影响?java中提供了哪些处理并发的技术(机制) 关于并发产生的原因,我查了一些资料目前发现有两种原因:一,存在共享的资源 ...

Leetcode: Arithmetic Slices II - Subsequence

A sequence of numbers is called arithmetic if it consists of at least three elements and if the diff ...

C++多重继承带来的问题

首先上图,咱们看图说话!   橙色表示变量,使用private修饰. 如图,假设Person类的变量name只能通过input方法来输入. 那么继承自Person的Student及Teacher类中s ...

canvas-画蜗牛

mysql 访问寄存器_汇编寄存器(内存访问)基础知识之三---mov指令相关推荐

  1. 汇编寄存器(内存访问)基础知识之三---mov指令

     1 内存中字的存储 一个字型数据占2个内存单元,内存里面一个内存单元一个字节(8位),高地址单位放高8位,低地址单元放低8位. 注意:0号是地址单元,1是高地址单元(上是低地址,下面是高地址) (1 ...

  2. 操作系统之内存管理:1、内存管理基础知识(指令工作原理、地址转化、程序运行过程)

    1.内存管理基础知识(指令工作原理.地址转化.程序运行过程) 思维导图 什么是内存? 指令的工作原理 装入模块的三种实现 绝对装入 可重定位装入 动态重定位 程序的运行过程 链接的三种方式 思维导图 ...

  3. 3.1_ 1_ 内存的基础知识

    3.1_ 1_ 内存的基础知识 文章目录 1.知识总览 2.什么是内存,有什么作用 进程的运行原理-指令 逻辑地址vs物理地址 从写程序到程序运行 装入模块装入内存 装入的三种方式--绝对装入 装入的 ...

  4. 处理器_深度学习及 KPU 基础知识

    kpu 处理器_深度学习及 KPU 基础知识_weixin_39909212的博客-CSDN博客深度学习及 KPU 基础知识1. 阅读完本章文档可以了解什么?了解深度学习一些基础内容了解 K210 内 ...

  5. 计算机知识有什么用处,电脑内存作用是什么?一文带你了解电脑内存的基础知识...

    电脑内存是电脑中至关重要的硬件之一,是不可或缺的硬件.电脑内存作用是什么?下面装机之家一文带你了解电脑内存的基础知识,来看看吧! 电脑内存作用是什么? 内存是其他设备与CPU进行沟通的桥梁,计算机中所 ...

  6. java寄存器_汇编学习 1 寄存器的作用 寻址方式 - DraculaW - JavaEye技术网站

    首先 是寄存器的介绍 寄存器名     说明                            功能 eax:            累加器                 加法乘法指令的缺省寄存 ...

  7. 超线程cpu的寄存器_一文总结 CPU 基本知识

    关于CPU和程序的执行 CPU是计算机的大脑. 1.程序的运行过程,实际上是程序涉及到的.未涉及到的一大堆的指令的执行过程. 当程序要执行的部分被装载到内存后,CPU要从内存中取出指令,然后指令解码( ...

  8. 访问数据库_常用的数据库访问方式是什么?

    常用的数据库访问方式是什么? ASP 访问数据库的方式有哪些? 在 ASP 中可以通过三种方式访问数据库: 1 . IDC ( Internet Database Connector )方式: 2 . ...

  9. 操作系统内存管理_操作系统6内存管理基础

    引言 花了一段时间才把之前的笔记整理了一部分,平时太忙也没啥时间.今天开始整理内存管理部分的,内存管理部分大致分为三部分笔记,第一部分就是本篇内存管理基础,第二部分是虚拟内存,第三部分高速缓存. 一个 ...

最新文章

  1. 使用WebBrowser与msHtml开发WinForms下的HtmlEditor控件
  2. 关闭裁剪功能_4个图片裁剪技巧,瞬间看出Word大神与小白的差距!
  3. 6数组排序的方法_JavaScript数组排序方法
  4. 帆软决策报表嵌入html,在决策报表中使用网页框控件
  5. 卷积神经网络语音识别_用于物体识别的3D卷积神经网络
  6. Cocoa依赖包管理工具
  7. 计算机应用基础形成性考核作业,计算机应用基础形成性考核作业1
  8. libvirt 创建的文件
  9. find命令之xargs
  10. flutter 加载gif图片
  11. 爆破神器 Hydra 的使用
  12. GeoServer中利用SLD配图之矢量图层配图
  13. 小团队管理核心(一)
  14. webstorm打开项目不显示文件夹
  15. 基于C/C++语言的停车场管理系统编程课程设计超详细
  16. java爬虫模拟post请求_java爬虫之使用HttpClient模拟浏览器发送请求方法详解
  17. 2019年Q1美国手游市场总收入24.3亿美元,中国手游贡献2.8亿美元
  18. 二级计算机密码怎么设置,如何设置电脑密码
  19. 音频相关基础知识(采样率、位深度、通道数、PCM、AAC)
  20. qq邮件在腾讯官方服务器有备份吗,foxmail怎么备份和恢复邮件?

热门文章

  1. Ubuntu18.04系统(优化工具+搜狗输入法+wine+微信+拨号上网)
  2. 百度浏览器的隐私安全问题分析
  3. 【labview】限幅子vi +源程序
  4. 码神-day8-java
  5. signature=54cb1c123491dc1a268a21f3502cccfc,汉隶《曹全碑》精讲精练
  6. 问题 I: decimal
  7. 人工智能软件工程师软件清单
  8. C++实现Win11万年历
  9. mounted钩子函数_解决Vue中mounted钩子函数获取节点高度出错问题
  10. k8s集群安装之kubeadm