14 Star 113 Fork 12

xiaowuzxc / 大黄鸭处理器

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
大黄鸭指令集.md 1.83 KB
一键复制 编辑 原始数据 按行查看 历史
xiaowuzxc 提交于 2022-05-03 15:43 . 更新部分描述

汇编指令格式

指令集是处理器的灵魂,寄存器是指令集的基石。

寄存器结构

具体见doc/16寄存器组.xlsx

编号 标识符 功能
0 ZE 零寄存器
1 DK 运算寄存器
2-C R0-RB 通用寄存器
D RC 中断返回寄存器
F PC 程序计数器

指令规范

具体见doc/16指令表.xlsx

8位指令

处理器一次可以执行两条8位指令,但是不能对同一个寄存器写入,不能同时读或同时写数据空间。
指令格式:[指令1],[寄存器1];[指令2],[寄存器2]

[7:4]指令[3:0]寄存器1
  1. LD加载
  • 从[DK]指向的地址读出一个数,存入[寄存器1]
  1. SV存储
  • 把[寄存器1]的值写入[DK]指向的地址
  1. NF逻辑非
  • [寄存器1]的值取反
  1. IN寄存器+1
  • [寄存器1]的值+1
  1. SW寄存器高低字节交换
  • [寄存器1]的高低字节交换

16位指令

具体见16指令表.xlsx

[15:12]指令[11:8]寄存器1[7:4]寄存器2[3:0]X

指令格式:[指令],[寄存器1],[寄存器2]

  1. WR寄存器转移
  • [寄存器1]的值写入[寄存器2]
  1. CR比较
  • [寄存器1]>[寄存器2],DK写入1
  1. LA逻辑与
  • [寄存器1]与[寄存器2]与运算,结果写入DK
  1. LO逻辑或
  • [寄存器1]与[寄存器2]或运算,结果写入DK
[15:12]指令[11:8]寄存器1[7:0]立即数

指令格式:[指令],[寄存器1],[立即数]

  1. AD加法
  • DK=DK+[寄存器1]+[立即数]
  1. SB减法
  • DK=DK-[寄存器1]-[立即数]
  1. JW非0跳转
  • DK!=0,跳转到[寄存器1]+[立即数]
  1. JA无条件跳转
  • 跳转到[寄存器1]+[立即数]
  1. LL逻辑左移
  • DK逻辑左移[寄存器1]+[立即数],低位补0
  1. LR逻辑右移
  • DK逻辑右移[寄存器1]+[立即数],高位补0
  1. TL循环左移
  • DK循环左/右移一次
Verilog
1
https://gitee.com/xiaowuzxc/Yduck-processor.git
git@gitee.com:xiaowuzxc/Yduck-processor.git
xiaowuzxc
Yduck-processor
大黄鸭处理器
master

搜索帮助