1. CPU中,用16位来存储一个字。高8位存放高位字节,低8位存放低位字节。
  2. 内存存储中,内存单元是字节单元(1单元=1字节),则一个字要用两个地址连续的内存单元存放。
  3. 内存存储中,高位字节,和低位字节是相对的,指令指向的是低位字节。
  4. 字单元,即存放一个字型数据(16位=2字节)的内存单元,由两个地址连续的内存单元组成。
  5. 8086CPU中有一个DS寄存器,通常用来存放要访问数据的段地址
  6. MOV指令的几种种功能:
    • 将数据直接送入寄存器 mov ax,1000H
    • 将一个寄存器中的内容送入另一个寄存器 mov ax,bx;mov ds,ax
    • 将一个内存单元中的内容送入寄存器 mov ax,[...]
    • 将寄存器中的内容送入内存单元 mov [...],ax
    • ...
  7. “[...]”表示一个内存单元,“[...]”中的内容则表示内存单元的偏移地址。
  8. 8086CPU中,不能给DS寄存器直接赋值,需要通过通用寄存器间接赋值,如“段地址-->通用寄存器-->DS寄存器”。
  9. add指令表示相加,sub指令表示相减。
  10. [address]便是一个偏移地址为address的内存单元。
  11. mov、add、sub是具有两个操作对象的指令。jmp是具有一个操作对象的指令。
  12. 是一种具有特殊的访问方式的存储空间,它的特殊性就在于,先进后出的特性。
  13. 8086CPU提供了入栈和出栈指令,最基本的两个是PUSH(入栈)POP(出栈)。
  14. 8086CPU的入栈和出栈操作都是以字(2字节)为单位进行的。
  15. 8086CPU中,有两个寄存器,段寄存器SS和寄存器SP,栈顶的段地址存放在SS中,偏移地址存放在SP中。
  16. 任意时刻,SS:SP指向栈顶元素
  17. PUSH入栈时,SP=SP-2(1字),栈顶从高地址向低地址方向增长,出栈时则SP=SP+2.
  18. 栈为空时,栈中没有元素,也就不存在栈顶元素,所以SS:SP只能指向最底部单元下面的单元
  19. 8086CPU不能保证我们对栈的操作不会超界,它只知道栈顶在何处(有SS:SP指示),并不知道这个栈有多大。
  20. push和pop指令可以有如下形式:
    • push  寄存器
    • pop   寄存器
    • push  段寄存器
    • pop   段寄存器
    • push  内存单元
    • pop   内存单元
  21. 请灵活,仔细运用CS:IP(指令),DS:[...](数据),SS:SP(栈)
    • 对于数据段,将它的段地址放在DS中,用mov,add,sub等访问内存单元的指令时,CPU就将我们第一的数据段内容当成数据来访问。
    • 对于代码段,将它的段地址放在CS中,将段中的第一条执行的指令的偏移地址放在IP中,这样CPU就会执行代码段中的指令
    • 对于栈段,将它的段地址放在SS中,将栈顶单元的偏移地址放在SP中,这样CPU在需要进行栈操作时,比如push,pop指令时,就将栈段当成栈空间来用了。

转载于:https://www.cnblogs.com/zxj159/archive/2012/12/10/2811380.html

3.寄存器(内存访问)相关推荐

  1. 寄存器(内存访问)---汇编学习笔记

    寄存器(内存访问) 序言 第二章,我们主要从CPU如何执行指令的角度讲解了8086CPU的逻辑结构.形成物理地址的方法.相关的寄存器以及一些指令. 这一章,我们从访问内存的角度继续学习几个寄存器. 3 ...

  2. 汇编语言学习-寄存器(内存访问)

    内存中字的存储: 两个16进制位是一个字节! 0号单元是低地址单元,1号单元是高地址单元. 0地址单元中存放的字节型数据是多少? 注意区别:"0地址单元"指向的就是:20H 0地址 ...

  3. 汇编语言:第三章 寄存器(内存访问)

    3.1内存中字的存储 CPU中寄存器是16位的,可以用高低字节存储一个字,但是每个内存单元是8位的,只能存储一个字节, 所以内存中用相邻2个内存单元存储一个字的高低字节 如:20000数值(4E20H ...

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

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

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

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

  6. 寄存器(内存访问)07 - 零基础入门学习汇编语言19

    第三章:寄存器(内存访问)07 让编程改变世界 Change the world by program 栈段 前面讲过,对于8086PC机,在编程时,我们可以根据需要 ,将一组内存单元定义为一个段. ...

  7. 【汇编语言04】第3章 寄存器(内存访问)

    目录 0 前言 1 数据段寄存器 1.1 内存中字的存储 1.2 字的传送 1.3 DS和[address] 1.4 数据段 2 栈段寄存器 2.1 栈的简介 2.2 CPU的栈机制 2.3 SS和S ...

  8. CUDA Pro:通过向量化内存访问提高性能

    CUDA Pro:通过向量化内存访问提高性能 许多CUDA内核受带宽限制,而新硬件中触发器与带宽的比率不断提高,导致带宽受限制的内核更多.这使得采取措施减轻代码中的带宽瓶颈非常重要.本文将展示如何在C ...

  9. MM32F3277 MicroPython的 mem 函数对于MCU内存访问

    简 介: 通过mem32,mem16,mem8可以使得MicroPython向访问数字一样访问MCU中的任意内存.在ARM模型下,所有的寄存器都是基于RAM地址访问,所以原则上,可以通过memxx编程 ...

  10. 《操作系统真象还原》——0.7 内存访问为什么要分段

    本节书摘来自异步社区<操作系统真象还原>一书中的第0章,第0.7节,作者:郑钢著,更多章节内容可以访问云栖社区"异步社区"公众号查看 0.7 内存访问为什么要分段 按理 ...

最新文章

  1. 【其他】GIT常用原生命令
  2. ffmpeg 播放器原理
  3. 统一沟通-技巧-9-Lync 2010-Outlook 2010-自动配置-2-普通人员
  4. linux sock结构体,struct socket结构体详解
  5. MVC4 WebAPI
  6. POJ 2263 floyd思想
  7. android异步线程未执行,关于多线程:当服务在后台运行时,Android异步任务无法正常运行(doInBackground未执行)...
  8. RFID位置数据这么多,企业应该怎么利用?
  9. uboot的常用命令详解
  10. docker nacos mysql nginx 集群一台
  11. 【笔记】汇编..寄存器和地址的概述
  12. python类的继承代码_python--类的继承
  13. Discuz!NT3.0博客扩展
  14. FreeTextBox备忘
  15. w10计算机字体怎么设置在哪里设置,win10电脑系统字体大小如何设置
  16. Java观察者模式(Observer)
  17. matlab仿真数字电路,MATLAB在数字电路仿真中的应用
  18. 软件测试自学入门书籍
  19. Python学习(二)列表,for循环,切片,元组
  20. markdown的搬砖汇总

热门文章

  1. kudu导出为mysql格式_怎么实现kudu表数据的导入导出
  2. 工业机器人入门实用教程_机器学习实用入门
  3. 安装好机器学习环境的虚拟机_虚拟环境之外的数据科学是弄乱机器的好方法
  4. R语言数据转换(split-apply-combin…
  5. stm32 USB增加端点总结
  6. 李嘉诚今日正式退休,来看看他一生都做过哪些牛逼的事
  7. 鹤峰:美丽的茶乡—— 舞狮篇
  8. 把王小波作为离我们最近的一个大师
  9. 使用GDI+保存图像为8bpp的灰度图像
  10. zynq中mgtx应用_基于ZYNQ的UCOS移植(TCP通讯)