找回密码
 register

QQ登录

只需一步,快速开始

查看: 52|回复: 0

[汇编语言] [零基础入门学习]·02·基础知识·汇编语言的组成·存储器·指令和数据·存储单元·CPU对存储器的读写

[复制链接]

[汇编语言] [零基础入门学习]·02·基础知识·汇编语言的组成·存储器·指令和数据·存储单元·CPU对存储器的读写

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:91
  • 打卡月天数:14
  • 打卡总奖励:91
  • 最近打卡:2025-01-15 02:59:34
Waylee

主题

0

回帖

1万

积分

仙帝

积分
11890
Waylee 2024-12-19 16:06 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×

1.3 汇编语言的组成

  汇编语言发展至今,有以下3类指令组成。

  (1)汇编指令:机器码的助记符,有对应的机器码。
  (2)伪指令:没有对应的机器码,由编译器识别,没有对应的机器码。
  (3)其他符号:如+、-、*、/等,由编译器识别,没有对应的机器码。

  汇编语言的核心是汇编指令,它决定了汇编语言的特性。

1.4 存储器

  CPU是计算机的核心部件,它控制整个计算机的运作并进行运算。要想让一个CPU工作,就必须向它提供指令和数据。指令和数据在存储器中中存放,也就是我们平时所说的内存。在一台PC机中内存的作用仅次于CPU。离开了内存,性能再好的CPU也无法工作。这就像再聪明的大脑,没有了记忆也无法进行思考。磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU使用。要灵活地利用汇编语言编程,我们首先要了解CPU是如何从内存中读取信息,以及向内存中写入信息的。

1.5 指令和数据

  指令和数据是应用上的概念。在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。CPU在工作的时候把有的信息看做指令,有的信息看做数据,为同样的信息赋予了不同的意义。就像围棋的棋子,在棋盒里的时候没有任何区别,在对弈的时候就有了不同的意义。

  例如,内存中的二进制信息 1000100111011000,计算机可以把它看作大小为 89D8H 的数据来处理,也可以将其看作指令 mov ax,bx 来执行。

  1000100111011000 -> 89D8H(数据)
  1000100111011000 -> mov ax,bx(程序)

1.6 存储单元

  存储器被划分成若干个存储单元,每个存储单元从 0 开始顺序编号,例如一个存储器有128个存储单元,编号从1~127,如图 1.2 所示。

图 1.2 存储单元的编号

图 1.2 存储单元的编号

图1.2 存储单元的编号

  那么一个存储单元能存储多少信息呢?我们知道电子计算机的最小信息单位是bit(音译为比特),也就是一个二进制位。8个bit组成一个Byte,也就是通常讲的一个字节。微型机存储器的存储单元可以存储一个Byte,即8个二进制位。一个存储器有128个存储单元,它可以存储128个Byte。

  微机存储器的容量是以字节为最小单位来计算的。对于拥有 128 个存储单元的存储器,我们可以说,它的容量是 128 个字节。

  对于大容量的存储器一般还用以下单位来计量容量(以下用B来代表Byte):
  1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB
  磁盘的容量单位同内存的一样,实际上以上单位是微机中常用的计量单位。

1.7 CPU对存储器的读写

  以上讲到,存储器被划分成多个存储单元,存储单元从零开始顺序编号。这些编号可以看作存储单元在存储器中的地址。就像一条街,每个房子都有门牌号码。

  CPU要从内存中读数据,首先要指定存储单元的地址。也就是说它要先确定它要读取哪一个存储单元中的数据。就像在一条街上找人,先要确定他住在哪个房子里。

  另外,在一台微机中,不只有存储器这一种器件。CPU在读写数据时还要指明,它要对哪一种器件进行操作,进行哪种操作,是从中读取数据,还是向里面写入数据。

  可见,CPU要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行下面3类信息的交互,

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

  那么CPU是通过什么将地址、数据和控制信息传到存储器芯片中的呢?电子计算机能处理、传输的信息都是电信号,电信号当然要用导线传送。在计算机中专门有连接CPU和其他芯片的导线,通常称为总线,总线从物理上来讲,就是一根根导线的集合。根据传送信息的不同,总线从逻辑上又分为3类,地址总线、控制总线和数据总线。

  CPU从3号单元中读取数据的过程(见图1.3)如下。

图1.3 CPU从内存中读取数据的过程

图1.3 CPU从内存中读取数据的过程

图1.3 CPU从内存中读取数据的过程

  (1)CPU通过地址线将地址信息3发出。
  (2)CPU通过控制线发出内存读命令,选中存储器芯片,并通知它,将要从中读取数据。
  (3)存储器将3号单元中的数据8通过数据线传入CPU。

  写操作和读操作的步骤相似。如向3号单元写入数据26.
  (1)CPU用过地址线将地址信息3发出。
  (2)CPU通过控制线发出内存写命令,选中存储器芯片,并通知它,要向其中写入数据,
  (3)CPU通过数据线将数据26送入内存3号单元中。

  从上面我们知道了CPU是如何进行数据读写的。可是,如何命令计算机进行数据的读写呢?

  要让一个计算机或微处理器工作,应向它输入能够驱动它进行工作的电平信息(机器码)。
  对于8086CPU,下面的机器码,能够完成从3号单元读数据。

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

  CPU接收这条机器码后将完成我们上面所述的读写工作。

  机器码难以记忆,用汇编指令来表示,情况如下。

  机器码:10100001 00000011 00000000
  对于的汇编指令:MOV AX,[3]
  含义:传送3号单元的内容入AX

您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |天天打卡

GMT+8, 2025-1-15 17:49 , Processed in 0.111594 second(s), 8 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表