《计算机组成与设计》笔记(part1)(自学加菜鸟,水平非常有限,不喜勿喷,谢咯)

我是一名大二的学生,专业是信科。现在在自学,发笔记,主要是觉得这样自己可以理解的更加透彻,如果能对像我一样的菜鸟有帮助的话那就更好了,在看这本书之前,我自学了王爽编的《汇编语言》,所以在理解起来要稍微轻松一些。

如果哪位牛人看到了能给提出错误,不足和意见那真的非常感谢!(希望别有骂声。。。)

 

第二章:计算机的语言

本章主要讲解MIPS汇编语言,汇编语言有好几种,主要有Inter x86,ARM,MIPS,因为处理器结构不同,不同的汇编语言对应着不同的处理器,就像每个国家有自己的语言一样。

重要概念介绍:

寄存器:“寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。”--百度百科。通俗的说,我理解的寄存器就是处理器中的内存,用来存储指令和数据,不过速度要比普通的内存快很多。寄存器有16位的,32位的,现在也有64位的了,这章中,寄存器的大小是32位的,意思就是一次最多可以放32位的数据,且CPU中有32个寄存器。

字:“字是用于表示其自然的数据单位的术语。在这个特定计算机中,字是其用来一次性处理事务的一个固定长度的位(bit)组。”--百度百科。字节是八位的,大家都知道。字通俗理解就是CPU一次能处理的位组,比如8086CPU,寄存器是16位的,传输的最大宽度也是16位的,运算器一次最多能处理16位的数据,所以8086CPU的字是16位的。本章介绍的MIPS汇编语言,CPU中寄存器是32位的,所以对于这个CPU字就是32位的(MIPS也有64位的)。当然有时为了兼容,新的CPU虽然可以处理更多位数的数据,但字的大小还是与旧版的CPU一样。

这章的重点还是在于如何使用MIPS,以及mips和C的联系,进一步体现汇编语言的作用。

(这是第一次发笔记,先写一点点试试吧~)

注:无特殊说明,下面C中的变量都是32位的。

MIPS中的加减法:

 EXAMPLE:

     C:     a=b+c;

              d=a-e;

  如果我们先不用寄存器,依然用变量,用MIPS来写的话,就是

   MIPS:    add a,b,c

                 sub d,a,e

 即add是加法指令,add a,b,c相当于a=b+c,同理,sub就是减法指令了。

 程序变量运行起来的时候是要加载到寄存器里的,所以现在把程序变量和寄存器对应起来。a,b,c,d,e依次$s0,$s1,$s2,$s3,$s4  (这五个就是mips里面的寄存器,前面的$相当于一个标识),那么MIPS就要改成:

mips:    add $s0,$s1,$s2

               sub $s3,$s0,$s4

这就是mips的加减法指令。

MIPS存取数指令:

真正的程序中,变量是很多的,并且还有复杂的数据结构,单单几个寄存器是不够的,所以需要将这些数据结构放入到内存中,在使用的时候将它取出来放到寄存器中,不用的时候就把它存入到内存中。这就是存取数指令的作用。

取数指令就是讲数据从存储器拷贝到寄存器的数据传送指令,助记符位lw(load word),即取一个字大小的数据。

EXAMPLE:

      C:   g=h+A[8];

      设数组A的起始地址或称基址,存放在寄存器$s3中。g,h依次分配给$s1,$s2。

 这里牵扯到一些寻址的知识,稍微说一下,寻址就是找寻内存的地址,内存的地址就相当于门牌号一样,内存单元已经排好序,如1,2,3,4 。寻址就是找到这个门牌号。mips是按字节寻址的。按字节寻址,存储空间的最小编址单位是字节,按字寻址,存储空间的最小编址单位是字。举例说,这里的数组A的每个元素,是占四个字节的,所以说A[8],第九个元素,是从第32个字节开始。

所以说A[8],用mips表示就是   32($s3),$s3代表着基址,32是偏移地址,真正的地址=基址+偏移地址。

所以用MIPS表示

    mips: lw $s1,32($s3)

 

同理,存数指令是将寄存器中的内容拷贝到内存中,助记符位sw(store word),用法与存数指令是一样的。

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值