汇编程序与程序代码是什么关系?
感谢邀请。
首先要弄清楚问题,根据自己的理解我把问题重新翻译一下欢迎指正:
汇编程序代码与非汇编程序代码(比如c语言,C#,Java)有什么关系?
1.汇编语言是一种面向CPU的低级语言,它是与CPU指令集一一对应的助记符号,汇编语言写完后简单解释就可直接转化为机器可以识别的机器语言,中间不需要其他过程所以效率很高
2.普通的非汇编程序代码(比如C语言,C#,Java等)属于面向程序员的高级语言,它更接近人的思维,语法相对固定,只有通过特定编译规则的编译器进行编译才能转化成机器可以识别的机器语言,所以效率相对汇编语言来说较低。
分开来看1和2都是独立的计算机语言,都可以在各自擅长的领域进行软件开发,没有直接的关系。
但是高级语言在编译后生成二进制可执行程序过程中会转化成汇编语言,所以很多破解软件利用反汇编技术把源代码还原分析找出漏洞加以破解,同样我们也可以利用这个机制
来深度调试程序分析bug。
VisualStudio开发时 当程序运行到断点处停止依次点击调试->窗口->反汇编;英文显示为"Debug"下的"Windows"子菜单,选择"Disassembly" 来查看汇编代码。
Java开发时需要用HSDIS插件来查看汇编代码。
汇编语言与其他语言没有直接关系,换个角度考虑高级语言(C语言,Java语言等)编译时
会生成汇编代码进而转化成二进制可执行程序,存在这种关系。
欢迎留言讨论,也欢迎私信。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有