×

汇编

汇编是什么?怎样学习汇编语言更容易

jnlyseo998998 jnlyseo998998 发表于2022-11-01 05:11:58 浏览41 评论0

抢沙发发表评论

本文目录

汇编是什么

汇编语言是一种低级计算机编程语言,说“低级“并不是指语言的功能和复杂程度,而是它出现在计算机发展史的早期,但现在仍广泛应用于计算机开发领域,应为它是绝大多数语言的基础.再者,它是一种面向机器的语言,即它运行与操作都与计算机硬件密切相关. C语言是一种高级语言,它有利于人为操作,近于面向对象与面向机器之间(VB就是一种面向对象的编程语言),它的功能更加强大,可移植性高,是当今最广泛的语言之一. DOS汇编是说汇编语言的操作界面是DOST系统,这也说明是汇编是更低级一些,但执行速度是其它语言无法相比的,就是可移植性较差.

怎样学习汇编语言更容易

本人从上世纪80年代就开始从事软硬件的编程,特别是经历了PC汇编和单片机汇编。

目前PC汇编肯定没人再搞了,因为在DOS时代,PC汇编(实际多用宏汇编)还大有用途,但在windows时代后,汇编就已经退出了舞台,只有反汇编搞逆向的人才使用和学习汇编和反汇编。

在单片机应用中,随着资源的扩大,像ARM芯片用汇编几乎不可能。

故在嵌入式领域,主要在小芯片的MCU上使用汇编,例如MVS51系列,PIC系列、AVR系列和DSP系列等。

当然也有搞各类汇编的,实际他们也是在搞反汇编,即搞逆向工程。

所以在这个年代想学习汇编的都是有故事的人……至少是听过故事的人!

本人精通51汇编和反汇编,如果需要,可以在网上搜索菜农的文章和帖子。

汇编语言属于底层架构吗有什么作用

标题不是很正确。最底层的架构,的确是由汇编写的。但是,汇编语言不全是底层架构。

操作系统的引导加载部分,输入输出,磁盘操作等部分是由汇编写的。系统启动时自检的BIOS程序也是汇编写的。除了底层的操作系统部分由汇编写成,其它部分不一定,由C,vc++写的也很多。

汇编语言除了底层操作系统外,做控制,计算等,也经常用汇编写。比如现在很多设备上用的控制软件,可能就是C语言,plm语言及宏汇编语言的混合编程。它与c语言本身差异不大,只是写法上不一样。有的老的软件工程师,最先用汇编/宏汇编,后来又用c编写,所以,为了保持程序正确性,采用混合编程。只是在汇编部分增加:

程序名()

{

_asm

mov mem1,#67h

...

}

这样是没问题的.

宏汇编在处理协处理数学处理器的运算时,效率也极高。有兴趣可以看看有关资科。

有必要学习汇编语言吗

作为985院校的本硕毕业生,现在就职于BAT,我个人的意见是除非本科必修课以及相关从业者,否则没必要学习了。

本科必修课

与java,Python等等语言相比,汇编语言其实是低级语言,除了可读性比较低,学习与调试难度也要比java等高级语言大。目前汇编语言通常被应用在底层,硬件操作和高要求的程序优化的场合。此外,驱动程序、嵌入式操作系统和实时运行程序的时候,也会用到汇编语言。

我读大学的时候,这门课是大三才上的,而且还有课程实践,整整一周,对着一台机器要试着敲各种枯燥的代码,感觉整个人都不好了。好在当时老师也明说了,汇编语言是硬件基础,将来不想搞硬件的话,不用再接触这个小祖宗了。正是因为这段经历,让我更加明确了未来不要从事硬件的决心。

实际工作

我个人从实习开始就是做互联网平台开发的,从一开始用的就是php,javascript,java这种高级语言。而据我对周围同事的观察,我们也没有人用过汇编语言。最多自己买个树莓派回家琢磨琢磨,也没用到汇编这么底层的语言工具了。

因此,从我的角度来说,汇编作为一门底层语言,如果你未来不想从事硬件工作,实在是没有必要耗在它身上,汇编不像C/C++,既是高级语言也能做硬件开发,所以有这个时间不如去学学C++,说不定对未来帮助还能更大些。

以上是我的浅见,欢迎各位点赞或者留言与我交流。

我是苏苏思量,来自BAT的JAVA开发工程师,每日分享科技类见闻,欢迎关注我,与我共同进步。

为什么很少人用机器语言,难道没发现机器语言比汇编更有优势吗

因为大家智力正常。

首先纠正一下,指令不止仅仅有256条,以X86来说有上千条指令。最长指令有15个字节,也就是有120个“机器语言”长度。

10100010 10100011 10100011 10101011 10100101 10101011 10100010 10100001 10100011 10100011 10100001 10100010 10100001 10100011 10100010

10100010 10100011 10100011 10101101 10100101 10101011 10100010 10100001 10100011 10100111 10100001 10100010 10100001 10100011 10100010

请找出以上两个指令的不同……

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

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

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

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

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

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

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

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

祝您学习有进步。