热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

第三章知识梳理

1.字单元:存放一个字型数据(16)位的内存单元,有两个地址连续的内存单元组成。高地址内存单元存放字形数据的高位字节,低地址内存单元存放字形数据的低位字节。将起

1.字单元:存放一个字型数据(16)位的内存单元,有两个地址连续的内存单元组成。高地址内存单元存放字形数据的高位字节,低地址内存单元存放字形数据的低位字节。

                  将起始地址为N的字单元简称为N地址字单元。

2.DS:8086CPU中的一个段寄存器,存放将要访问数据的段地址。

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

8086CPU:自动取ds中的数据为内存单元的段地址。

内存单元的地址:DS中的值*16+[...]

3.mov指令:可以进行传送的所有操作对象。

mov 寄存器,数据

mov  寄存器,寄存器

mov 寄存器,内存单元

mov 内存单元,寄存器

mov 段寄存器,寄存器

mov  寄存器,段寄存器

mov 内存单元,段寄存器

mov 段寄存器,内存单元

mov 内存单元,常数

4.add指令:可以进行传送的所有操作对象。

add 寄存器,数据

add 寄存器,寄存器

add 寄存器,内存单元

add 内存单元,寄存器

add  内存单元,常数

5.sub指令:可以进行传送的所有操作对象。

sub 寄存器,数据

sub 寄存器,寄存器

sub 寄存器,内存单元

sub 内存单元,寄存器

sub 内存单元,常数

6.数据段:一组长度为N,地址连续,起始地址为16的倍数的内存单元当作专门存储数据的内存空间。

                只是编程的一种安排,可以用DS指向数据段的段地址,[...]具体的指向。

7.CPU提供的栈机制。

8086CPU:提供相关的指令以栈的形式来访问内存空间,既在基于8086CPU编程的时候,将一段内存空间当作栈来使用。

                   提供的入栈和出栈指令为:PUSH,POP.

                    以字为单位来进行。

                    栈顶位置:段寄存器SS,寄存器SP来表示,SS:SP=栈顶的位置。

                    CPU执行PUSH,POP指令时从SS和SP获取栈顶的位置。

8.栈顶超界问题:8086CPU不保证我们对栈的操作不会越界,8086CPU只知道栈顶在哪里,而不知道我们安排的栈空间有多大,所以需要自己注意栈顶超界问题。

9.push和pop指令。

(1)操作对象。

push (段寄存器,内存单元)寄存器         将(段寄存器,内存单元)寄存器中的值入栈

pop (段寄存器,内存单元)寄存器            出栈,用一个(段寄存器,内存单元)寄存器接受出栈的数据

(2)CPU执行过程。

push指令:先改变SP,再向SS:SP处传送入栈。

pop指令:先读取SS:SP处的数据,再改变SP,移动栈顶。

10.栈段:长度为N的一组地址连续,起始地址为16的倍数的内存单元,当作栈空间来使用。

                仅仅是编程的一种安排,必须用SS:SP来指向。

                以栈的方式来访问这段内存单元即为栈段。

11.一段内存单元是可以同时被认为是数据段(DS表示其段地址),代码段(CS表示其段地址),栈段(SS表示其段地址)。

 


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何在Ubuntu系统中下载适用于Intel处理器的64位版本,涵盖了不同Linux发行版对64位架构的不同命名方式,并提供了具体的下载链接和步骤。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文将详细介绍如何在Linux操作系统中执行PHP脚本,包括环境配置、命令使用及验证方法。对于需要在Linux环境下开发或部署PHP应用的用户来说,这是一篇非常实用的文章。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 在Java中,this是一个引用当前对象的关键字。如何通过this获取并显示其所指向的对象的属性和方法?本文详细解释了this的用法及其背后的原理。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 本文深入探讨了POJ2762问题,旨在通过强连通分量缩点和单向连通性的判断方法,解决有向图中任意两点之间的可达性问题。文章详细介绍了算法原理、实现步骤,并附带完整的代码示例。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 算法题解析:最短无序连续子数组
    本题探讨如何通过单调栈的方法,找到一个数组中最短的需要排序的连续子数组。通过正向和反向遍历,分别使用单调递增栈和单调递减栈来确定边界索引,从而定位出最小的无序子数组。 ... [详细]
  • Splay Tree 区间操作优化
    本文详细介绍了使用Splay Tree进行区间操作的实现方法,包括插入、删除、修改、翻转和求和等操作。通过这些操作,可以高效地处理动态序列问题,并且代码实现具有一定的挑战性,有助于编程能力的提升。 ... [详细]
  • VSCode与Gitee集成:项目提交的高效实践
    本文介绍如何利用VSCode内置的Git工具将项目提交到Gitee,简化Git命令的使用,提升代码管理效率。同时分享一些常见的踩坑经验和解决方案。 ... [详细]
author-avatar
wesley_zx
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有