汇编语言与C语言有什么区别
一个是高级语言,一个是低级语言。 汇编执行速度快,功能少。
c语言需要进行编译,功能多。
命令也不同。
很多地方都不通,区别大了
为什么汇编和C语言可以直接控制硬件
汇编和C都要经过编译处理转化成机器语言才能控制硬件,而机器语言就是用0和1组成的代码,表示高低电平,硬件识别的是高低电平,所以汇编语言和C并不是能直接控制硬件,还要经过编译处理的。
对了,当然和CPU的指令集有关了,不同的cpu的指令集稍微会有所差异,但是都会给出与一般的CPU的不同指令的资料。
汇编与反汇编
可以的,但是反编译的效果最常见的就是反编译成汇编语言,但是说你写一个C的程序已经编译程.exe文件了,然后又想用工具对.exe文件进行反编译,那么就只能反编译到汇编语言的状态,不可能反编译到C的状态,虽然现在网上有些人能反汇编成C,但是效果也不好,有很多的错误。
编译的过程是不可逆的,就好像你把猪杀了做成香肠,然后你又想把想把香肠变成猪一样。最多能把香肠又变成肉末,变成猪你听过吗?道理就这样
汇编语言中setc和clrc是什么意思?
如果是8086,对应的指令为 STC 和 CLC, 分别是置进位标志 和 清进位标志。
你这对指令功能也应该与此相同。
C语言和汇编语言的关系?
程序员编写的C语言代码,首先要经过C语言编译器,生成汇编代码,这个过程称为编译阶断,当C语言编译器生成汇编代码后,再调用汇编器来将汇编代码编译成汇编指令。
这是一种站在巨人肩人的作法,最早的C++编程语言也是这样的实现方法,只不过那时候叫Cfront程序,Cfront程序的作用是将C++代码转换成C语言代码,类似于一个文本处理器,然后再调用C语言编译器,将C源码编译成汇编代码,然后再调用汇编器将汇编代码编译成机器码。
这个过程,在Windows平台上不容易操作,但是在Linux平台上很容易看到。以gcc这款c语言编译器为例,它实际上是四个小程序。
cp: c语言预处理程序,有它负责进行预处理操作。
cc: C语言编译器,它负责将C源码编译成汇编代码。
as: 汇编器,它负责将汇编代码编译成机器码,一般使用gcc test.c这样的命令编译C语言时,会生成一个a.out的程序,它实际上指的就是as ouput,即汇编器输出文件。
link: 链接器,它负责将汇编器输入的机器码和库打包成一个操作系统可以运行的可执行文件,在Linux上的可执行文件格式是ELF格式,这个格式的实现是有链接器来完成的。
C语言和汇编语言的区别是什么?
汇编语言属低级语言,而C语言是高级语言,所谓高级语言就是更容易被人们理解的语言,其实汇编语言能实现的功能往往也能通过C语言来实现,甚至用C语言会更简单,但是汇编语言有一个优势是其他任何语言所不具备的,这也是为什么汇编语言一直能在编程中占有一席之地,那就是汇编语言对硬件的直接控制,也就是说他能直接对硬件操作,可以绕过操作系统等等之类。虽然有的领域其他编程也能实现,但是在很多地方往往是汇编语言能更加简单,更加完美的完成。而且学好了汇编语言你就能对cpu是怎么工作的有了清晰的认识,所以学计算机专业的一般都会学汇编语言。
0条大神的评论