我是个初学编程的,已经学习了王爽的<汇编语言>,现在开始学习罗云彬的<windows环境下的32位汇编语言程序设计>,学得还可以,都能弄明白.
但我听别人说,汇编+C =无所不能.而我只想专心学习WIN32汇编,今后再学C语言.那将来学习C语言的时候,会不会也很难?
如果掌握了win32汇编,再来学习C语言难吗?
答案:3 悬赏:0 手机版
解决时间 2021-02-27 08:39
- 提问者网友:皆是孤独
- 2021-02-27 00:22
最佳答案
- 五星知识达人网友:患得患失的劫
- 2021-02-27 00:45
层次不同.
如果先学汇编,那么会觉得C语言比较简单,因为你对于内存、数据、指针、程序结构等有了认识,同时又有了一定的编程经验。你会发现很多复杂的汇编功能,C语言只要简单的几行就能够实现。
C是高级语言,而汇编是低级语言。高级语言需要通过编译器编译成低级语言或者中间代码。也就是说,一个C语言首先会被翻译成一个类似于汇编语言(或者完全一样)的代码,然后再转变成机器码。在Linux操作系统下,你可以利用GCC先将C/C++语言编译成*.s文件,这就是汇编形式的,然后再编译成*.o文件,这是目标文件,最后编译成elf格式的可执行文件。当然你也可以自己写汇编形式的*.s文件,然后编译。
不过汇编有很多种,Windows的汇编MASM,还有NASM和MASM基本类似但是可以在Unix上编译;此外还有AT&T格式的汇编与上面差别比较大,GCC就是这种形式的。
对于复杂的程序,你可以先用C语言写,然后编译成汇编形式,就非常简单了。打个比方,调用系统函数,汇编写需要查表找出中断号和参数形式,而C语言就非常简单了。
C语言的 sleep(1000);
也许相当于汇编的多行代码(假设)
mov bx,1000
mov ax,22
int 21
实际上C语言更加接近人的语言,而汇编则更加接近机器的语言。
如果先学汇编,那么会觉得C语言比较简单,因为你对于内存、数据、指针、程序结构等有了认识,同时又有了一定的编程经验。你会发现很多复杂的汇编功能,C语言只要简单的几行就能够实现。
C是高级语言,而汇编是低级语言。高级语言需要通过编译器编译成低级语言或者中间代码。也就是说,一个C语言首先会被翻译成一个类似于汇编语言(或者完全一样)的代码,然后再转变成机器码。在Linux操作系统下,你可以利用GCC先将C/C++语言编译成*.s文件,这就是汇编形式的,然后再编译成*.o文件,这是目标文件,最后编译成elf格式的可执行文件。当然你也可以自己写汇编形式的*.s文件,然后编译。
不过汇编有很多种,Windows的汇编MASM,还有NASM和MASM基本类似但是可以在Unix上编译;此外还有AT&T格式的汇编与上面差别比较大,GCC就是这种形式的。
对于复杂的程序,你可以先用C语言写,然后编译成汇编形式,就非常简单了。打个比方,调用系统函数,汇编写需要查表找出中断号和参数形式,而C语言就非常简单了。
C语言的 sleep(1000);
也许相当于汇编的多行代码(假设)
mov bx,1000
mov ax,22
int 21
实际上C语言更加接近人的语言,而汇编则更加接近机器的语言。
全部回答
- 1楼网友:一秋
- 2021-02-27 01:18
汇编和c是没必然的联系的!汇编比c更抽象仅此而已。
最多可以让你树立更多程序的思想。一般规律是先c后汇编。
- 2楼网友:一袍清酒付
- 2021-02-27 00:52
fild dwcenterx; st0=dwcenterx
fild _dwdegree; st0=_dwdegree; st1=dwcenterx
fildpi; st0=pi; st1......
fmul; st0=pi * _dwdegree
fild _dwpara180; st0 = 180, st1=pi * _dwdegree;
fdivp st1, st; st0 = st1 /st0 = pi * _dwdegree / 180; 化成弧度表示了
明白了吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯