计算机指令集是汇编语言?也就是说CPU里的指令语句是汇编语言?

 我来答
帐号已注销
推荐于2016-03-19 · TA获得超过5622个赞
知道大有可为答主
回答量:1459
采纳率:0%
帮助的人:1494万
展开全部
汇编是由汇编器优化并翻译成机器语言的。电脑是不认识文字的,只认识两个数字:0/1,但是程序是人写的,人很难记住所有的机器指令,因为那都是一串串数字,就像看电话本。不同类的本上记的数字还不一样。所以汇编的诞生是为了方便人与电脑的沟通。人能直接看得懂汇编,机器虽然不能直接理解汇编指令,但是经过简单的替换翻译成机器指令就能懂了。汇编器的原理简单的看就是电话查询,你输入一个姓名,它帮你找到对应的那串数字。

计算机的指令上面说过了,当然是机器码,你看不懂的,只是顺序和逻辑与汇编一致。汇编的指令和机器指令是一对一的关系,简单的文字替换。

不同平台上的指令集都不太一样的,你什么平台上就用什么平台上的汇编器。这是平台相关的,一个平台的汇编器当然就只能翻译这个平台的指令集。这就是为什么你下载的时候会让你选择 i386 还是 x86 还是 amd64 等等。
流星梦阳
2011-11-15 · TA获得超过468个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:180万
展开全部
汇编指令与机器的二进制指令是一一对应的,cpu只认01010的机器语言,汇编指令只是为了方便人类记忆,要不都是0101的不好记且书写易错,最开始的程序员就是用0101编程的,后来人们就研究出用汇编指令助记机器指令,再由汇编的编译器翻译成机器指令,这里只是翻译,对于汇编指令来说编译器只是个字典,电脑的世界里只有二进制(计算机不是只能设计成二进制的其实,只不过二进制更符合自然,自然界中事物都是非真即假的,至少目前来看是这样的),你在电脑上看到的任何东西都是二进制的。当然汇编还有一些伪指令,那些没有机器码的,cpu是不认得,是给编译器看的,只是为了人类阅读,或代替人类进行繁多的代码插入用的
追问
对于不同的计算机,不同的指令集,汇编语言怎么知道翻译成什么样的机器指令是符合这台计算机的呢?难道汇编有这么强的判断能力?还是说无论什么样的计算机,汇编语言翻译的都是一样的,只是在硬件层面上,机器能够识别这些汇编语句,然后做出自己的动作呢?
追答
你像咱们用的计算机不论是intel 的还是AMD的咱们的cpu指令集肯定是兼容的,由于微软和intel的合作,AMD迫于微软市场,不得不与intel的指令集进行兼容(AMD扩展了64位指令集后,intel又迫于微软压力与AMD兼容,很有意思的事,盖茨才是老大,呵呵),由于windows是主流系统,如果AMD不兼容的话,在windows下开发的程序无法在AMD电脑上运行,你想安个qq都不行,试想下还有人买AMD的cpu吗?
至于你说的不同的指令集也是存在的,有的工业计算机上有自己cpu指令集的标准,他的汇编指令可能与8086的一样,但也可能不一样,完全在编译器是怎么写的,现在除了工业上一些特殊的以外,主要有两种汇编标准,一种是intel汇编标准,一种是AT&T标准,windows下采用intel的标准,linux是采用的AT&T标准。你也可以自己弄个标准,然后写个编译器,只不过只有你认识而已。
其实跟简单一点说,完全在于编译器,无论你写的什么,编译器能够翻译出对应的二进制计算机指令就好。
你要记住计算机只认二进制,cpu是检测电信号的,好像是高电平(通电)是0低电平(断电)是1,不过忘了到底是通电1还是断电1了,(我给你个电,请你通个a出来,可能吗?呵呵),他不知道abc为何物。这其实很好理解啊,不知道你要干什么呢?编程?实在不行弄本计算计工作原理吧,看你是个较真的人。
由于有了系统这个“应用程序”的存在,使原本不是那么难到难以想象的复杂的计算机原理(说白了计算机原理就是数学原理,而且是众多复杂的数学原理中的一点点)罩上了一层保护膜,linux下还好点,尤其是这个闭源的windows,使普通用户和计算机硬件打交道成了几乎不可能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天龙物理
2011-11-15 · TA获得超过257个赞
知道答主
回答量:219
采纳率:0%
帮助的人:130万
展开全部
机器语言
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式