社区
汇编语言
帖子详情
迷茫....为什么要用汇编进行Win32编程???
dizengrong
2008-10-20 07:29:16
最近在学习windows环境下的32位汇编程序设计,感觉很复杂,
学习进度非常的慢!中途又听别人贬低用汇编写Win32程序....
是啊,为什么要用汇编写呢?为什么别人用C语言写Win32程序呢(别人说用c来写容易些等好多的优点)?到底用汇编写Win32的意义何在呢?望有识之士指点迷津。
...全文
714
35
打赏
收藏
迷茫....为什么要用汇编进行Win32编程???
最近在学习windows环境下的32位汇编程序设计,感觉很复杂, 学习进度非常的慢!中途又听别人贬低用汇编写Win32程序.... 是啊,为什么要用汇编写呢?为什么别人用C语言写Win32程序呢(别人说用c来写容易些等好多的优点)?到底用汇编写Win32的意义何在呢?望有识之士指点迷津。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
35 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guetcw
2008-11-08
打赏
举报
回复
楼主可以看看这个论坛http://bbs.pediy.com/forumdisplay.php?f=4
xlt123
2008-11-06
打赏
举报
回复
学Win32汇编还是不要用微软的MASM
推荐Borland的TASM32
微软的语法,一堆 while,if,else
跟高级语言有区别吗?
函数调用时,栈是如何调整的?
临时变量是如何分配的?
跳转时,是以哪个标志位为条件?
还是不知道!
微软就是在愚弄我们!
sagitturs
2008-11-06
打赏
举报
回复
我觉得编程不在乎用什么语言。而是,在乎什么特性。现在很多语言可以混编。例如C可以调用汇编。
而且汇编让你了解很多计算机原理。让你对高级语言的特性有很多深入的理解。
而且汇编执行的速度,是其他语言不能比的。而且可以理解编程和数学模型到底有什么关系。
所以,我支持学习汇编。而且我觉得学程序必须要学汇编。
liangbch
2008-11-06
打赏
举报
回复
回31楼,在某些情况下,用汇编改写程序,确实可以做到比C语言快100%以上。这篇文章就给出一个汇编比C语言快300%的例子。
阶乘之计算从入门到精通―入门篇之三汇编的威力
wangqr1984
2008-11-06
打赏
举报
回复
强弩之末势不能传鲁镐。这么多怨言,那就择时在学吧
xlt123
2008-11-06
打赏
举报
回复
[Quote=引用 29 楼 liangbch 的回复:]
回楼上,编程语言的主要功能就是为了编写程序用的,对一个具体的问题,编程越方便,越简单,效率越高,则这个编程语言越好。高级语言,各种API,各种组件,库,中间件就是为这个服务的。而汇编语言的缺点就是编程效率低,繁琐,可读性差,容易出错。MASM好好的平衡了编程效率和执行效率这个问题,具有汇编语言的数据操作功能强,控制硬件容易,又有具有高级语言的容易阅读,不容易出错的特点,给我们的编程和代码阅读带来极大的方…
[/Quote]
我是针对学习而言的。
而且,我也看不出MASM的宏有多么的编程效率,如果要效率,为什么不用VB,DELPHI
如果只是API调用,我实在看不出汇编比C的执行效率高在哪里。
看现在的教材,凡是用MASM写的,有不用INVOKE,WHILE ,IF,ELSE的么?
这纯粹是误导!
另,TASM与MASM是一种语言,都叫汇编,不同的只是编译器。
pangu9999
2008-11-06
打赏
举报
回复
引用: 汇编是计算机专业学习的课程,不是一般程序员必学的课程。学习汇编很大程度上不是为了用汇编写程序,主要是为了更好地理解 高级语言(计算机)真正的工作原理,也会对程序调试带来帮助。也是反向工程,编写病毒或者杀病毒,加密/减密,破解等技术的主要基础。
明白了。
liangbch
2008-11-06
打赏
举报
回复
回楼上,编程语言的主要功能就是为了编写程序用的,对一个具体的问题,编程越方便,越简单,效率越高,则这个编程语言越好。高级语言,各种API,各种组件,库,中间件就是为这个服务的。而汇编语言的缺点就是编程效率低,繁琐,可读性差,容易出错。MASM好好的平衡了编程效率和执行效率这个问题,具有汇编语言的数据操作功能强,控制硬件容易,又有具有高级语言的容易阅读,不容易出错的特点,给我们的编程和代码阅读带来极大的方便。如果你想搞明白原理,那么建议你做一个cpu,否则用汇编语言还是无法弄清 xor, add, mul 这些指令是如何实现的,还是无法弄清dos/bios/WINAPI 调用是如何工作的。
另外,如果你不喜欢MASM中的那些宏,你不是用好了,没有人强迫你,在MASM32中,使用裸的,原始的汇编指令一样可以编译通过,为什么要抱怨呢?学习编程最重要的是踏踏实实的学习,最忌的是整天讨论哪种语言好,哪种语言不好,这样很可能你哪种语言也学不会。
jin0819
2008-11-03
打赏
举报
回复
10楼和16的两位高手好厉害啊,你们说的太好了,其实如果要是研究硬件的话还是要用汇编的
不过以后可能会向c的方向发展的
dizengrong
2008-11-02
打赏
举报
回复
谢谢redtin的指点,你让我更明白了学它的目标了。
现在我已在努力学win32汇编了。
redtin
2008-11-01
打赏
举报
回复
LZ最初学习的动机是什么呢。
如果应付考试,那就嘿嘿嘿
大多数情况下,学汇编是为了反汇编。
如果你 当初的动机消失了,那就不必执着了,毕竟人的精力是有限的。
参见:
[Quote=引用 16 楼 liangbch 的回复:]
汇编是计算机专业学习的课程,不是一般程序员必学的课程。学习汇编很大程度上不是为了用汇编写程序,主要是为了更好地理解 高级语言(计算机)真正的工作原理,也会对程序调试带来帮助。也是反向工程,编写病毒或者杀病毒,加密/减密,破解等技术的主要基础。
[/Quote]
学习方法:
win32汇编就是折腾api,
先从c那里折腾明白了再来也好。
“调用约定”要看。。。
和dos相关的无视掉。
asmaj
2008-10-31
打赏
举报
回复
liangbch 老师的讲解深入人心,膜拜!
b2yond
2008-10-28
打赏
举报
回复
[Quote=引用 10 楼 masterkill 的回复:]
- -#
对了,不知道你学汇编的方向是什么,BIOS?DRIVER?或者是其他,与硬体联系多就还是在DOS下做吧,如果不是倒关系不大,希望你坚持两年,然后就可以BS对你讲不要学这个的人^^y
对于你讲的意义何在,只能说~~~很多平时看来显而易见的事情原来不是那么理所当然,你会更多的了解什么是PC
用C,你可以count一下就显示结果(“为什么那样就能显示?”,“我也不知道,书上说的可以”)
用汇编,你才知道,哦,原来这样一句代码是由这么多细节构成的,才知道这些字符在内存中是怎样存取,又是怎样访问中断向量表取得中断服务程序来达到目的,这样你就豁然开朗了。[/Quote]
[Quote=引用 21 楼 codefox 的回复:]
学习汇编的目的就是能够更好的理解和利用其它语言,让你在程序与计算机之间很好的打交道!
[/Quote]
顶礼膜拜
createthefuture
2008-10-28
打赏
举报
回复
为了更好的学习破解!
codefox
2008-10-27
打赏
举报
回复
各层楼的看法都有见地,学习汇编的目的就是能够更好的理解和利用其它语言,让你在程序与计算机之间很好的打交道!
xiaopoy
2008-10-26
打赏
举报
回复
谁说汇编比C难了?
汇编不比C难,只是环境要求你可以在C上花费大量时间。
翻译汇编时就会非常深刻的意识到C的所谓“底层”,是C和汇编几乎可以一句一句的对应下来
这是其他高级语言远远不及的
不过C当初产生的原因就是为了更快捷编程。
用汇编你可以编的好,用C可以速度提高5倍。
当然,通过C还是通过汇编熟悉就是见仁见智的问题了
Kratos
2008-10-25
打赏
举报
回复
基本没啥用,最后就是反汇编的时候拿去改改参数什么的玩玩而已。
wgdegg
2008-10-25
打赏
举报
回复
liangbch的帖子应该算是总结性发言了.
楼主应该知道汇编语言的用处了.
学习汇编的痛苦和快乐就靠楼主自己去体会了.
dizengrong
2008-10-24
打赏
举报
回复
非常感谢大家的指导性意见!
我会努力的!
liangbch
2008-10-23
打赏
举报
回复
罗的书 是站在汇编的视角看win32编程的,站在这个视角,对windows 的运行机制更透彻,更深入。书中的有些章节,用C语言是说不清楚的。罗还告诉你,对于windows编程,不只是可用c编程,也可以用 masm32编程,当然汇编 编程比C要难(主要是繁琐,容易出错,不好调试),但masm32编程相对于通常的汇编,已经简单了不少了,书中的代码,简单易懂,不想一般天书般的汇编代码。
学习这本书,有两个目标,一是学会用汇编编写windows程序,当然,并不是劝你用汇编编程。2是学习windows编程,学会了这个,如果有c语言基础,也可以用这些知识进行C编程。
一般情况下,用汇编写windows程序不是一个好主意,特别是在工程实践中。但如果为了一些特殊的目的,如要求程序文件的大小不能太大,或者需要一些底层的操作,如病毒或者杀毒软件。
学习汇编是一个困难的任务,许多人半途而废,而大学生学的教课书,内容陈旧而枯燥。主要是讲解指令,用这些书的知识,只可学习汇编语言,却很难编出一个实用的程序。这些书主要讲几乎不再使用的16位指令,而很少将现在正在使用的32位指令。
罗的书 则和这些书大不相同。
1. 直接讲最新的masm32汇编,紧跟时代潮流,代码易懂,阅读起来很流畅。
2. 文笔比较优美,循序渐进,一边学习一般练习编程,有助于提高编程能力。
3. 在当前流行的window操作系统编程,这些知识可以马上派上用场,而不是学习永远不会用到的dos/bios编程。
汇编是计算机专业学习的课程,不是一般程序员必学的课程。学习汇编很大程度上不是为了用汇编写程序,主要是为了更好地理解 高级语言(计算机)真正的工作原理,也会对程序调试带来帮助。也是反向工程,编写病毒或者杀病毒,加密/减密,破解等技术的主要基础。
加载更多回复(15)
win32
汇编
多线程
编程
与事件
本文介绍了Windows环境下多线程
编程
的基本概念,并通过一个计数器实例演示如何使用事件对象来控制线程运行状态,包括启动、暂停和停止。
说说
win32
控制台应用程序、
win32
项目、mfc项目、空项目那些事儿
本文介绍了在VS中创建C++工程的相关知识。对于新手,创建C++工程可选择空项目,还给出解决程序闪退的方法。同时详细阐述了
Win32
控制台应用程序、
Win32
项目、MFC项目的区别、联系及转换方法,为
迷茫
的开发者提供参考。
关于
Win32
Aplication与
Win32
console Aplication ------开始一篇
本文探讨了
Win32
Application与
Win32
Console Application的区别。
Win32
Application通常指窗口程序,使用WinMain为入口点,包含
,支持API函数。而
Win32
Console Application表现为命令提示符界面,以main为入口,不支持
win32
API。作者反思了学习过程中的问题,指出依赖搜索引擎可能导致忽视学习过程,强调深入理解和实践的重要性。
逆向工程学习路线 2024:从 C++/
Win32
到 Android 逆向的 4 阶段 20+ 核心技能点
本文系统梳理了从C/C++/
Win32
到Android逆向的四阶段学习路径,涵盖计算机体系结构、
Win32
编程
、PE文件格式、x86/x64
汇编
、调试技术、Android ART/Dex、Frida/Xposed、加固脱壳与VMP保护对抗等20+核心技能点,强调静态分析(IDA/Ghidra/jadx)、动态调试(x64dbg/Frida)及实战方法论。
初学
编程
这五月
从零开始自学
编程
的经历,涉及C++、C、数据结构、Linux、
汇编
等多个领域,分享了学习过程中的心得与体会。
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章