新手如何学习汇编比较好? 混合编译!!!

来源:互联网 发布:自录歌曲软件 编辑:程序博客网 时间:2024/05/22 17:31

    大概有四种方法:

        1、16位汇编,从做com程序开始。

        2、32位汇编,就像罗云彬老师那样。

        3、实在不行了,从内联汇编开始学起。

        4、借混合编译来学习32位汇编。

 

     16位汇编当然是正统了,可是按第一种方法来学的大多数都放弃了。其实我们学习汇编的目的是最终拿它来做东西,而16位汇编在Windows中能干什么啊? 很多人看不上32位汇编,但我认为这才是当今正统的汇编,因为它确实能做出程序来。现在用汇编的,谁还用16位汇编做东西呢?

 

     最开始我也很鄙视32位汇编,买来书大概一看,哦,用鸟的API啊,用API我还学汇编干吗?现在才知道,这种想法其实大错特错了。16位汇编虽然可以调用中断,但是BIOS中断其实有多大意义呢?实模式里BIOS中断的意义和Windows中的API意义完全相同,中断并不比API更底层。

 

     因为当初很鄙视32位汇编,所以我耽误了很久都没有走入汇编的大门,16位汇编做程序我不会调试,觉得根本就不能用来学习。32位汇编很鄙视,所以不学。玩了玩内联汇编,感觉还可以,但是久了也就发现涉及太少了。而gcc里的内联汇编又那么诡异。

 

     后来接触了混合编译后我觉得我才真正明白了怎么用汇编去做程序。其实熟悉了混合编译,自然就明白32位汇编怎么回事了。借助C语言来调试自己的汇编,即可以测试代码是否正确又可以使用常用的调试工具调试,非常舒服。熟悉了32位汇编,又看了看《自己动手写操作系统》也大概明白16位汇编和32位汇编怎么用了。

 

    用混合编译学习,会锻炼很好的C语言汇编习惯。做出的程序可以被C语言顺利使用而最不容易出现问题。这样即使大型程序,汇编依然可以利用起来。即使我们用Java做程序,通过JNI配合C++,然后给C++去调用自己汇编出的C格式函数,是不是很好呢。

 

 

    所以我觉得,汇编最大的意义在于混合编程,它没有纯32位汇编的复杂,可以在细节的地方可以做到汇编的精致,而且可以运用到任何环境中,而不仅仅是调试、破解和单片机。有了混合编译的基础,我们甚至可以用汇编来做网页(我有示例,所以请相信能够做到,而且不难)。

 

    如果你是初学汇编的新手,还不知道怎么入门,那么请百度一下混合编译,相信你一定会狂笑五分钟的。高手也不要见笑,这个方法至少用来学习汇编是最好的。

原创粉丝点击