发布时间:2022-06-23 12:00来源:www.51edu.com作者:畅畅
感谢邀请。
首先要弄清楚问题,根据自己的理解我把问题重新翻译一下欢迎指正:
汇编程序代码与非汇编程序代码(比如c语言,C#,Java)有什么关系?
1.汇编语言是一种面向CPU的低级语言,它是与CPU指令集一一对应的助记符号,汇编语言写完后简单解释就可直接转化为机器可以识别的机器语言,中间不需要其他过程所以效率很高
2.普通的非汇编程序代码(比如C语言,C#,Java等)属于面向程序员的高级语言,它更接近人的思维,语法相对固定,只有通过特定编译规则的编译器进行编译才能转化成机器可以识别的机器语言,所以效率相对汇编语言来说较低。
分开来看1和2都是独立的计算机语言,都可以在各自擅长的领域进行软件开发,没有直接的关系。
但是高级语言在编译后生成二进制可执行程序过程中会转化成汇编语言,所以很多软件利用反汇编技术把源代码还原分析找出漏洞加以,同样我们也可以利用这个机制
来深度调试程序分析bug。
VisualStudio开发时 当程序运行到断点处停止依次点击调试->窗口->反汇编;英文显示为Debug下的Windows子菜单,选择Disassembly 来查看汇编代码。
Java开发时需要用HSDIS插件来查看汇编代码。
汇编语言与其他语言没有直接关系,换个角度考虑高级语言(C语言,Java语言等)编译时
会生成汇编代码进而转化成二进制可执行程序,存在这种关系。
欢迎留言讨论,也欢迎私信。
打个比喻,汇编程序与程序代码,就像象形文字与简体字类似,象形文字是只有古人看的懂,汇编只有cpu能识别。简体字是现代人看的懂,而程序代码是程序员或软件工程师写的。
13----回车
10----换行
$----09 功能调用所规定的字符串的结束符
扩展资料:
汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植汇编语言, 即第二代计算机语言,用一些容易理解和记忆的字母,单词来代替一个特定的指令,比如:用“ADD”代表数字逻辑上的加减,“ MOV”代表数据传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便。当计算机的硬件不认识字母符号,这时候就需要一个专门的程序把这些字符变成计算机能够识别的二进制数。
伪指令是用于告诉编译程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为编译程序所识别并指导编译如何进行。 例如:(1)程序的起始地址指定指令,告诉编译程序,用户写的程序在单片机或DSP等的开始地址。(2)数据单元地址指定的指令,告诉编译程序,给指定的数据单元分配指定的地址。 这些都是伪指令,它们从编译后的代码中是看不到的。
流浪法师出装,英雄联盟手游小法师怎么出装
勇者斗恶龙7安卓攻略,勇者斗恶龙7安卓
lol小鱼皮肤哪个手感好,菲兹皮肤手感排行
妄想山海香料蘑菇怎么做,妄想山海臭豆腐配方和制作方法分享
厄运之槌地图走法,魔兽厄运之槌副本入口
另一个伊甸奈岐角色任务,另一个伊甸奈岐技能介绍及强度测评
西部荒野稀有乌尔图斯,外域稀有精英分布图
奶茶制作方法,妄想山海烤全鱼配方和制作方法分享
洛克王国酷拉要刷多少次,洛克王国酷拉在哪
开心消消乐
类型:休闲益智
解压宝盒
类型:休闲益智
迷你世界
类型:休闲益智
恐怖奶奶
类型:休闲益智
老板挪个车2
类型:休闲益智
我的狗狗
类型:休闲益智
贪吃蛇大作战
类型:休闲益智
白块儿达人-节奏钢琴黑白块
类型:休闲益智
解压模拟大师
类型:休闲益智