add a b c 表示把变量a 和 变量 c相加 放入到变量 a中
在MIPS指令中,每条算术指令只执行一个操作,并且有且仅有3个变量。
**例如要将 b 、 c 、d 、e相加后的结果放入到a 中
要执行的指令如下**
add a ,b, c 把b+c 的和放入到a中
add a, a ,d 把a加 d 的和 覆盖原来的 a(其中第2个a,或者第一个a这个时候会用一个单独的寄存器进行保存或者其他方式保存,之力不详细追究)
add a, a ,e
下面将就一条C语言的编译进行展示
例如C语言:
f=(g+h)-(i+j);
那么上面的C编译器将产生什么样的MIPS汇编语言代码?
因为一条MIPS指令仅执行一个操作,所以编译器会把这条C语句编译成多条汇编指令,上面说过一条MIPS指令只能有3个变量,
那么假如从g+h开始
g+h的结果必然需要编译器创建一个临时变量进行储存
变量 t0:
add t0 ,g,h
虽然下面要开始做减法,但是在做减法之前需要先做加法
变量t1:
add t1,i,j
最后做减法指令
sub f,t0,t1
那么在java中为了增强可移植性,java最初被设定为依靠软件解释器执行的语言,什么意思呢:
就是我们操作系统+硬件表示的就是一个美国人
我们java语言所编写的代码(.java文件)经过编译后生成.class文件是个中国人
这个时候中国人和美国人之间语言不通是无法交流的
这个时候我们需要一个翻译进行翻译,翻译从中国人那里知道.class是什么意思后经过他自己认为正确后,经过一定的规则后又把他翻译为英语
美国人拿到这个英语后,他说他读懂了,他照着这个,就去办事了,也就是这个时候我们电脑读懂了,进行相应的操作。
解释器的指令集称作为java字节码,他与MIPS指令集有很大不同,为了使性能与等效功能的C程序接近,java系统现在典型的做法是将字节码编译成类似MIPS这样的机器指令。因为通常java完成编译的时间迟于C,所以java编译器称为即时编译器
下面解释下MIPS汇编语言转化为机器指令的原理
add t 0 , t0, t0,s1,$s2
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
结语
小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。
我们选择的这个行业就一直要持续的学习,又很吃青春饭。
虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。
送给每一位想学习Java小伙伴,用来提升自己。
本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!
习Java小伙伴,用来提升自己。
[外链图片转存中…(img-O4y4JgZw-1711055765971)]
本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!