汇编语言的基础知识

汇编语言是在硬件上工作的编程语言,我们需要了解硬件系统的结构,才能有效的用汇编语言对其进行编程。

一:汇编语言的组成

1)汇编指令:机器码的助记符,有对应的机器码。

2)伪指令:没有对应的机器码,由编译器执行,计算器并不执行。

3)其他符号:如+,-,*,\等,由编译器识别,没有对应的机器码。 

二:CPU

1)CPU是计算机的核心部件,它控制着整个计算机的运行并进行运算。要想让一个CPU工作,就必须向他提供指令和数据。指令和数据在存储器中存放,也就是我们平时所说的内存。

2)指令和数据是应用上的概念。在内存或者磁盘上,指令和数据没有任何的区别,都是二进制信息。

3)CPU要想进行数据的读写,必须和外部器件进行下面3类信息的交互。

    存储单元的地址(地址信息); 器件的选择,读或写的命令(控制信息);读或写的数据(数据信息)。

三:地址总线,控制总线,数据总线。

1)地址总线:CPU是通过地址总线来指定存储单元的,可见地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。

2)数据总线:CPU与内存或者其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了CPU和外界的数据传送速度。

3)控制总线:CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同控制线的集合。所以控制总线的宽度决定了CPU对外部器件的控制能力。

四:部件介绍

1)主板:主板上有许多的核心的器件,这些器件通过总线互相连接,列如CPU,存储器,外围芯片组,扩展插槽等。

2)接口卡:CPU可以控制这些接口卡,从而实现CPU对外设的间接控制。简单的讲,就是CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。

3)各类存储器芯片:随机存储器可读可写,但必须带电存储,关机后存储的内容丢失;只读存储器只能读取不能写入。关机后其中的内容不丢失。

五:内存

1)所以的物理存储器被看作一个由若干个存储单元组成的逻辑存储器,每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间。CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据

 。

2)不同的计算机系统的内存地址空间的分配情况是不同的,最终运行程序的是CPU,我们同汇编语言编程的时候,必须要从CPU的角度来看待问题。对CPU来说,系统中所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器即使我们所说的内存地址空间。

转载于:https://www.cnblogs.com/QiaoGeGe/p/9712741.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CODEVS 1205 单词反转

嗯.... 这道题看起来挺像一个字符串的题,但其实却错了,它实质上却用了一个栈进行了一个模拟(当然还有一种鬼畜的做法,下面也会介绍到..... 首先先看题: 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 题…

NodeJS中resolve添加地址无效

今天一个朋友在群里问了这样一个问题,他使用url.resolve()添加地址无效,我看了一下,发现是他没有注意细节, resolve可以在二级目录下增加,他使用的时候只是一级目录,所以添加会有问题。他使用的是如下这种…

centos配置jdk的环境变量

1、首先呢,centos下的JDK环境配置分两种情况,一直是root用户级别的jdk配置,另一种是其他用户组级别的配置。这里讲解的是root用户级别的配置。 我们已经下载解压好了jdk的目录。如下 2、编辑环境变量的配置文件: vi /etc/profile…

华为摄像机搜索软件_别人的终点华为的起点!用普惠AI守护城市安全

看点:华为好望的求索启示录!如何让老百姓用上实惠的AI?你也许不知道,高空抛物已是城市生活中的一大难以治理的安全隐患。一个小小的烟头、水果从高处扔下来,就可能引起严重火灾、人员伤亡、财物破坏,事发后…

在WebGL场景中进行棋盘操作的实验

这篇文章讨论如何在基于Babylon.js的WebGL场景中,建立棋盘状的地块和多个可选择的棋子对象,在点选棋子时显示棋子的移动范围,并且在点击移动范围内的空白地块时向目标地块移动棋子。在这一过程中要考虑不同棋子的移动力和影响范围不同&#x…

em算法python代码_EM算法的python实现的方法步骤

导读热词前言:前一篇文章大概说了EM算法的整个理解以及一些相关的公式神马的,那些数学公式啥的看完真的是忘完了,那就来用代码记忆记忆吧!接下来将会对python版本的EM算法进行一些分析。EM的python实现和解析引入问题(双硬币问题)…

第一阶段·Linux运维基础-第2章·Linux系统目录结构介绍

01 变量与PS1 02 添加用户 03 关闭SELinux 04 关闭iptables 05 显示中文乱码排查过程 06 总结 07 目录结构课程内容 08 Linux目录结构特点 09 Linux核心目录简介 10 Linux目录文件之配置文件 11 Linux核心目录文件之DNS及屌丝逃离洗浴中心之路 12 Linux核心目录文件…

使用junit-drools进行JBoss Drools单元测试

最近,我一直在大量使用JBoss Drools进行项目。 我不是Drools专家-我也不太相信这个框架,或者可能不是只相信该项目中的特定用例-我发现很难为基于Drools的业务规则编写简单,可维护的单元测试 。 这就是junit-drools诞生的方式-简单的帮助程序…

plsql 为空显示 0 的函数_不加班只加薪!从0到1教你制作出入库进销存表格

出入库表应用十分广泛,是每个公司都用到的表格,下面我们来看看怎么从一张空白表一步一步实现《出入库表》的制作,目的是做到只需要记录出库入库流水,自动对库存及累计出入库数量进行计算、实时统计。出入库表构成做一个出入库表&a…

eShopOnContainers学习系列(一):Swagger的使用

最近在看eShopOnContainer项目,抽取一下其中的基础知识点,做个记录,有兴趣的可以看下。 新建一个.net core API项目,添加Nuget包 Swashbuckle.AspNetCore.SwaggerGen、Swashbuckle.AspNetCore.SwaggerUI: 然后在启动文…

结合WebSocket编写WebGL综合场景示例

在WebGL场景中导入多个Babylon骨骼模型,在局域网用WebSocket实现多用户交互控制。 首先是场景截图: 上图在场景中导入一个Babylon骨骼模型,使用asdw、空格、鼠标控制加速度移动,在移动时播放骨骼动画。 上图在场景中加入更多的骨…

awk----基本用法

awk具体的请看这个 https://www.cnblogs.com/bwbfight/p/9402738.html awk 竟然自诩一种语言,ok.... 牛 既然这样就学习一下吧 awk -F‘[指定多个分隔符]’ 比如 awk -F[ :]表示指定:空格为分隔符 涉及多个重复分割符可以这样指定 awk -F[ :] 表示多个空…

object picker 微信小程序_微信小程序 demo分享

选择器示例demo:1.普通选择器 2.多列选择器 3.时间选择器 4.日期选择器 5.省市区选择器wxml普通选择器:(普通数组)当前选择:{{array[index]}}普通选择器2:(普通json格式数组)当前选择:{{objectArray[objectIndex].name…

Unity插件Gaia使用介绍

零基础创建Unity精美场景地形(使用插件Gaia)一、先上最终效果图二、软件环境搭建1.Unity5.6.0下载链接https://unity3d.com/cn/get-unity/download/archive?_ga2.110664517.1175563345.1516068066-173539005.15020707552.Gaia Unity地形制作插件下载链…

在Spring MVC中使用多个属性文件

每个人都听说过将单个Web应用程序组合成一个大型应用程序的门户。 门户软件的工作原理类似于mashup -来自多个来源的内容在单个服务中被拾取,大部分显示在单个网页中。 门户软件还允许在嵌入到门户软件中的所有单个Web应用程序(独立模块&…

汇编语言实验一

实验任务 (1)使用debug,将程序段写入内存,逐条执行,观察cpu中相关寄存器内容变化。 完成此实验,可用e命令或a命令。 e命令改写内存的内容,如图: 我没有一气喝成,一开始便…

python学习 day6 (3月7日)

#__author : liuyang #date : 2019/3/7 0007 a [a , b , c] b [] print(a is b ) # 空元组 可以 空列表 不可以 print(tuple(a))题目: l1 [11, 22, 33, 44, 55] #将此列表索引为奇数的对应元素全部删除 # 错误示例 for l in range(len(l1)):print(l)if l % 2…

java jni helloword_JNI入门教程之HelloWorld篇

JNI入门教程之HelloWorld篇来源:互联网 宽屏版 评论2008-05-31 09:07:11本文讲述如何使用JNI技术实现HelloWorld,目的是让读者熟悉JNI的机制并编写第一个HelloWorld程序。java Native Interface(JNI)是Java语言的本地编程接口,是J2SDK的一部分。在java…

select多查询,自连接,join 等

题目来源于leetcode中的数据库部分:181. Employees Earning More Than Their Managers 题目:The Employee table holds all employees including their managers. Every employee has an Id, and there is also a column for the manager Id. ----------…

有时候eclipse 导入maven项目 启动的时候回出现这样一个问题

严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SpringMvcController]]at java.util.conc…