汇编语言(1)- 计算机基础[通俗易懂]

汇编语言(1)- 计算机基础[通俗易懂]一、机器语言机器语言是机器指令的集合,机器指令就是一台机器可以正确执行的命令。电子计算机的机器指令就是一列二进制数据,计算机将其转换为一列高低电平,使计算机的电子器件受到驱动,进行运算。二、汇编语言1.特点汇编语言的主体使汇编指令,汇编指令和机器指令的差别在于表示的方法上,汇编指令是便于记忆的书写格式例如:机器指令:1000100111011000表示把BX寄存器的内容发送到AX寄存器中汇编指令:movax,bx2.汇编语言的组成汇编指令:机器码的助记符,有对应的机器码伪指

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、机器语言

机器语言是机器指令的集合,机器指令就是一台机器可以正确执行的命令。电子计算机的机器指令就是一列二进制数据,计算机将其转换为一列高低电平,使计算机的电子器件受到驱动,进行运算。

二、汇编语言

1. 特点

汇编语言的主体使汇编指令,汇编指令和机器指令的差别在于表示的方法上,汇编指令是便于记忆的书写格式

例如:

机器指令:1000100111011000 表示把BX寄存器的内容发送到 AX寄存器中

汇编指令:mov ax,bx

请添加图片描述

2. 汇编语言的组成

  • 汇编指令:机器码的助记符,有对应的机器码
  • 伪指令:没有对应的机器码,由编译器执行
  • 其他符号:如 +、-、*、/ 等

3. 存储器

cpu是计算机的核心部件,控制整个计算机的运作并进行运算,想要cpu工作就必须提供指令和数据,指令和数据就存放再存储器中。

4. 指令和数据

指令和数据只是应用上的概念,在内存或磁盘上,指令和数据没有任何区别,都是二进制信息,CPU工作时把有的信息看作指令,有的信息看作数据,为同样的信息赋予了不同的意义。只有在使用时,才会有意义

5. 存储单元

特点:存储器被划分成若干个存储单元,每个存储单元从 0 开始编号。每个存储器可以存储 128个Byte,而一个存储单元可以存储1个Byte

在这里插入图片描述

6. CPU对存储器的读写

CPU要从内存中读取数据时需要与外部器件(芯片)进行下面3类的信息交互

  • 存储单元的地址(地址信息)
  • 器件的选择,读或者写(控制信息)
  • 读或写的数据(数据信息)

电子计算器能处理,传输的信息都是电信号,电信号需要使用导线进行传送,而计算机中有专门连接CPU和其他芯片的导线,通常称为 总线

在这里插入图片描述

  • CPU通过地址线发送出存储单元3信息
  • CPU通过控制线发出内存读的命令,选中存储器芯片,并且通知它,将要从中读取数据(或者写命令)
  • 存储器将3号单元的数据通过数据线送入CPU(或者将数据送入存储单元3中)

如何操作CPU进行数据的读取?

机器码:101000010000001100000000

含义:从3号存储单元读取数据送入寄存器AX

汇编指令:MOV AX,[3]

7. 总线

7.1 地址总线

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

例如:一个CPU有10根地址总线,而一根导线可以传送的稳定的状态为高电平低电平两种状态,也就是1和0,而10位二进制数据可以传送2的10次方,最小数为0,最大数为1023。一个CPU有N根地址线,则可以说这个CPU最多可以寻找2的N次方个内存单元

在这里插入图片描述

7.2 数据总线

CPU与内存或其他器件之间的数据传输是通过数据总线来进行传输的,数据总线的宽度决定了CPU和外界的数据传输速度。8根数据总线一次可以传送一个8位二进制数据(一个字节),16根数据总线一次可以传输2个字节。

8088CPU数据总线的宽度为8位,8086CPU的数据总线宽度位16位。所以8088传输一个 89D8 数据到内存中,需要分成两次传输

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wjozqO5q-1631587764193)(images/image-20210913151630782.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TVWh8BbD-1631587764194)(images/image-20210913151643508.png)]

7.3 控制总线

CPU对外部器件的控制是通过控制总线进行的。控制总线是一些不同控制线的集合,有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。控制总线的宽度决定了CPU对外部器件的控制能力

前面说到的内存读或写命令,是由几根控制线综合发出的,其中有一根称为“读信号输出”,还有一根称为“写信号输出”的控制线

检测点

在这里插入图片描述

  1. 16根总线
  2. 1024个存储单元,编号 0-1023
  3. 8192bit,1024Byte
  4. 1073741824, 1048576, 1024
  5. 64,1,16,4 (一个存储单元可以存8位1字节)
  6. 1,1,2,2,4
  7. 512,256
  8. 数据

8. 内存地址空间

例如:一个CPU的地址总线的宽度为10,那么就是1024个存储单元,而这1024个可寻的存储单元就构成了内存地址空间。而我们所用的 64位CPU,理论上来说寻址能力可以达到 200多wTB

9. 主板和接口卡

主板:每一台PC机都有主板,主板上有核心器件和主要器件,这些器件通过总线相连。例如:CPU、存储器、外围芯片组、扩展插槽。扩展插槽一般有RAM内存条和各类接口卡

接口卡:所有程序控制其工作的设备,必须受到CPU的控制。如显示器、音响这类设备都是通过扩展插槽上面的接口卡与CPU想连,而接口卡又是通过总线同CPU想连。CPU可以直接通过控制这些接口卡,实现对外设的简介控制

10. 各类存储芯片

从独写属性上看分为两类:随机存储器(RAM)、只读存储器(ROM)

RAM:可读可写,必须带电存储,关机后存储内容丢失

ROM:只能读取不能写入,关机后内容不丢失

  • 随机存储器:存放供CPU使用的绝大部分程序和数据
  • 装有BIOS的ROM:BIOS是由主板和各类接口卡厂商提供的软件系统,可以通过它利用该硬件设备进行最基础的输入输出
  • 接口卡上的RAM:某些接口卡需要对大批量输入、输出数据进行暂时存储,在其上装有RAM。最典型的就是显卡的显存
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hxdB6fka-1631587764195)(images/image-20210914101203094.png)]

11. 内存地址空间

CPU在控制上诉器件的时候,都把它们当作内存来对待,把它们总的看作一个由若干个存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b20orb4W-1631587764195)(images/image-20210914101514330.png)]
假设上图中的内存地址空间的地址段分配如下:

  • 0 – 7FFFH 的 32KB 空间为主RAM的地址空间
  • 8000H – 9FFFH 的 8KB空间为显存地址空间
  • A000H – FFFFH的24KB空间为各个ROM的地址空间

cpu向地址为1000H的内存单元中写入数据,这个数据就会被写入主随机存储器中;

cpu向地址为8000H的内存单元中写入数据,这个数据就被写入显卡中,然后会被显卡输出到显示器上;

内存地址空间的大小受CPU地址总线宽度的限制,总线宽度为20,那么可以传送 2^20 个不同的地址信息,就是1MB;同理总线宽度为32,内存地址空间的最大为 4GB。所以当我们想在某类存储器中读写数据时,必须要知道第一个单元的地址和最后一个单元的地址;比如我们要将数据显示在屏幕上,就必须要知道显存的内存地址空间是多少。

不同的计算器内存地址的分配是不同的,下面是8086CPU的内存地址划分

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sXbraN94-1631587764196)(images/image-20210914102708879.png)]

00000 – 9FFFF 相当于在独写 主存储器中的数据;A0000 – BFFFF 相当于在操作显存中的数据;C0000 – FFFFF 操作是无效的,因为ROM是只读存储器

最终运行程序的是CPU,我们用汇编语言的时候,必须要从CPU的角度考虑问题,系统中所有的存储器的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU的寻址能力的限制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/179761.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • python2 nonlocal_python关键字及用法

    python2 nonlocal_python关键字及用法python变量引用顺序:从当前作用域开始寻找变量,如果没找到就往上一层作用域寻找,没找到就再上一层……即:当前作用域局部变量->外层作用域变量->再外层作用域变量->……->当前模块全局变量->pyhton内置变量global:全局变量nonlocal:外层嵌套函数的变量使用总结:局部作用域改变全局变量用global,global同时还可以定义新的…

  • js获取当前年月日时分秒_js获取当前系统时间年月日

    js获取当前年月日时分秒_js获取当前系统时间年月日vardate=newDate();date.getYear();//获取当前年份(2位)date.getFullYear();//获取完整的年份(4位)date.getMonth();//获取当前月份(0-11,0代表1月)date.getDate();//获取当前日(1-31)date.getDay();//获取当前星期X(0-6,0代表星期天)date.getT…

  • PHP常见面试题_php面试常问面试题

    PHP常见面试题_php面试常问面试题一.基本知识点1.1HTTP协议中几个状态码的含义:503500401403404200301302。。。200:请求成功,请求的数据随之返回。301:永久性重定向。302:暂时行重定向。401:当前请求需要用户验证。403:服务器拒绝执行请求,即没有权限。404:请求失败,请求的数据在服务器上未发现。500:服务器错误

  • 属于iscsi使用的命令_tempadm

    属于iscsi使用的命令_tempadm[root@xifenfei~]#fdisk-lDisk/dev/sda:21.4GB,21474836480bytes255heads,63sectors/track,2610cylindersUnits=cylindersof16065*512=8225280bytesDeviceBootStartEndB…

  • navicat mac激活码(注册激活)

    (navicat mac激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZPB5EL5Q-eyJsaWNlb…

  • OHEM的pytorch代码实现细节

    OHEM的pytorch代码实现细节详细解读一下OHEM的实现代码:defohem_loss(batch_size,cls_pred,cls_target,loc_pred,loc_target,smooth_l1_sigma=1.0):”””Arguments:batch_size(int):numberofsampledroisforbboxhe…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号