计算机的指令集体系结构(ISA)从汇编语言程序员的角度描述了计算机,并强调了计算机的功能,而不是它的内部组成实现。ISA说明了计算机能做什么,而计算机组成则说明了它是如何做的。
学习目标:
1.分析存储程序计算机并演示指令如何执行。
2.了解存储器-存储器、寄存器-存储器、寄存器-寄存器等操作的指令格式。
存储程序计算机
ARM的处理器采用的是存储程序体系结构,它将程序和数据放在同一个存储空间内,采用取指-执行模式执行,就是按照顺序从内存读取指令、译码、执行。这种计算机带有寄存器、算逻运算单元(ALU)、存储器以及用来连接各个功能部件的总线。程序或者被保存在只读存储器中(例如单片机的flash),或者由操作系统从硬盘加载到内存中。
寄存器
寄存器是位于CPU内部的存储单元,类似于内存中的存储单元。寄存器使用名字而不是地址来访问,比如r0、r1、...、r15(ARM的命名)。
寄存器的功能
1.高速暂存寄存器,用于保存数据或者数据单元的地址。
例如:r0寄存器保存了存储器地址为0x0002存储单元中的数据0x13,r1寄存器保存了存储器的数据单元的地址0x0002(即指针)。
2.特殊功能寄存器,例如程序计数器PC,记录了要执行的下一条指令的地址,PC又叫指令指针。
指令格式
1.LDR 寄存器(目的),存储单元(源)
LDR指令把数据从存储器复制到寄存器,例如LDR r1,0002将把地址为0002的存储单元中的数据读到寄存器r1中。
2.STR 寄存器(源),存储单元(目的)
STR指令把数据从寄存器传输到存储器,例如STR r2,0001把寄存器r2的值写入地址为0001的存储单元。
3.Operation 寄存器(目的),寄存器1(源),寄存器2(源)
Operation 定义了CPU完成的操作(例如ADD、SUB、AND),后边的3个操作数指定了参与操作的寄存器。源操作数指明了数据来源,目的操作数指明了结果放在哪里。例如ADD r1,r2,r3将r2和r3的内容相加,然后把结果写入r1,r2和r3的内容保持不变。