aizixun8 发表于 2025-4-24 14:04:34

机器码是什么-机器码是什么硬件-机器码原理

我们之前已经知晓了单片机的主要组成部分,这些组成部分构成了单片机的硬件。硬件呢,就是能够被看到且能够被摸到的实体。然而,仅仅拥有这样的硬件,仅仅具备了实现计算和控制功能的可能性而已。

单片机若要真正具备计算和控制的能力,就必须有软件予以配合。软件主要涵盖各种程序。只有把各种正确的程序存储到单片机中,它才能够有效地开展工作。单片机能够自动进行运算和控制,是因为人将实现计算和控制的步骤以命令形式,也就是一条条指令预先存入到存贮器中。在 CPU 的控制下,单片机会将指令一条条取出,然后进行翻译和执行。就拿两个数相加这一简单运算举例,当需要运算的数已存入存贮器后,还需进行以下几步:

第一步:把第一个数从它的存贮单元()中取出来,送至运算器。

第二步:把第二个数从它所在的存贮单元中取出来,送至运算器;

第三步:相加;

第四步:把相加完的结果,送至存贮器中指定的单元。

文章较长且字数较多,大家可以先打开头像关注我,然后再慢慢看。我在今年年初录制了一套较为系统的入门单片机教程,想要的同学可以找我拿,私信我即可,点我头像左下角黑色字体加我也能领取。

指令与指令系统:

取数、送数、相加、存数等这些都是一种操作。我们把要求计算机执行的各种操作用命令形式写下来,这就是指令。然而,怎样去辨别和执行这些操作呢?这是在设计单片机时,由设计人员赋予它的指令系统来决定的。一条指令对应着一种基本操作。单片机能够执行的所有指令,构成了该单片机的指令系统(Set)。不同种类的单片机,它们的指令系统是不一样的。

源程序:

单片机正常运作需事先进行编制程序这一步骤,接着把程序放置到存贮器里,之后由 CPU 来执行该程序。因为程序是由指令构成的,所以应当把要解决的问题编成一连串的指令。并且这些指令必须是被选定的单片机能识别和执行的指令。单片机用户为解决自身问题所编写的指令程序,被称作源程序。

https://img1.baidu.com/it/u=1949033730,328591767&fm=253&fmt=JPEG&app=120&f=JPEG?w=799&h=500

指令的构成:指令的基本组成是操作码和操作数。

指令通常分为操作码()和操作数()两大部分。

1.操作码表示计算机执行什么操作,即指令的功能;

操作数指的是参加操作的数。操作数也可以是操作数所在的地址,也就是操作数所存放的地方的编号。

MCS-51 单片机的字长是 8 位。有时候,要完成某些操作,仅用一个字节无法充分表达。因此,在其指令系统中,既有单字节指令,也有多字节指令。

机器语言与机器码:

单片机是一种可编程器件,它只“认得”二进码,也就是 0 和 1。要让单片机运作起来,单片机系统中的所有指令都必须以二进制编码的形式来进行表示。Intel 公司的 MCS-51 系列单片机中,有从存贮器取出一数到 CPU 中的累加器(此累加器在运算器中,是参与运算、存放运算结果的专用寄存器)的指令代码为 74H,还有累加器内容加立即数的代码为 24H,另外,加上立即数代码后,累加器送数到内部 RAM 存贮器的代码为 F6H~F7H 等。这些指令是用十六进制表示二进制的机器码。

汇编语言与助记符:

机器码由一连串的 0 和 1 构成。它没有明显特征,难以记忆,不易理解,容易出错。因此,直接用它来编写程序是很困难的。所以,人们用一些助记符来代替操作码,这些助记符通常是指令功能的英文缩写,比如在 MCS-51 中,数的传送常用 MOV(Move 的缩写),加法用 Add(的缩写)。这样,每条指令都具有明显的动作特征,这使得它易于被记忆和理解,同时也不容易出现错误。

程序用助记符编写就称为汇编语言程序。助记符编写的程序容易被人理解,然而单片机只认识二进制机器代码。所以,要让单片机能“读懂”汇编语言程序,就必须将其转换成由二进制机器码构成的程序,这种转换过程叫做“汇编”。汇编既可以借助人工查表法来实现,也可以借助 PC 机通过所谓的“交叉汇编程序”来完成。用户程序由机器码构成,当它“进入”了单片机后,再“启动”单片机,就能够让单片机执行输入程序所规定的任务。

大部分朋友可能知晓 51 单片机和 stm32 单片机,也知道一般入门会先学习 51 单片机,学习 stm32 单片机会相对简单些。然而,对于 51 单片机和 stm32 单片机的具体区别,他们却并不了解。有些人觉得没有必要去了解这些区别,但我个人认为,只有在搞懂了它们之间的差异之后,对于自身的学习才会有极大的好处。

学习第一层的目的是能够用 C 语言编写简单的逻辑控制。例如可以实现闪烁 LED,进行简单数码管显示,还能驱动一些简单的外设。对于对单片机感兴趣的初学者以及喜欢动手实践的人来说,两周时间就可以达到这些要求。虽然不能说熟练,但基本能够会使用。

https://img1.baidu.com/it/u=1923653754,2804233379&fm=253&fmt=JPEG&app=138&f=JPEG?w=454&h=318

基本会用之后就可以着手进行一些简单的例程修改。在进行扫描按键操作时,先检测是否按下,接着做一个延时 20ms 的动作,然后再次检测是否按下,之后能得到某个信号的反馈。通过一系列的案例修改,能让自己更深入地了解单片机编程。千万不要修改了一个就觉得自己会了,然后就放下去弄其他东西,因为熟能生巧适用于每一个行业。

大多数电类专业学生,除了参加电赛的那些同学外,很多人在毕业时,或许还未曾做完这类级别的事情。

下面我们就来进入今天的主题

单片机简介

单片微型计算机简称单片机。它简单来讲,是将 CPU(负责运算和控制)、RAM(用于数据存储,即内存)、ROM(用于程序存储)、输入输出设备(如串口、并口等)以及中断系统集成在同一芯片上的器件。在我们的个人电脑中,CPU、RAM、ROM、I/O 这些都是各自独立的芯片,然后这些芯片被安装在一个主板上,从而构成了我们的 PC 主板,进而组装成电脑。而单片机只是把这些所有的功能都集中在了一个芯片上。

51单片机和STM32单片机

51 单片机是对所有与特定指令系统兼容的单片机的统称。Intel 的 8031 单片机是这一系列单片机的始祖。后来,随着 flash ROM 技术的发展,8031 单片机取得了很大的进步,成为应用最广泛的 8bit 单片机之一。其代表型号是 ATMEL 公司的 AT89 系列。

STM32 单片机是 ST 公司以 arm 公司的 -M 为核心生产的 32bit 系列单片机。它的内部资源,包括寄存器和外设功能,比 8051、AVR 和 PIC 都要多很多,几乎接近于计算机的 CPU 了,适用于手机、路由器等设备。

DSP、AVR和PIC单片机、8051单片机之间区别

AVR 是一种 8 位单片机,它的结构与 8051 单片机不同。PIC 也是一种 8 位单片机,其结构也与 8051 单片机不同。由于结构不同,AVR 和 PIC 的汇编指令也不同。它们都使用 RISC 指令集,指令数量只有几十条,大部分还是单周期指令。因此,在相同的晶振频率下,AVR 和 PIC 比 8051 速度要快。

DSP是一种特殊的单片机。它的位数从 8bit 到 32bit 都有。它专门用于计算数字信号。在某些计算公式方面,它比现在家用计算机的最快 CPU 还要快。例如,一个 32bit 的 DSP 能在一个指令周期内完成一个 32bit 数乘以 32bit 数再加上一个 32bit 数的计算。

对单片机感兴趣的朋友可以找我。我录制了一些关于单片机的入门教程。有需要的同学找我拿就行。只需私信我“林老师”就可以拿。点击打开我的头像就能领取。
页: [1]
查看完整版本: 机器码是什么-机器码是什么硬件-机器码原理