首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >装配新手

装配新手
EN

Stack Overflow用户
提问于 2014-01-06 19:00:42
回答 3查看 95关注 0票数 0

我想开始学习汇编语言,但我不知道从哪里开始。我知道程序集依赖于处理器的体系结构。所以我当场有一个问题。如果我在我的系统上写了一些汇编代码,它很可能在另一台计算机上不工作吗?如果不是,Windows或Linux是如何创建的,因此它几乎可以在所有计算机上工作。还是我错了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-06 19:03:56

汇编语言是处理器的语言。不同的处理器不同的语言。

实现便携性有许多方法。用C编写,然后在目标处理器上编译C程序是一种方法。使用虚拟机是另一回事。

一些可移植性是由具有相似指令集的同一系列处理器实现的。因此,英特尔和AMD处理器将运行相同的便携式汇编语言代码,因为指令集的设计是相互兼容的。

但是RISC处理器不会运行相同的汇编语言程序,因为指令集完全不同。

票数 7
EN

Stack Overflow用户

发布于 2014-01-06 19:10:38

程序集是一种非常低级的语言,几乎直接翻译成机器代码(这是CPU可以理解的“语言”)。现在大多数PC都是基于x86架构的,所以大多数PC的组装都是非常相似的。差异可能取决于操作系统(例如,大多数Linux系统在行尾使用与Windows不同的标记)和指定处理器的一些附加特性(尽管它是相同的体系结构,但取决于CPU可能有一些不同的操作)。当然,对于不同的体系结构,程序集是不同的(例如:您不能为ARM处理器编译x86代码,因为这些代码具有完全不同的可用指令集)。

操作系统通常是用一些高级语言编写的,只有一些功能(通常要求在指定的机器上尽可能快)是用一些低级代码编写的,比如程序集,用于指定的平台。

为了从程序集开始您的冒险,我将重新推荐8086程序集。它可以让您深入了解如何一般地编写组装代码,并可能成为将来学习不同体系结构的组装的良好基础。

票数 1
EN

Stack Overflow用户

发布于 2014-01-06 19:54:26

汇编语言为ISA (指令集体系结构)。例如x86 (目前大多数客户端PC和大量服务器上运行)、ARM (主要用于智能手机或平板电脑、微服务器、嵌入式系统等)、Alpha、IBMs‘PowerPC、Itanium (大多是过时的)等。

在客户端(我认为您的家庭台式机或笔记本,我认为它属于它)中,可能存在兼容性,这就是您可以在几乎任何一台计算机上购买和运行x86窗口(目前也有其他版本)或linux或其他任何东西的方式。请注意,这些ISAs在不断发展,增加了新的指令、新的体系结构特征和操作模式--因此,为某些ISA的新版本设计的程序很可能无法在更老的HW上工作,但由于设计者很难保持向后兼容性--由于旧模式和指令仍然受支持,较老的SW几乎可以在较新的HW上工作。操作系统也在改变,所以为DOS设计的代码不会像以前那样在新的窗口上运行,而是可以在仿真器和其他技巧的帮助下运行。

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

https://stackoverflow.com/questions/20957256

复制
相关文章

相似问题

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