当前位置: 代码迷 >> 汇编语言 >> 关于WIN32汇编大家的看法?该怎么解决
  详细解决方案

关于WIN32汇编大家的看法?该怎么解决

热度:6067   发布时间:2013-02-26 00:00:00.0
关于WIN32汇编大家的看法?
感觉WIN32汇编完全没有汇编的味道.还真不如C..学完8086汇编有必要看看WIN32汇编吗?

------解决方案--------------------------------------------------------
还没学完8086汇编的路过
------解决方案--------------------------------------------------------
额,我觉得8086汇编才没有汇编的味道。。。

我学汇编是从混合编译开始的,学汇编的每一步都离不开C语言,我觉得停留在8086的汇编是畸形的。现在的电脑谁给你机会用实模式写程序玩呢?仿C的汇编正好可以在我们常用的操作系统下进行开发。比如有时候我们做程序,有一个小小的函数需要处理数以G计的数据的每一个字节,这时候用汇编做一个小模块,然后混合到C语言中(或者内联,我不太相信内联)就可以突破汇编指令级的瓶颈了。

我觉得正是操作系统下的汇编,才能够真正帮我们做到理解C。C是所有其它编程语言的心理基础,而汇编却可以帮助我们探索C语言。最开始学习汇编的时候我觉得win32汇编没意义,看罗云彬的书就觉得他说的很没道理,可是当我从混合编译这个角度进入汇编世界后,我就明白了,其实int 21h这种东西才是真的没意义。

汇编调动硬件基本靠io指令,那些个中断内部也就是一层包装,使用它们跟使用WinAPI的技术层次差不多,一点也不底层。中断没意义,建议学win32汇编,这样的汇编才能用起来。
------解决方案--------------------------------------------------------
而且实际上16位和32位汇编都是一样的,学明白win32汇编自然就会8086汇编了,只是不知道那些int中断而已,找本手册马上就能写程序的。
------解决方案--------------------------------------------------------
看问题的角度不一样,呵呵,2楼老兄是过来人,跟初学者的角度不一样,我个人认为, 把8086汇编的基础打牢靠了以后,再看罗云彬的win32汇编, 理解起来会更容易些。 如果让一个新手上来就看win32的书, 一定是一件很纠结的事~, 个人观点。
------解决方案--------------------------------------------------------
举个例子,你调用int 13h中断去操作硬盘,而这个int 13h实际上就是个API,在win32方式中,你可以调用C库的fopen或windows库的OpenFileA是一样的。

假如你想开发一个真正的读写硬盘的模块时,你会发现int 13h根本就无法满足你的要求,还得靠io操作。写win32位汇编程序,实际上脑袋里写的是C语言,写出什么函数之类的只要自己愿意,都可以和C语言兼容。这样的模块可以和C编译在一起使用,所以可以服务于DLL,可以服务于C++,可以通过JNI为Java提供服务,甚至vb、asp这样的东西都可以享受你汇编的成果。而你所说的8086汇编,基本上只有学生和老师才用得到,离开课本就没什么用了,用途也基本上就是做几个四则运算,画画花刺激一下喇叭。虽然也可以在DOS下开发些实用的东西,但是你做出来的东西会有人用么?拿到windows的命令提示符模式里,对不起,windows没提供那么多希奇古怪的中断给你使。

如果说逆向,那8086就更没用了,逆向本来就是把高级语言的代码反汇编来分析,就更贴近win32汇编了(win32汇编是用C语言的脑袋写汇编代码,至少也比8086汇编更亲和一点)。

至于什么是王道,开发操作系统,bootsector和实模式有点接近,但是只要进了保护模式就不同了,而进入保护模式前的代码数量跟整个操作系统比几乎可以忽略了。大部分的代码都是要保持跟C语言兼容的。

开发应用软件,向win32汇编这种C兼容的汇编才有用,跟C兼容意味着你的工程比纯汇编的生命力更强。和C兼容的代码在紧张的时候你可以包装成C++程序,不紧张的话你就纯汇编过去也不会比平坦的纯汇编效率低多少。

我的建议就是,即便你对win32汇编古感兴趣,那也请你注意一下:兼容C语言的汇编才是王道。没有C语言的支持,汇编就是学生的玩具。
------解决方案--------------------------------------------------------
探讨
反正我现在就对现在所学的8086感兴趣.学完再说..

哈哈..前途一片黑暗呀.....
嗯, 踏踏实实比啥都强~

------解决方案--------------------------------------------------------
你不写些8086的程序。对APIC 中断管理器了解了有什么作用?win用APIC实现DPC权重又怎么理解?
和int13h对应的 sysenter所以使用的 SSDT表又如何理解?

看8086是因为它是早期的intel CPU,比现在的CPU设计简单很多,除了主要干枝没有其他的需要了解的。就像看linux 内核被推荐看 0.11版本一样
------解决方案--------------------------------------------------------
探讨

看问题的角度不一样,呵呵,2楼老兄是过来人,跟初学者的角度不一样,我个人认为, 把8086汇编的基础打牢靠了以后,再看罗云彬的win32汇编, 理解起来会更容易些。 如果让一个新手上来就看win32的书, 一定是一件很纠结的事~, 个人观点。

------解决方案--------------------------------------------------------
探讨

你不写些8086的程序。对APIC 中断管理器了解了有什么作用?win用APIC实现DPC权重又怎么理解?
和int13h对应的 sysenter所以使用的 SSDT表又如何理解?

看8086是因为它是早期的intel CPU,比现在的CPU设计简单很多,除了主要干枝没有其他的需要了解的。就像看linux 内核被推荐看 0.11版本一样

------解决方案--------------------------------------------------------
探讨
感觉WIN32汇编完全没有汇编的味道.还真不如C..

------解决方案--------------------------------------------------------
探讨

引用:
感觉WIN32汇编完全没有汇编的味道.还真不如C..


你才知道...

------解决方案--------------------------------------------------------
探讨
额,斑竹,我要代表上帝把你的汇编没收了。

------解决方案--------------------------------------------------------
探讨

我的汇编波涛汹涌,连绵不绝,无法没收哦 :)

------解决方案--------------------------------------------------------
  相关解决方案