当前位置:编程学习 > 汇编语言 >>

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

追问:对于不同的计算机,不同的指令集,汇编语言怎么知道翻译成什么样的机器指令是符合这台计算机的呢?难道汇编有这么强的判断能力?还是说无论什么样的计算机,汇编语言翻译的都是一样的,只是在硬件层面上,机器能够识别这些汇编语句,然后做出自己的动作呢?
答案:汇编是由汇编器优化并翻译成机器语言的。电脑是不认识文字的,只认识两个数字:0/1,但是程序是人写的,人很难记住所有的机器指令,因为那都是一串串数字,就像看电话本。不同类的本上记的数字还不一样。所以汇编的诞生是为了方便人与电脑的沟通。人能直接看得懂汇编,机器虽然不能直接理解汇编指令,但是经过简单的替换翻译成机器指令就能懂了。汇编器的原理简单的看就是电话查询,你输入一个姓名,它帮你找到对应的那串数字。

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

不同平台上的指令集都不太一样的,你什么平台上就用什么平台上的汇编器。这是平台相关的,一个平台的汇编器当然就只能翻译这个平台的指令集。这就是为什么你下载的时候会让你选择 i386 还是 x86 还是 amd64 等等。
其他:机器语言 汇编指令与机器的二进制指令是一一对应的,cpu只认01010的机器语言,汇编指令只是为了方便人类记忆,要不都是0101的不好记且书写易错,最开始的程序员就是用0101编程的,后来人们就研究出用汇编指令助记机器指令,再由汇编的编译器翻译成机器指令,这里只是翻译,对于汇编指令来说编译器只是个字典,电脑的世界里只有二进制(计算机不是只能设计成二进制的其实,只不过二进制更符合自然,自然界中事物都是非真即假的,至少目前来看是这样的),你在电脑上看到的任何东西都是二进制的。当然汇编还有一些伪指令,那些没有机器码的,cpu是不认得,是给编译器看的,只是为了人类阅读,或代替人类进行繁多的代码插入用的 

上一个:跪求程序设计比较好的朋友!最近在学习80x86汇编语言程序设计,看的是清华大学出版社的那本教材,有些难学
下一个:跪求程序设计比较好的朋友!最近在学习80x86汇编语言程序设计,看的是清华大学出版社的那本教材,有些难学

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,