您的位置:首页 > 理论基础

高等计算机体系结构2-lixianfeng

2015-09-23 21:59 441 查看

理解是怎么工作的,跳转是难点。为的是工作中看汇编代码能看懂

1.基础

概念 功能

ISA 软硬件接口

instruction指令=opcode + oprand

如果内存容量较大,将需要很长的操作数域,从内存中取数速度慢,功耗高。为了解决这个问题: load R1 A :ALU 离CPU很近的一个寄存器,load一次运算多次。改善了add的拿数据的时间

执行

分类(4系统控制指令)

数据运算

数据移动

控制转移

MIPS

操作数类型:根据数据所在位置来划分:

immediate(在指令中不用去别处取常数)

register(寄存器编号)

memory(常数:偏移量,在寄存器中指定,此时寄存器中存储的是地址)

指令分类3类

原来程序员角度:ALU instruction;data movement;control transfer

指令编码格式角度:

R-type;寄存器格式:op(操作码) rs rt rd(2^5=32个寄存器) shamt (移位) funct(补充)

I 立即数格式:op rs rt immediate value (2^16=64k)

J 跳转格式:op target address(26) 长跳转三种指令等长;32位,64位,是寻址空间大小不同。 add sub 只有funct不同,加法和减法通路配置相似

源代码到MIPS机器指令1200=300*4,每个字节用4byte表示

功能上

alu 算数逻辑运算指令

通用寄存器使用惯例:32个register怎么分配的.

寄存器-立即数 移位语句

控制转移语句

条件分支指令

保存现场,恢复现场

嵌套过程调用









过程调用帧

过程调用

步骤

caller callee

jal(jump and link)

jr,jalr

堆栈stack、后进先出,专用$sp

保护,恢复现场

嵌套过程调用

寻址 编译 执行

寻址方式 4种:立即数,寄存器,基地址,条件跳转,高低位

编译执行:complier assenbler linker loader

设计原则

RISC CISC精简 复杂

杂谈
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: