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

WYF蓬莱


您好!很高兴回答您的问题!

首先,汇编语言肯定是属于底层架构的!

汇编语言就是将一些难于记忆的0100100转换为便于记忆的格式,让人能够稍微理解点。如 将寄存器bx的内容送到ax中,对应的机器指令是: 100001001110110000(完全不知道是啥玩意,如果真要细究,那么你就得去查看其电路连接了),而变成汇编指令后: mov ax, bx 。哈哈,是不是容易理解多了。所以,我也总结出一个道理,其实所谓的困难与简单,真的只是相对的,没有对比就没有伤害!

  回到前面的问题,汇编语言能干什么? 这个问题有点low了,机器语言都能干成的事,汇编都能干?但是,机器语言这么牛逼吗?难道现在这么多高科技的东西机器语言都能干吗?这是废话,所有语言转到最后,都是机器语言,没有机器语言干不了的事,也可以说,没有汇编干不了的事,只是咱功力不够,哈哈!

  汇编主要有三类指令:1)汇编指令(机器码助记符,与机器指令一一对应,如果可以,其实只要这玩意你就可以操作计算机所有硬件了); 2)伪指令(没有对应机器码,由编译器执行,计算机不执行,也就是说被编译器转换成了一组或更多的机器码去了,现代高级语言编译器都是干这事儿的); 3) 其他符号(如+-*/,和第二个一样,由编译器识别转换)

越是技巧性性的东西,我觉得现代的语言已经够多了,咱也没必要在汇编上去花费太多功夫。

  了解汇编,不是想用来写什么牛逼的功能,而是让自己更清楚的明白自己在做的是什么事情。

  我觉得有必要好好了解!


国际科技资讯


1、首先负责的说,汇编属于底层架构。计算机只能识别0和1两个数字,那我啥我们平时编程都是直接英文字符呢?这中间就是一个转换的问题,那是不是直接将高级语言转换成可执行的二进制(也就是0和1)呢?其实也不是,现在编译器大多数都是将高级语言转成中间的汇编语言。那为啥必须装成汇编语言呢?因为计算机硬件不同,可行性的命令集是不一样的,比如intel与amd,汇编语言就是操作这些cpu的符号语言。所以高级语言需要转换成依赖于硬件的汇编语言。

2、有什么用呢?

(1)优化,因为我们直接使用高级语言,在某些情况下,不能直接发现性能问题,使用汇编可以很好的分析程序真正的执行流程,进而看到问题所在。

(2)破解,发行的软件都是编译好的二进制可执行文件,无法得到源码,但二进制指令与汇编符号是一一对应的,我们可以通过逆向工程,反汇编得到软件的汇编代码,进而观察注册行为,破解软件。

(3)内核启动,在电脑开启之时,操作系统软件还未加载,这时只能使用机器识别的语言进行控制运行。

不过随着互联网发展,版权保护等等,现在使用汇编的人数在减少,但它会一直存在。


简派读书


汇编语言是介于高级语言与机器语言间的底层语言,它面向处理器、寄存器操作指令的操作语言。它比二进制的机器语言更具备可读性和维护性,是软件与硬件交互的中间件,属于底层架构的一环,对于单片机程序具有重要意义


分享到:


相關文章: