永发信息网

如果掌握了win32汇编,再来学习C语言难吗?

答案:3  悬赏:0  手机版
解决时间 2021-02-27 08:39
我是个初学编程的,已经学习了王爽的<汇编语言>,现在开始学习罗云彬的<windows环境下的32位汇编语言程序设计>,学得还可以,都能弄明白.
但我听别人说,汇编+C =无所不能.而我只想专心学习WIN32汇编,今后再学C语言.那将来学习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语言更加接近人的语言,而汇编则更加接近机器的语言。
全部回答
汇编和c是没必然的联系的!汇编比c更抽象仅此而已。 最多可以让你树立更多程序的思想。一般规律是先c后汇编。
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; 化成弧度表示了 明白了吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
惠友大酒店(大世界店)在哪里啊,我有事要去这
【着地】""着地""的""着""读音应该是什么啊?
有没有在家里待了很久的女生
梦到与人打架
什么品牌扫地机器人性价比高
福乐时尚写真儿童摄影地址在哪,我要去那里办
武道世界一键端怎么添加商城物品
I am Lucy同义句转换
十里坝地址在哪,我要去那里办事
有一点点霉变的香烟可以抽吗
谁有初中英语同步听力与阅读训练8A听力的答案
鸿基房产胜利路店这个地址在什么地方,我要处
【生物帮】哪些生物体内没有线粒体高中阶段只
川鲜阁地址在哪,我要去那里办事
coach的包国内特卖一般多少钱
推荐资讯
健之佳健康药房沙湾店在什么地方啊,我要过去
手机QQ书城小说刚看到一半就没有更新了,等了
在推导圆的面积公式时,将圆等分成若干份,拼
滨康小区-地下车库我想知道这个在什么地方
老母猪看配不上是什么原因
YY560肚兜的背景音乐谁知道?越多越好 求解
天鹅飞去鸟不贵,良子无头双人配,双目非林心
荣华南路/荣华路南环岛(路口)在哪里啊,我有
广铁集团长沙办事处地址和电话?
如今我国把“人口第一大国”的桂冠让位于印度
汽车故障码上汽名爵 p2132
matlab 想画一个圆,直径为5mm,圆上等分360次,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?