编程语言越来越高级,汇编到底有什么用?

夏灬未凉


对于嵌入式工程师汇编是很有用的。但显然这不是主题。

对于高级语言的开发,了解汇编有什么用?这让我想到了之前回答一个网友的问题

就这样一个小程序

该网友使用vc6.0编译出来的结果是10,用vs2012编译运行出来的结果是12,该网友也认为因该是12,但是却不知道为什么结果不同。

最后我通过VS自带的反汇编查看了汇编代码发现

6.0是先把前面两个加起来在加最后一个的, 第一次 ++i=2; 第二次 ++i=3; a=3+3=6; 第三次 ++i=4; a=6+4=10;

2012是最后执行相加 第一次 ++i=2; 第二次 ++i=3;第三次 ++i=4; 最后 a=4+4+4=12

所以,了解一点汇编很多时候会有助于你分析问题


热情的大神


反汇编程序。汇编语言绝对有用。如果能读懂汇编语言的话,那程序反汇编之后,你也读不懂。



我曾经自学过汇编语言,而学习汇编语言的目标很简单,就是反汇编动态跟踪游戏,然后找到游戏的所谓的call。然后用其他的高级语言程序编写外挂。可以完成游戏中的一些动作,这种外挂被称为内存挂,效率要远远高于像按键精灵一样的游戏外挂。

如果您玩游戏的话又想自己写外挂的话,这一个是必须学习的,不然的话你没法做一个好的游戏辅助。

上面这种游戏,属于不是脱机的外挂,如果您想写脱机外挂的话,那肯定还需要阅读游戏反汇编之后的汇编语言代码。

在这些代码里面寻找游戏发包收包加密的一些程序段,如果能完成这一步的学习制作分析,那就可以写脱机外挂了。其实脱机外挂比较简单,他不需要打开游戏,也不需要完成游戏的,防作弊系统。只是不停的收包发包就可以了,但是这个极其麻烦,分析起来。比如说心跳包,比如说地址的格式。人物信息的分布。等等。

就和你分析这些吧,反正我觉得汇编语言,在当时的我来讲,最大的作用就是玩游戏.。最后再补充一下,汇编语言,学好了之后,您可以对一些底层的代码进行分析,包括硬件的一些编程的代码,汇编代码也涉及到数据安全等等,还可以完成破解软件,破解硬件加密狗脱壳加壳虚拟机等一系列的工作。

这样我还能推荐一个论坛,当然现在不知道还有没有,那就是看雪论坛。

祝您学习有进步。


谈笑有白丁往来无鸿儒


汇编语言在工业控制上应用很广。早期的Z80汇编语言几乎是大学计算机课的必修课。我想,汇编语言最大的优势应该是效率高,缺点是编写它太费劲了,你得了解涉及的硬件,主要寄存器等等的许多东西。而且你得对二进制数字有充分的了解,同时要对外围设备主要是模拟信号采集设备要充分了解,如锅炉上用的热电阻,热电偶等等。同时你也得了解D/A和A/D转换设备……这些东西涉及面太广了!


多瑙河中的鱼


汇编很重要,如果你是嵌入式领域,而且是要求高效代码的情况下,现在很火的物联网其实C和汇编还是重要的。其他领域基本不关心汇编。

另外如果你是学编程和计算机的新手,学习汇编能让你更好的认识高级语言与计算机硬件的联系。

如果只是做web,数据库之类的应用开发,可以忽略。


冰力十足冰红茶


很简单,最底层机器码不好记,不好用,往上就是汇编了,比如游戏你源代码搞不到,要想修改来玩,只有反汇编后读汇编代码,当然,汇编还有执行效率高这些优点。但现在硬件性能过剩,收入提高,版权被重视,所以无目的的学汇编没任何意义,也就剩网安还用的多。总结,想混口饭吃,了解既可,想做安全专家,就必须精通,否则有这时间,还不如去学一门高级语言。


二十出头四十不到七


ie是用来下载其他浏览器的。汇编是用来编其他语言编译器的


octorz


懂汇编才算真正了解计算机


polaris03


掌握一下二极管的通断性,再加三极管的可控性就能理解


Wskvklqtd12345


汇编只是助记符而已,真正起作用的是CPU指令,不管多么高级的语言最终都要变成指令才能执行。


公平正义就是毁灭一切


机器只认识1和0.


分享到:


相關文章: