指令系统实例分析
指令系统实例分析
一、教学计算机指令系统介绍
1、教学计算机指令系统概述
(1)6位固定长度的操作码,最多有64条指令。
(2)指令分类
①按指令长度分:有单字、双字指令
②按操作数的个数分:有无操作数、单操作数和双操作数指令
③按寻址方式分:有寄存器寻址、寄存器间接寻址、立即数寻址、变址寻址、相对寻址、直接寻址和堆栈寻址。
(3)指令格式
15 10 9 8 7 0
6位操作码 2位条件码 目的寄存器编号 源寄存器编号
输入、出端口地址/相对转移的位移量
立即数/绝对地址/变址位移量
操作码:在最高6位,最多64条指令。
条件码:占2位,用作条件转移指令的判断条件(对应状态字C、Z、V、S)
最低8位:不同指令有不同的用法。
●输入或输出端口地址
●相对寻址的位移量(-128~+127)
●分成两个4位字段,表示双操作数的寄存器编号
2、教学计算机指令系统详述
(1)按操作数的个数分类
①无操作数指令:11条
NOP 空操作指令 DI 关中断指令
PSHF 状态字入栈指令 STC 进位位置1(C←1)
POPF 状态字出栈指令 CLC 进位位置0(C←0)
EI 开中断指令
RET 子程序返回指令
IRET 中断返回指令
LDMC 装入微指令代码指令
HALT 动态停机指令
②单操作数指令:有两种格式,共12条
格式1: 15 10 9 8 7 4 3 0
操作码6位 不用 不用 SR
MUL SR 无符号乘, R0 R1 ←R1×SR
DIV SR 无符号除, R0(余数)R1(商) ← R0 R1 /SR
格式2: 15 10 9 8 7 4 3 0
操作码6位 不用 DR 不用
指令:PUSH DR 将DR压入堆栈
POP DR 将栈顶元素弹出送入DR
INC DR DR ←DR+1
DEC DR DR←DR-1
NOT DR DR ←DR
SHL DR DR逻辑左移,最低位补0,最高位移入C
SHR DR DR逻辑右移,最高位补0,最低位移入C
RCL DR DR与C循环左移,C移入最低位,最高位移入C
RCR DR DR与C循环右移,C移入最高位,最低位移入C
③双操作数指令,有两种格式,共17条
格式1: 15 10 9 8 7 4 3 0
OP 不用 DR SR
指令:ADD DR,SR 功能: DR DR+SR
ADC DR,SR 功能: DR DR+SR+C
SUB DR,SR 功能: DR DR-SR
SBB DR,SR 功能: DR DR-SR-C
CMP DR,SR 功能: DR-SR
TEST DR,SR 功能: DR&SR
OR DR,SR 功能: DR DR or SR
XOR DR, SR 功能: DR DR xor SR
AND DR, SR 功能: DR DR & SR
MOV DR,SR 功能: DR SR
MOV DR,[SR] 功能: DR [SR]
MOV [DR],SR 功能: [DR] SR
格式2: 15 10 9 8 7 4 3 0
OP 不用 DR SR
DATA/ADR/OFFSET
DATA:立即数 ADR:内存地址
OFFSET:偏移量
指令: 功能:
MOV DR, DATA DR DATA
MOV DR, [ADR] DR [ADR]
MOV [ADR],SR [ADR] SR
MOV DR , OFFSET[SR] DR [OFFSET+SR]
MOV OFFSET [SR],DR [OFFSET+SR] DR
④I/O指令,输入、输出指令各1条
格式: 15 10 9 8 7 0
OP 不用 IO/ PORT
指令:
IN PORT R0 [PORT],从外设读入一字节到R0低8位
OUT PORT [PORT] R0, 把R0的低8位数据写到外设
⑤转移指令,3种格式,共6条相对转移指令
格式1: 15 10 9 8 7 0
OP CND 位移量
JR ADR CND不用,必转ADR地址,ADR为原PC值+位移量
JR CND,ADR 当条件满足时转ADR所指的地址,ADR 为原PC值+位移量,条件 不满足则顺序执行
通过通用寄存器给出转移地址的转移指令
格式2: 15 10 9 8 7 4 3 0
OP CND 不 用 SR
指令:
JP SR CND不用,无条件转SR 所指的地址
JP CND,SR 当条件满足时转SR 所指的地址,条件不满足则顺序执行
按绝对地址实现的转移指令
格式3: 15 10 9 8 7 4 3 0
OP CND 不用 不用
ADR
指令:
JP ADR CND不用,无条件转移到ADR地址
JP CND,ADR 当条件满足时转移到ADR地址,条件不满足则顺序执行 ,
⑥子程序调用指令,两种格式,共两条。
格式1: 15 10 9 8 7 4 3 0
OP 不用 不用 SR
指令:CALL SR 调用SR指定的子程序,SP <---SP-1,
[SP] <---PC,PC <---- SR
格式: 15 10 9 8 7 4 3 0
OP 不用 不用 不用
ADR
指令:
CALL ADR 调用通过ADR指定的子程序,SP SP-1
[SP] PC,PC ADR
可以看出,子程序调用指令的两种格式与无条件转移指令的后两种格式是一样的。
(2)按指令实现的功能分类
①算逻指令:19条(见教材P139页)
②传送指令:12条(见教材P140页)
③输入、输出指令:2条(见教材P140页)
④控制类指令:17条(每条条件转移指令按两条计算)
⑤其它指令,3条
3、汇编语言程序设计
计算机语言按层次分为三级:
①机器语言 ②汇编语言 ③高级语言
汇编语言程序举例:
例1 设计一个小程序,用次数控制在终端屏幕上输出0~9十个数字符。(注:字符0~9的ASCII码为30H ~39H)
A820
MOVE R2, 0A ;R2为计数器,初值送10
MOVE R0, 30 ;R0初值送‘0'的ASCII码30H
(824) OUT 80 ;输出R0中存放的字符,80为端口地址
DEC R2 ; R2计数器减1,置状态标志位
JR Z,830 ;若为0,就转移到830处执行;否则顺序执行
PUSH R0 ; R0入栈,为了输入外部设备状态字
IN 81 ;将端口地址为81的外设状态字输入到R0中
SHR R0 ;R0逻辑右移一位,最低位进入C
JP NC,828;C=0,表示没有就绪,循环等待;
C=1,顺序执行
POP R0;栈顶元素弹出进R0
INC R0;R0内容+1
JP 824 ;无条件转移到824
(830) RET ;返回主程序
非常好我支持^.^
(0) 0%
不好我反对
(0) 0%
相关阅读:
- [电子说] 龙芯指令集,世界第三极 2023-09-22
- [电子说] 8051内核、兼容MCS-51的1T指令系统、通用IO型的8位芯片CMS8S5897介绍 2023-08-15
- [工业控制] PLC指令的表达方式 PLC指令系统的类型 2023-03-15
- [电子说] 龙芯自主CPU指令系统获得开源DPDK支持 2022-12-08
- [控制/MCU] 一文详解80C51单片机的指令系统 2022-11-15
- [工业控制] 龙芯中科发布基于自主指令系统“龙架构”29款自主工业系列产品 2022-09-05
- [今日头条] 构建 4 位计算机:指令权衡 2022-08-01
- [电子说] 龙芯自主指令系统架构产学合作协同育人项目正式发布 2022-06-10
( 发表人:admin )