请问现在可不可以断言,汇编能做的事,C都能做到?

时间:2022-06-14 11:55:39
请问现在可不可以断言,汇编能做的事,C都能做到?

25 个解决方案

#1


C 可以内嵌汇编。

#2


那请LZ用C语言写一个MBR引导程序,不得使用任何库函数,只能使用BIOS中断,生成的程序要正好是512字节,而且以0x55,0xAA结尾。

#3


引用 2 楼 mewiteor 的回复:
那请LZ用C语言写一个MBR引导程序,不得使用任何库函数,只能使用BIOS中断,生成的程序要正好是512字节,而且以0x55,0xAA结尾。



我是不懂才问的好吧....

#4


引用 1 楼 fefe82 的回复:
C 可以内嵌汇编。



能不能取代汇编的地位呢?

#5


某些特殊情况只能上汇编,但这种情况很少很少。

#6


可以内嵌二进制指令和汇编语言
C,汇编亦可共同编写程序,然后编译(汇编)连接成一个程序
注意,虽然C语言本身,甚至标准本身,并没要求C一定要支持汇编
实际上,每个C编译器实现,都自带一个汇编器。
也就是说,你有了C编译器的话,同时也就有了一个汇编器。
你完全可以放弃C编译器部分,仅仅用它编译(汇编)汇编语言程序。

#7


现在在操作系统上,很多事汇编也做不到了,比如直接用IN OUT 指令读取一些硬件数据

#8


不能。
谁用纯C写个实模式保护模式切换的程序我看看。

#9


引用 5 楼 akirya 的回复:
某些特殊情况只能上汇编,但这种情况很少很少。



都说写驱动必须要用汇编,以后用C可以代替汇编的地位来写驱动吗?

#10


引用 7 楼 paschen 的回复:
现在在操作系统上,很多事汇编也做不到了,比如直接用IN OUT 指令读取一些硬件数据



那汇编做到的事,比如驱动,可不可以完全用C来写呢?

#11


引用 8 楼 zhao4zhong1 的回复:
不能。
谁用纯C写个实模式保护模式切换的程序我看看。



那就是说,不管计算机怎么发展,我们还是不可能完全抛弃汇编?C再强大也不能代替汇编吗?

#12


汇编也不是万能的,有时候我们需要从机器码的级别优化代码,比如写一个最小的 hello world

#13


引用 12 楼 mewiteor 的回复:
汇编也不是万能的,有时候我们需要从机器码的级别优化代码,比如写一个最小的 hello world



请问为什么C也是底层的语言,为什么不能代替汇编呢?

#14


引用 13 楼 yyxgs 的回复:
Quote: 引用 12 楼 mewiteor 的回复:

汇编也不是万能的,有时候我们需要从机器码的级别优化代码,比如写一个最小的 hello world



请问为什么C也是底层的语言,为什么不能代替汇编呢?

因为汇编比C更底层。

#15


引用 14 楼 zhao4zhong1 的回复:
Quote: 引用 13 楼 yyxgs 的回复:

Quote: 引用 12 楼 mewiteor 的回复:

汇编也不是万能的,有时候我们需要从机器码的级别优化代码,比如写一个最小的 hello world



请问为什么C也是底层的语言,为什么不能代替汇编呢?

因为汇编比C更底层。



请问就是说只有汇编做得到,高级语言做不到的,没有汇编做不到,高级语言却做得的吗?

#16


面向对象只是一种编程思想。
再抽象的编程语言,最后不都变成汇编代码了吗?我们完全可以说汇编语言是面向对象、脚本化、动态化、泛函化、并行化、分布化的语言。

#17


计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

#18


《C++反汇编与逆向分析技术揭秘》
《The Intel 64 and IA-32 Architectures Software Developer's Manual》

#19


对于跨平台的兼容性,汇编不如高级语言,高级语言可以使用同一个代码在多个平台下编译、运行,而汇编可能需要很大的改动。

#20


引用 9 楼 yyxgs 的回复:
Quote: 引用 5 楼 akirya 的回复:

某些特殊情况只能上汇编,但这种情况很少很少。



都说写驱动必须要用汇编,以后用C可以代替汇编的地位来写驱动吗?

驱动都是C写的吧,没听说过用汇编写驱动的。

#21


主要还是特殊情况太少,编译器不支持。

#22


引用 20 楼 akirya 的回复:
Quote: 引用 9 楼 yyxgs 的回复:

Quote: 引用 5 楼 akirya 的回复:

某些特殊情况只能上汇编,但这种情况很少很少。



都说写驱动必须要用汇编,以后用C可以代替汇编的地位来写驱动吗?

驱动都是C写的吧,没听说过用汇编写驱动的。



C也可以代替汇编写很底层的驱动吗,那么汇编一般是用来干什么的呢?

#23


《30天自制操作系统》

#24


至少移植编译器,就需要汇编或者机器语言实现。
汇编语言是针对特定机器以及平台的

C在这方面为了可移植,就需要牺牲这方面的内容。
或者说这方面的内容,不是可移植的

#25


引用 20 楼 akirya 的回复:
Quote: 引用 9 楼 yyxgs 的回复:

Quote: 引用 5 楼 akirya 的回复:

某些特殊情况只能上汇编,但这种情况很少很少。



都说写驱动必须要用汇编,以后用C可以代替汇编的地位来写驱动吗?

驱动都是C写的吧,没听说过用汇编写驱动的。
你这样说看来你真的是不懂编程语言吧,楼主编程知识计算机知识太少,没有个理论框架

#1


C 可以内嵌汇编。

#2


那请LZ用C语言写一个MBR引导程序,不得使用任何库函数,只能使用BIOS中断,生成的程序要正好是512字节,而且以0x55,0xAA结尾。

#3


引用 2 楼 mewiteor 的回复:
那请LZ用C语言写一个MBR引导程序,不得使用任何库函数,只能使用BIOS中断,生成的程序要正好是512字节,而且以0x55,0xAA结尾。



我是不懂才问的好吧....

#4


引用 1 楼 fefe82 的回复:
C 可以内嵌汇编。



能不能取代汇编的地位呢?

#5


某些特殊情况只能上汇编,但这种情况很少很少。

#6


可以内嵌二进制指令和汇编语言
C,汇编亦可共同编写程序,然后编译(汇编)连接成一个程序
注意,虽然C语言本身,甚至标准本身,并没要求C一定要支持汇编
实际上,每个C编译器实现,都自带一个汇编器。
也就是说,你有了C编译器的话,同时也就有了一个汇编器。
你完全可以放弃C编译器部分,仅仅用它编译(汇编)汇编语言程序。

#7


现在在操作系统上,很多事汇编也做不到了,比如直接用IN OUT 指令读取一些硬件数据

#8


不能。
谁用纯C写个实模式保护模式切换的程序我看看。

#9


引用 5 楼 akirya 的回复:
某些特殊情况只能上汇编,但这种情况很少很少。



都说写驱动必须要用汇编,以后用C可以代替汇编的地位来写驱动吗?

#10


引用 7 楼 paschen 的回复:
现在在操作系统上,很多事汇编也做不到了,比如直接用IN OUT 指令读取一些硬件数据



那汇编做到的事,比如驱动,可不可以完全用C来写呢?

#11


引用 8 楼 zhao4zhong1 的回复:
不能。
谁用纯C写个实模式保护模式切换的程序我看看。



那就是说,不管计算机怎么发展,我们还是不可能完全抛弃汇编?C再强大也不能代替汇编吗?

#12


汇编也不是万能的,有时候我们需要从机器码的级别优化代码,比如写一个最小的 hello world

#13


引用 12 楼 mewiteor 的回复:
汇编也不是万能的,有时候我们需要从机器码的级别优化代码,比如写一个最小的 hello world



请问为什么C也是底层的语言,为什么不能代替汇编呢?

#14


引用 13 楼 yyxgs 的回复:
Quote: 引用 12 楼 mewiteor 的回复:

汇编也不是万能的,有时候我们需要从机器码的级别优化代码,比如写一个最小的 hello world



请问为什么C也是底层的语言,为什么不能代替汇编呢?

因为汇编比C更底层。

#15


引用 14 楼 zhao4zhong1 的回复:
Quote: 引用 13 楼 yyxgs 的回复:

Quote: 引用 12 楼 mewiteor 的回复:

汇编也不是万能的,有时候我们需要从机器码的级别优化代码,比如写一个最小的 hello world



请问为什么C也是底层的语言,为什么不能代替汇编呢?

因为汇编比C更底层。



请问就是说只有汇编做得到,高级语言做不到的,没有汇编做不到,高级语言却做得的吗?

#16


面向对象只是一种编程思想。
再抽象的编程语言,最后不都变成汇编代码了吗?我们完全可以说汇编语言是面向对象、脚本化、动态化、泛函化、并行化、分布化的语言。

#17


计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

#18


《C++反汇编与逆向分析技术揭秘》
《The Intel 64 and IA-32 Architectures Software Developer's Manual》

#19


对于跨平台的兼容性,汇编不如高级语言,高级语言可以使用同一个代码在多个平台下编译、运行,而汇编可能需要很大的改动。

#20


引用 9 楼 yyxgs 的回复:
Quote: 引用 5 楼 akirya 的回复:

某些特殊情况只能上汇编,但这种情况很少很少。



都说写驱动必须要用汇编,以后用C可以代替汇编的地位来写驱动吗?

驱动都是C写的吧,没听说过用汇编写驱动的。

#21


主要还是特殊情况太少,编译器不支持。

#22


引用 20 楼 akirya 的回复:
Quote: 引用 9 楼 yyxgs 的回复:

Quote: 引用 5 楼 akirya 的回复:

某些特殊情况只能上汇编,但这种情况很少很少。



都说写驱动必须要用汇编,以后用C可以代替汇编的地位来写驱动吗?

驱动都是C写的吧,没听说过用汇编写驱动的。



C也可以代替汇编写很底层的驱动吗,那么汇编一般是用来干什么的呢?

#23


《30天自制操作系统》

#24


至少移植编译器,就需要汇编或者机器语言实现。
汇编语言是针对特定机器以及平台的

C在这方面为了可移植,就需要牺牲这方面的内容。
或者说这方面的内容,不是可移植的

#25


引用 20 楼 akirya 的回复:
Quote: 引用 9 楼 yyxgs 的回复:

Quote: 引用 5 楼 akirya 的回复:

某些特殊情况只能上汇编,但这种情况很少很少。



都说写驱动必须要用汇编,以后用C可以代替汇编的地位来写驱动吗?

驱动都是C写的吧,没听说过用汇编写驱动的。
你这样说看来你真的是不懂编程语言吧,楼主编程知识计算机知识太少,没有个理论框架