关与高级语言C\C++与低级语言汇编语言的问题.

来源:百度知道 编辑:UC知道 时间:2024/05/12 18:27:29
众所周知汇编语言可移植性差,高级语言可移植性强.但是无论汇编还是C都最终要转换成计算机能读懂的机器指令,那为什么有可移植性强弱之分?我看到过有人说汇编使用一些特殊的指令,只针对该CUP指令集,高级语言使用通用指令,那照此理解汇编如果不使用特殊指令也可以具备可移植性?
还有一个问题,C/C++程序在编译器进行连接时连接的库函数(.lib文件)是用什么写出来的?
谢谢,请高手回答一下.

汇编语言其实就是用人容易理解的代码把机器码翻译过来.一条汇编语句肯定是对应一个机器操作码.通常不同设计者设计的CPU一般有不同的指令集.所以可移植性差.而高级语言是平台无关的.实际上每个平台都有自己的编译器.
关于你说的特殊指令是指使用频率少的吗?一般的厂商的微处理器会具有向下兼容的特性.

嗯,值得关注

顺便说句,高级语言之所以移植性比汇编强,是由于有编译器存在,编译器将语言翻译成一些接近且比较容易翻译成目标机器汇编语言的代码,在不同机器上翻译成不同的汇编语言

这个问题问得太专业了,我不能保证能回答对,我给你说的形象点吧,汇编语言是说白了说是机器语言,它只是对机器指令具体化了一点,我们所说的高级语言移植性好是因为有了编译器的存在,你可以把你的代码写好后只要有能够识别他的编译器就可以进行编译运行,如果你有在windows 系统进行编译的程序,那他就能在windows 上运行,如果你有在linux 上编译它的程序,他就能在linus上运行....但是你编译好了以后就改变不了了...