亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

微处理器编程

任何特定微处理器芯片拥有的指令“词汇表”都特定于该芯片型号。例如,Intel 80386 使用与 Motorola 68020 完全不同的一组二进制代码来指定等效功能。

不幸的是,微处理器指令没有适当的标准。这使得最底层的编程非常混乱和专业。

当人类程序员开发一组指令来直接告诉微处理器如何做某事(例如自动控制发动机的燃油喷射率)时,他们正在使用 CPU 自己的“语言”进行编程。这种语言由与 CPU 芯片内的控制单元解码以执行任务完全相同的二进制代码组成,通常被称为机器语言 .

虽然机器语言软件可以用二进制表示法“措辞”,但它通常以十六进制形式编写,因为人类更容易使用。例如,我将仅介绍 Intel 8080 微处理器芯片的一些常见指令代码:

十六进制二进制指令说明 ----------- -------- ------------------------------- ---------- | 7B 01111011 将寄存器 A 的内容移动到寄存器 E | | 87 10000111 将寄存器 A 的内容添加到寄存器 D | | 1C 00011100 将寄存器 E 的内容加 1 | | D3 11010011 输出数据字节到数据总线 

即使使用十六进制表示法,这些指令也很容易混淆和忘记。为此,存在另一种程序员辅助工具,称为汇编语言 .

对于汇编语言,使用两到四个字母的助记词代替实际的十六进制或二进制代码来描述程序步骤。例如指令7B 对于 Intel 8080 将是“MOV A,E ”在汇编语言中。

当然,助记符对于只能理解二进制代码的微处理器来说是无用的,但它是程序员管理在纸上或文本编辑器(文字处理器)上编写程序的一种权宜之计。甚至还有为计算机编写的程序,称为汇编程序 理解这些助记符,将它们翻译成指定目标微处理器的适当二进制代码,这样程序员就可以用计算机的本地语言编写程序,而无需处理奇怪的十六进制或繁琐的二进制代码符号。

程序一旦由人开发,就必须先写入内存,然后微处理器才能执行。如果程序要存储在 ROM 中(有些是),则可以使用称为 ROM 编程器的特殊机器来完成 ,或者(如果你是受虐狂),将 ROM 芯片插入面包板,用适当的电压给它供电,然后通过正确连接地址和数据线来写入数据,一次一个,每个说明。

如果程序要存储在易失性存储器中,例如操作计算机的 RAM 存储器,则可能有一种方法可以通过计算机的键盘手动键入它(有些计算机在 ROM 中存储了一个小程序,它告诉微处理器如何接受来自键盘的击键并将它们作为命令存储在 RAM 中),即使它太笨而无法做任何其他事情。

许多“业余爱好”计算机套件都是这样工作的。如果要编程的计算机是具有操作系统、磁盘驱动器和所有工作的全功能个人计算机,您可以简单地命令汇编器将完成的程序存储到磁盘上以供以后检索。

要“运行”您的程序,您只需在提示符下输入程序的文件名,按 Enter 键,微处理器的程序计数器寄存器将被设置为指向磁盘上第一条指令所在的位置(“地址”)存储,您的程序将从那里运行。

尽管使用机器语言或汇编语言进行编程可以实现快速高效的程序,但除了最简单的任务之外,其他任何事情都需要花费大量时间和技巧,因为每条机器语言指令都非常粗糙。对此的答案是为程序员开发使用“高级”语言编写的方法,这样可以更有效地表达人类的思想。一个用高级语言编写的程序员将能够编写这样的东西,而不是输入几十个神秘的汇编语言代码。 . .

打印“你好,世界!” 

. . .并期望计算机打印“Hello, world!”没有关于如何这样做的进一步说明。这是个好主意,但是当微处理器的词汇量如此有限时,它如何理解这种“人类”的思维?

答案有两种不同的形式:解释 , 或编译 .就像两个说不同语言的人一样,要想进行交流,就必须有某种方式来超越语言障碍。

需要翻译人员将每个人的话翻译成另一个人的语言,一次一种方式。对于微处理器来说,这意味着另一个程序,由另一个程序员用机器语言编写,它识别打印(Print)等高级命令的 ASCII 字符模式,并可以将它们翻译成微处理器可以直接使用的必要的一口大小的步骤了解。

如果这种翻译是在程序执行过程中完成的,就像翻译人员在两个人之间进行实时对话一样,它被称为“解释”。另一方面,如果将整个程序一举翻译成机器语言,就像翻译人员在纸上记录独白,然后将所有单词一起翻译成另一种语言的书面文件,这个过程称为“编译。”

解释很简单,但会使程序运行缓慢,因为微处理器必须在步骤之间不断地转换程序,这需要时间。最初编译需要时间将整个程序翻译成机器代码,但生成的机器代码之后不需要翻译,因此运行速度更快。

诸如 BASIC 和 FORTH 之类的编程语言是解释性的。编译 C、C++、FORTRAN 和 PASCAL 等语言。由于最终产品的效率,编译语言通常被认为是专业程序员的首选语言。

当然,由于机器语言词汇因微处理器而异,而且高级语言被设计为尽可能通用,因此语言翻译所需的解释和编译程序必须是特定于微处理器的。

这些解释器和编译器的开发是一项最令人印象深刻的壮举:制作这些程序的人肯定会赢得他们的青睐,尤其是当您考虑到他们必须做的工作来使他们的软件产品与市场上出现的快速变化的微处理器模型保持同步时!

为了缓解这一困难,引领潮流的微处理器芯片制造商(最著名的是英特尔和摩托罗拉)试图设计他们的新产品以向后兼容 与他们的旧产品。例如,Intel 80386 芯片的整个指令集都包含在最新的 Pentium IV 芯片中,尽管 Pentium 芯片有 80386 芯片缺少的附加指令。

这意味着为 80386 计算机编写的机器语言程序(也包括编译器)将在最新最好的 Intel Pentium IV CPU 上运行,但专门为利用 Pentium 更大指令集而编写的机器语言程序将不能在一个 80386,因为较旧的 CPU 在其词汇表中根本没有这些指令:80386 内的控制单元无法解码它们。

基于这个主题,大多数编译器都有允许程序员选择他或她想要编译机器语言代码的 CPU 类型的设置。如果他们选择 80386 设置,编译器将只使用 80386 芯片已知的指令执行转换;如果他们选择 Pentium 设置,编译器可以自由地使用 Pentiums 已知的所有指令。

这类似于告诉译者他们的读者的最低阅读水平是什么:为儿童翻译的文件成人可以理解,但为成人翻译的文件对儿童来说很可能是胡言乱语。

相关工作表:


工业技术

  1. 10 种最酷的云编程语言
  2. C 编程运算符
  3. 微处理器调试的历史,1980-2016
  4. C 编程语言 PDF:初学者基础教程
  5. Bosque:微软新的无循环编程语言
  6. 2021 年要学习的 9 种新编程语言
  7. C 教程
  8. C 语言 - 概述
  9. C - 程序结构
  10. C# - 概述
  11. 海德汉发布在线数控培训计划
  12. 填空数控编程铣削练习