嵌入式系统设计师学习笔记⑤:指令系统
嵌入式系统设计师学习笔记⑤:指令系统
指令的基本概念:
一条指令就是机器语言的一个语句,是一组有意义的二进制代码。
指令分为2部分:
操作码字段OP | 地址码字段A |
---|---|
指出了计算机要执行什么性质的操作 | 包含各操作数的地址及操作结果的存放地址等 |
寻址方式:
①立即寻址:操作数直接在指令中给出
MOV A,#0EH (#0EH 是一个立即数/操作数)
直接将0EH给A
②直接寻址:操作数在单元地址形式中
MOV A,68H
将在68H中存的数给A
③寄存器寻址:操作数在寄存器(通用工作寄存器:R0~R7)中给出
MOV A,R1
将R1中存的数传给A
④寄存器间接寻址:操作数通过寄存器指向的地址单元得到
MOV A,@R0 (R0= #56H)
将56H单元中的数据送到A
R0是地址,@是取R0中存的数
⑤变址寻址:以DPTP或PC为基址寄存器,A为变址寄存器,两寄存器内容相加形成16位地址构成操作数的实际地址
MOV A,@[A+DPTP/PC]
⑥相对寻址:以PC的内容为基础,加上偏移量作为转移地址,实现程序的转移
PC+偏移量
⑦位寻址:在操作数指令中直接给出位操作数的地址
MOV A,20H
20H是位操作数的地址
指令系统中采用不同寻址方式的目的是为了扩大寻址空间并且提高编程灵活性。
指令流水:
流水线:多条指令重叠进行操作的一种准并行处理实现技术。
对于三指令来说:取指→分析→执行
设每一个指令的执行时间为T,则未使用流水线执行指令时,执行完三个指令后,总耗时为9T,而对于使用了指令流水线执行指令时,总耗时为5T。
流水线周期:执行时间最长的一段。(一般用△t表示)
在此图中每条指令有三部分操作:取指,分析,执行,分别设每一段执行所需要的时间为t1,t2,t3,共有n条指令。
流水线计算公式:
1条指令执行时间+(指令条数-1)*流水线周期
一、理论公式:(t1+t2+……+tk) + (n-1)*△t
二、实践公式:k*△t+(n-1)*△t(不常用)
流水线的吞吐率(TP):单位时间内能够处理的指令的条数
TP = n / Tk (Tk是n条指令执行完毕后总共花费的时间)
流水线最大吞吐率:
流水线周期的倒数:1/△t