首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >汇编语言用法

汇编语言用法
EN

Stack Overflow用户
提问于 2012-02-24 01:44:14
回答 4查看 7.4K关注 0票数 2

汇编语言是我想要学习的一门语言,但是你仍然不会经常听到有些东西是用汇编语言编写的。我的问题是汇编语言的用途是什么?它还在使用吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-24 02:11:45

汇编语言在许多情况下都是有意义的。

  1. 高容量、低成本的嵌入式系统。运行像C这样的程序所需的额外硬件可以通过高级语言prohibitive.
  2. Improving efficiency.
  3. Access到不可能/不可用的硬件上。

2曾经很重要,但在过去的几十年里几乎被遗忘了。

票数 1
EN

Stack Overflow用户

发布于 2012-02-24 03:58:10

组装是用来做什么的?

简而言之:一切都与软件相关。

它还在使用吗?

简而言之:它是最纯粹的形式,很少如此。间接地,所有的软件都在使用它。

更长的答案:

汇编是一种使原始二进制代码对人类可读的方法。当建造第一台计算机时,人们可以简单地拨入指令来执行操作,然而,随着计算机变得越来越复杂,对更高级计算的需求增加,拨入组成原始二进制程序的所有指令变得单调乏味,非常乏味。考虑使用8位宽操作码和16位操作数(和/或寄存器或存储器地址)的220行长的程序,这将意味着每条指令是24位的,ś24个0和1,长。将其乘以220 (假设每行只有一条指令的指令量),你会得到5280。这是您必须在不犯任何错误的情况下拨入的0和1的数量。单调乏味,而且容易出错。

因此,计算机科学家提出了使用助记符来描述所有不同指令的想法。例如,缩写“mov”在x86程序集中代表“move”。它确实是这样做的,它将数据从一个地方移动(或实际复制)到另一个地方。这使得读取和编写程序变得容易得多。

因为汇编只是使用单词和规则来描述二进制代码,所以它总是最快的。您正在直接与CPU对话。这是一个地狱般的优势。

尽管如此,计算机变得更加复杂,软件变得更加先进,或者更大。输入几行汇编代码是很好的,但是,比方说,在汇编中编写web浏览器将是一场彻头彻尾的灾难,因为你需要跟踪太多的数据,而且很容易出错(ś)。

因此,更高级的语言被开发出来。像C/C++这样的语言通常被称为高级语言,因为它们不直接与CPU对话。这类语言通常使用内置函数,即专为完成特定任务而设计的迷你ASM程序。可以说,所有的高级编程语言基本上都是一个庞大的ASM函数库。

现在,举个例子,python是用C语言编写的,C本身调用汇编,汇编调用二进制代码。基本上,我们得到的越高,我们从ASM得到的分歧就越多,但它ś仍然是ASM的核心。唯一的区别是,我们利用计算机本身将人类可读的“代码”编译成二进制代码。

我希望这一切都有意义!

票数 3
EN

Stack Overflow用户

发布于 2012-02-24 02:21:15

汇编语言用于将高级编程语言如C语言转换成机器代码。处理器只能运行机器代码--以二进制格式编码的一系列简短的、离散的指令。每次运行任何程序时,处理器都会执行机器代码。汇编语言只是一种人类可读的机器代码形式。

将高级代码转换为机器码的工作由compiler执行,汇编通常在转换为机器码之前作为中间表示创建。从这个角度来看,汇编语言至少和流行的高级编程语言一样常见--它只是由另一个程序编写的。

你可以用汇编语言写程序的原因

  • 你的教授告诉你
  • 你不相信编译器能生成优化的或工作的机器代码
  • 你正在编写自己的编译器或编程语言

通用汇编语言(和基础ISA语言)

  • x86
  • SPARC
  • MIPS
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9418284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档