汇编语言可以对硬件直接进行操作是什么意思? C语言可以吗?

 我来答
乱七胡说八糟乱想
2013-01-27 · 好知、好奇、好问、好学、多语、热心。
乱七胡说八糟乱想
采纳数:5657 获赞数:14885

向TA提问 私信TA
展开全部
因所有语言都最后要转换成机器码,因计算机只会按这机器码进行运行,而汇编语言就是这机器码的助记符(帮助记忆的符号),所以它就是直接可操作机器的语言。C语言是一种中级语言,它也可进行机器的直接操作,只是还要经过一些设置或转换才行。
潘达lya
2013-01-27 · TA获得超过1476个赞
知道小有建树答主
回答量:509
采纳率:0%
帮助的人:447万
展开全部
我不知道你说的是哪方面,如果是类似单片机的裸机程序就都可以,C语言一般只是替你做了一些默认处理,比如你定义一个变量,C语言编译器会根据是自动变量还是全局变量以及已经定义的变量内存位置来给该变量提供内存,如果是汇编根本就不存在定义变量,要你自己记住哪个内存是什么数据,或者把该地址做成一个宏代替变量。。。怎么使用寄存器,都是C语言认为的默认的方式,但不想使用默认方式就可以使用一些特殊关键字来告诉编译器使用哪个寄存器哪个地址存数据,但这些关键字都不是标准C语言定义的,是开发商扩展的。。。。
其实C语言目的就是简化的汇编,汇编可以做的C语言也行,实在觉得不爽,可以在C语言程序中加汇编。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyz810
推荐于2018-05-07 · 知道合伙人互联网行家
lyz810
知道合伙人互联网行家
采纳数:7531 获赞数:31780
前端开发工程师

向TA提问 私信TA
展开全部
汇编语言可以控制一些特定的寄存器进行数据的操作
如可以将一个数放到AX寄存器中(MOV AX,200H)
C语言可以调用汇编语言的代码,但C语言本身不能对硬件直接进行操作,你编写的C语言最终需要变成机器语言的二进制代码才能执行,不能通过一些C语言的语法控制某个硬件
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
池恬静V3
2022-11-02
知道答主
回答量:2
采纳率:0%
帮助的人:592
展开全部
直接操作硬件的意思是直接读写硬件提供的寄存器,汇编自然不必说,in和out指令直接就能读写硬件端口,汇编直接对应机器语言。
再来说说c语言,c语言仅仅是提供了一套语法规则,他本身并没有提供什么额外的指令。我们常用的标准库-sdk中,并没有用于直接读写硬件端口的函数,实际上并不是c语言无法实现,而是与硬件交互的代码,我们通常让os去做,我们仅仅是需要数据而已,通过os拿到数据就可以了。
除开硬盘,显示器,键盘,socket这四个我们常见的io设备后,如果有新的设备加入到主机中,我们该怎么办,这个时候,如果没有设备驱动,你就可以用汇编写设备驱动代码(因为c没有直提供直接操作端口的api),然后拓展到c中即可。然后你就可以到更高级的c语言中去调用接口,获取数据了。
所以,如果你已经掌握了c语言的标准sdk库,那么这不是终点。c语言不是java,你可以用汇编去自主拓展c,而java对于大部分人来说,仅仅是在sdk上构建各种类库。所以说c语言的sdk不是终点,因为你可以自己拓展sdk-用汇编。那么再在c上构建各种程式库,也是可以的,这完全在于你的能力阶段。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
arm_linux_boy
2013-01-27 · TA获得超过260个赞
知道小有建树答主
回答量:260
采纳率:0%
帮助的人:151万
展开全部
汇编语言可以说是和机器指令对应的,C语言大部分可以,但是有一些不行。C语言最终被编译器编译成汇编指令的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式