汇编语言是我想要学习的一门语言,但是你仍然不会经常听到有些东西是用汇编语言编写的。我的问题是汇编语言的用途是什么?它还在使用吗?
发布于 2012-02-24 02:11:45
汇编语言在许多情况下都是有意义的。
2曾经很重要,但在过去的几十年里几乎被遗忘了。
发布于 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的核心。唯一的区别是,我们利用计算机本身将人类可读的“代码”编译成二进制代码。
我希望这一切都有意义!
发布于 2012-02-24 02:21:15
汇编语言用于将高级编程语言如C语言转换成机器代码。处理器只能运行机器代码--以二进制格式编码的一系列简短的、离散的指令。每次运行任何程序时,处理器都会执行机器代码。汇编语言只是一种人类可读的机器代码形式。
将高级代码转换为机器码的工作由compiler执行,汇编通常在转换为机器码之前作为中间表示创建。从这个角度来看,汇编语言至少和流行的高级编程语言一样常见--它只是由另一个程序编写的。
你可以用汇编语言写程序的原因
通用汇编语言(和基础ISA语言)
https://stackoverflow.com/questions/9418284
复制相似问题