鱼C论坛

 找回密码
 立即注册
查看: 4748|回复: 15

关于汇编编程的问题

[复制链接]
发表于 2011-5-24 15:43:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 loop 于 2011-5-29 23:21 编辑

我之前有过一点C的基础,最近得知了小甲鱼老师的视频,学习了一下汇编,目前刚学到第十章,个人感觉掌握的还可以,确实汇编的思想比较好,对于C都会有很大的帮助。
可是我学了这几天,发现一个问题啊 ,汇编究竟能做什么?
举个例子说,debug去查看内存,现在的内存这么大,我们总不能一行一行的去查看系统的内存分配情况吧,一个windows下的程序,他被分配的内存在哪里?
汇编究竟能做什么?
还有,一般说C编程C编程,但是所谓的windowsC编程却是很多都是C++的语法,难道还要学C++ ?都说C是万能的,我是真的不知道C应该怎么用,或者如何用。我倒是觉得C++是万能的
谁能帮我解惑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-24 16:02:13 | 显示全部楼层
每种语言都有自己擅长的领域
每种语言基本上又是一通百通的
认真的学一种吧,不管它是啥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-24 16:10:15 | 显示全部楼层
1.汇编是低级语言,C语言是高级语言。也就是说汇编在不同的硬件环境下语法不同;C在不同环境下都是相同的。虽然汇编因为机器不一样而不同但基本思想差不多。学习汇编主要要理解“在程序员眼里硬件是如何工作的”,理解了这个后哪怕将来学不同的汇编语言也八九不离十。至于汇编能做的事情比C语言多,因为C语言在编译的过程中要被首先“翻译”为汇编语言。只不过汇编太底层了,稍微大点的功能用汇编实现都要写很多的代码。
2.但是所谓的windowsC编程却是很多都是C++的语法,
也可以用C语言编写啊,而且windows底层API是C语言的,不是C++的。LZ有兴趣可以去看看《Wondpws程序设计》第5版,这是一本经典的windows窗口编程书籍,也只使用了C语言。
3.没有哪种语言是万能的。就像我们打游戏一样,没有最厉害的角色,只有最厉害的玩家。应该根据实际需要选择合适的计算机语言。当然这就要求我们要站我不止一种语言。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-24 16:18:01 | 显示全部楼层
谢谢, 你说的  我都懂,
这么举个例子吧, 不是说WINDOWS 系统是用C开发的么 ,然后我们现在做windows开发就是直接调用API函数,那么如果不调用API函数的话  C还能做出一个美丽的界面么, 如果能 讲一下大致的原理和过程可以么, 我只有这一步搞不懂, 实在是想不明白一行行的代码是如果转化成我们眼前的一切的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-24 16:50:47 | 显示全部楼层
本帖最后由 weixianlang 于 2011-5-24 16:52 编辑

回复 asd82937121 的帖子

        JAVA,C#是由C++演变的,C++又是由C演变的 ,你学C++或则JAVA,如果你学过C,那么将会让学习边得更简单,因为C++和JAVA很多基础知识,比如流程控制,数据类型等等,都和C一样,但是C++和JAVA说起这些知识来就难懂   


       WINDOWS操作系统内核是由C写的,UNIX和LUNIX直接有C写出来的,因为C的代码量小,运行速度快,至少比现在流行的几种高级语言快,比如java c++ c#,,之所以很多面向过程的语言都已经被淘汰,但是唯独C存活了下来.

         C语言是入门编程的首选 -------------梁肇新

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-25 09:44:35 | 显示全部楼层
汇编是低级语言,学习汇编主要要理解“在程序员眼里硬件是如何工作的”,C语言是高级语言。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-25 10:00:02 | 显示全部楼层
本帖最后由 lxbwyr 于 2011-5-25 10:00 编辑

汇编的好处很多,我只知道学破解,没有好扎实的汇编基础是不可能的。我是为了学破解而学汇编{:soso_e113:} 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-25 10:03:17 | 显示全部楼层
问题是在于  做一个软件  从哪里开始??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-25 11:06:38 | 显示全部楼层
汇编语言就是告诉你CPU能干什么,在干什么,是怎么干的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-25 11:13:44 | 显示全部楼层
怎么每个人进来都在自说自话呢  没人解答一下我的问题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-25 11:36:14 | 显示全部楼层
问题是你这个问题没法回答,如果只是要做一个软件的话,你可以重任务地方开始,所谓程序或者语言不过是人和CPU约定好的沟通方式而且,只要CPU能够理解的,不管你用什么方式(用哪种语言),结果都是一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-25 11:42:06 | 显示全部楼层
本帖最后由 幕府幽魂 于 2011-5-25 11:43 编辑

我的理解就是,汇编是解释你用C或者C++写的代码是如何被计算机一步步执行的。。。为什么破解要反汇编你的C程序?其实就是分析这个程序的每一步在CPU在干那些事情。因为高级语言只是表达我们完成任务的思路,而不是直接操纵CPU
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-28 05:03:04 | 显示全部楼层
汇编只是为了让你理解计算机是如何运行的  学习汇编可以去分解一个软件的组成  不管是你用什么高级语言编写的软件 (如C,C++,C#,JAVA等 )如果他们要执行必须要向低级语言转换(编译器的编译过程就是把高级语言的东西转换成0和1的机器语言不然计算机不会知道你想干什么) 其次就是破解软件更要懂汇编语言了(这个就不解释了)因为每当你用高级语言调用一个函数的时候就等于是用到汇编中的一个寄存器 还有栈的功能   (不解释 )还有学习不要总问为什么要学  既然是你的选择 直管学就行了 学多了 想多了  结合起来想就通了。  就和练武一样,为什么练武前很多人都是天天和打杂一样,挑水,砍材,练习基本功。为什么不能直接学招式?  原因就是底气不足,招式学的再好也是(套路花招)而从底层练好的人可以很快把动作学好,可是学好招式的人却不懂得如何行气。 所以归根到底就是走捷径是现在人的选择,可是它的原则就是始终建立在老的思想中。 编程中的高级语言是很方便 我们学习   而且学习起来更方便  但是你要记住你始终是要和只懂得1和0的计算机打交道(就算你中文和普通话说的再好 但是要和外国人打交道还是要翻译(注:翻译器)如果你想要和老外直接打交道 不通别人帮你翻译就是要自己去学英语)你打中文字和英文的速度再快计算机也不懂你   说的够明白了  希望你能看懂;P
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-28 08:24:38 | 显示全部楼层
同意11楼的说法!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-28 08:26:57 | 显示全部楼层
唉  成互动贴了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-28 08:56:39 | 显示全部楼层
:L:L:L:L:L:L:L

评分

参与人数 1鱼币 -2 收起 理由
loop -2 禁止纯表情回复~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-20 06:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表