如何在Android中使用汇编语言如何运行

汇编语言上机环境及基本操作_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
汇编语言上机环境及基本操作
上传于||文档简介
&&实​验​一​ ​汇​编​语​言​上​机​环​境​及​基​本​操​作
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩7页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢如何在Android中使用汇编语言_百度知道非常喜欢汇编,想从事相关的工作,应当如何规划?
从本科开始学汇编就非常喜欢这种语言,但是在现在的大环境下,对汇编的需求很少了,知乎上大神不少,有没有从事这方面工作的,帮晚辈指点指点方向啊
在2000年代初,有一种电子辞典叫文曲星。有一位高手以其深厚的6502汇编技术将红白机上白《超级玛丽》移植到了文曲星上…后来,又发明了一种跨机型的编程语言,LavaX:最近这位高手开始研究手机平台:上面这高手,是汇编能成就一个人的一种方式吧。——————————————————————于我自身而言,对汇编的(只有皮毛程度的)了解是出自将C++版(作者=曾半仙)的文曲星CC800模拟器移植到Android上……虽然完全没有技术含量,但移植的过程中看到文曲星屏幕显示在Android手机上真是觉得很开心。有了这番经历之后,在应对Coursera上的Stanford Compilers公开课()也稍微轻松了些(主要是写Code Generation那个作业时)。即使不从事汇编工作,汇编也是能打开通向很多别的道路的大门的吧。
去学吧,不一定要去找汇编的工作,但是学过的汇编知识一定会用到的。最近在写游戏,其中用到了python里面的gevent,然后gevent又用到了greenlet。greenlet这个东西是个coroutine的实现,任务切换的原理保存/恢复栈的内容。移植到Android上的时候总是崩,于是开调试器对着汇编看,最终找到问题:某个应该在任务切换时保存的寄存器没有保存,任务恢复的时候这个寄存器里指向的变量就不一样了。要是没有汇编的底子,这个问题就会坑在这了附上PR的地址,你看,就是这两天的事研究JVM的
也是离不开汇编的,看JIT出来的代码是家常便饭。另外,逆向工程类的工作应该还是挺多的吧?这一类的就是汇编啊,各种汇编啊,IDA的F5不是万能的。我自己的感受呢,会用汇编很方便,遇到问题总能一查到底,很有安全感啊。而且学起来也不是多费劲,常用的指令记住就好了。投入产出比很高的。
没有任何工作是使用纯汇编,即使在嵌入式、安全领域等汇编使用相对较多的场合,汇编语言的使用频率依然不高。在解决某些问题的时候,汇编可能是一个关键点,但你不可能用汇编去实现一个巨大的完整的解决方案,原因就是效率。也许用汇编解决某一两个点的问题(比如安全漏洞,比如效率提升)只用几行代码,但问题是你不可能天天都会遇到这种事情。你为了找到这一两个问题点,需要用C/C++/Java等去制作一个几千上万行的工具寻找问题点。你写一万行汇编需要多少时间?别人用C/C++/Java去实现等价的汇编需要多少时间?时间决定了开发效率,开发效率决定了你能为公司、个人获得多少收益,收益决定经济基础……而且,学完x86汇编以后ARM汇编要不要学?PPC呢?MIPS呢?计算机行业里诞生这么多编程语言目的是为了提高效率,汇编确实能解决一些细节问题,但想用汇编解决所有问题,那就是傻了。我曾经用汇编定位了一个编译器的问题。但我做嵌入式开发,主要还是用C,对于企业的开发来说,投入产出比很关键,效率很关键。前面回答的各种领域:安全:解决问题可能是汇编,但定位问题可能是用C/C++的工具,甚至是Python之类的语言,你的工具不是汇编写的,你不可能一直用别人的工具,当你需要自己造工具的时候,你怎么办?嵌入式:多数嵌入式系统里,主体代码都是C。操作系统:微软有泄露的源码,看看汇编的比例有多少吧(不知道有没有到1%?)编译器:LLVM/GCC是用C++写的,翻译成汇编只是最后一步,而编译器的精髓往往在前面不在这最后一步。所以,你必须要学习掌握汇编之外的至少一门语言,各种工具都有它最适合的场景,掌握多种工具才是生存之道。
某某在大学遇到一女孩儿,她是世界上最好的女孩儿,现在像她这样的女孩儿不多了。某某想跟她永远幸福地生活在一起……从毕业的那一天,他们撑着过了好几年,是时间太重?是承诺太轻?是现实太近?是梦想太远?是一行脚本胜过万行代码?百般用心却还不如糙猛快?前方的路越走越难,同行的人渐行渐远……多年之后蓦然回首,才终于明白:谈钱伤感情,编程也一样!说喜欢就别想工作,想工作就别说喜欢……个人觉得汇编不是过日子的主儿,不过,你喜欢就好……
这还用问吗,喜欢汇编就来搞安全啊,妥妥的系统安全苗子。IT行业很多人都喜欢往上走,钻研各种算法、设计模式、框架,很少有人喜欢往下走了。你可以从逆向和漏洞挖掘做起,天天在机器码的世界里遨游,有时写点shellcode,不仅能做你喜欢的事,而且很酷。
学吧,在大学能做一件喜欢的事情是不容易的。也许某一天你会发现你没有做相关的工作,但是那段经历,学汇编垫下的基础也许会让你受益很多。
嵌入式Linux(uboot)中调试也是经常用到汇编的,例如用到Jtag来单步调试。熟悉汇编有助于问题的快速解决,尤其是新板子来了,原厂支持不给力的情况下(或者自己不是大客户)。此外,ARM这边虚拟化/TrustZone,快速启动等等都可以用上
嵌入式,单片机。编译器后面生成目标码如果是汇编的话,应该也有相关的。搞逆向。所有语言最终都是汇编指令在执行,不过这个更偏重于“看”,而非“写”。搞逆向下面就可以发展成去挖系统漏洞,做破解之类的了,很枯燥的活。现在能用汇编的地方是越来越少了,我也没怎么用过汇编,觉得太麻烦,只是看得比较多。但只要有兴趣,去学就是了,你学了就会发现它的用处了。。
学习汇编理应搞逆向,玩好逆向相当于掌握了“学习现有代码”这一元技能。就算以后不玩汇编了,看其它项目、框架、源码,思路都会很开阔,因为你已养成这种学习习惯。如天龙中北冥神功一般,来者不拒,万物为我所用。
说说我自己的经验:从头写了个x86操作系统(很简单的那种),然后递简历给Intel。拿到offer以后被分配到了汇编just-in-time compiler组
已有帐号?
无法登录?
社交帐号登录如何在Android中使用汇编语言_百度知道

我要回帖

更多关于 如何学习汇编语言 的文章

 

随机推荐