打印
[国产单片机]

《酷能指令集》及相关专利技术

[复制链接]
楼主: 吾要单片机
手机看帖
扫描二维码
随时随地手机跟帖
61
吾要单片机|  楼主 | 2017-6-7 23:45 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 吾要单片机 于 2017-6-8 12:27 编辑

  • 更正:32位指令CJZ 、CJNZ、TJZ、TJNZ允许使用立即数前缀指令WIMM  #IMM28,实现寄存器与32位立即数比较、测试运算。

使用特权

评论回复
62
吾要单片机|  楼主 | 2017-6-11 01:31 | 只看该作者
条件码表有更正。

使用特权

评论回复
63
吾要单片机|  楼主 | 2017-6-11 20:57 | 只看该作者
本帖最后由 吾要单片机 于 2017-7-10 19:49 编辑

条件码表应该是这个,里面有些定义与ARM不同。

使用特权

评论回复
64
逍遥派掌门| | 2017-6-12 10:51 | 只看该作者
不懂。
先mark一下,留个爪子。

使用特权

评论回复
65
吾要单片机|  楼主 | 2017-6-12 12:16 | 只看该作者
逍遥派掌门 发表于 2017-6-12 10:51
不懂。
先mark一下,留个爪子。

大家一起学习

使用特权

评论回复
66
吾要单片机|  楼主 | 2017-6-12 12:22 | 只看该作者
有个问题:为什么ARM定义的进位C的极性和我们定义相反呢?ARM定义是C为0表示进位或借位,而我们通常是C为1代表进位或借位,是不是ARM的官方PDF有错?很多ARM的书都是那样,不明白啊!

使用特权

评论回复
67
吾要单片机|  楼主 | 2017-6-16 12:01 | 只看该作者
本帖最后由 吾要单片机 于 2017-6-16 12:20 编辑

关于条件码RP、RE、RN的说明:这3个条件码不只是指令的执行条件码 ,它们也同时无条件的将PSR寄存器的RC进行自减1操作。也就是说,指令是有条件执行,而PSR.RC是无条件自减1。

使用特权

评论回复
68
吾要单片机|  楼主 | 2017-6-18 18:29 | 只看该作者
乘法、除法指令表的执行周期数有更新!

使用特权

评论回复
69
吾要单片机|  楼主 | 2017-6-22 12:39 | 只看该作者
有人知道ARM除法器执行的周期数是多少吗?找不到这方面的资料,急用呢。

使用特权

评论回复
70
吾要单片机|  楼主 | 2017-6-24 19:34 | 只看该作者
更新除法指令周期数:T=3~11

使用特权

评论回复
71
aihe| | 2017-6-25 01:03 | 只看该作者
不太懂指令集,就想问一下,哪个编译器能用,哪个MCU支持此指令

使用特权

评论回复
来自android
72
吾要单片机|  楼主 | 2017-7-8 21:03 | 只看该作者
aihe 发表于 2017-6-25 01:03
不太懂指令集,就想问一下,哪个编译器能用,哪个MCU支持此指令

哦,还没有具体的MCU,目前正在编写汇编器,先从汇编器开始吧,然后慢慢扩充。

使用特权

评论回复
73
吾要单片机|  楼主 | 2017-7-10 20:03 | 只看该作者
本帖最后由 吾要单片机 于 2017-7-10 23:54 编辑

有改动,本次改动的内容如下:
1、条件码表有改动,新的条件码表如下:

2、取消JVC、JVS指令。
3、取消寄存器组PUSHG、POPG指令。
4、改进PUSH、POP指令,由单个寄存器PUSH、POP操作,改为多个寄存器的PUSH、POP操作。对于16位指令集,其出入栈操作的指令是:PUSH   Rd,#uimm4 和POP   Rd,#uimm4。对于32位指令集,其出入栈操作的指令是:PUSH   Rd, #uimm5 和POP   Rd, #uimm5。     Rd是起始的寄存器号,立即数是要连续操作的寄存器数。
经过本次改进,16位指令集包含有78条指令(其中,执行指令是74条,立即数前缀指令是4条),32位指令集包含有89条指令(其中,执行指令是88条,立即数前缀指令是1条).




使用特权

评论回复
74
吾要单片机|  楼主 | 2017-7-11 16:09 | 只看该作者
本帖最后由 吾要单片机 于 2017-7-15 16:55 编辑

还是保留R0寄存器的零寄存器功能,R0的零寄存器功能有利于减小程序代码长度。




使用特权

评论回复
75
吾要单片机|  楼主 | 2017-7-12 12:31 | 只看该作者
本帖最后由 吾要单片机 于 2017-7-12 17:47 编辑

关于中断系统:
      本CPU的硬件中断系统有:
手动复位,不可屏蔽,优先级0(最高), 抢占型中断,入口地址:0x00000000
MEM错误,不可屏蔽,优先级1,             抢占型中断,入口地址:0x00000100
ROM错误,不可屏蔽,优先级2,             完整型中断,入口地址:0x00000200
EXT中断,    可屏蔽和不可屏蔽,优先级3(最低), 完整型中断,入口地址:0x00000300
软件中断入口地址:0x00000400
注明:抢占型中断指的是不管指令处于哪个阶段都立即终止指令执行,即夭折; 完整型中断指的是指令执行完成后才可以中断。

使用特权

评论回复
76
吾要单片机|  楼主 | 2017-7-15 18:07 | 只看该作者
布尔指令BITN有更新。

使用特权

评论回复
77
吾要单片机|  楼主 | 2017-7-20 18:44 | 只看该作者
本帖最后由 吾要单片机 于 2017-12-23 19:51 编辑

中断响应时,硬件保存的寄存器是:LR,PSR。

使用特权

评论回复
78
吾要单片机|  楼主 | 2017-7-23 11:15 | 只看该作者

第三项专利初步审查已通过,进入实质审查阶段,有空再来介绍给大家。

使用特权

评论回复
79
airwill| | 2017-7-24 18:48 | 只看该作者
我也谈谈看法, 就跳转指令而言, 我感觉 AVR 的跳行指令非常高效, 又不占用跳转位, 又不刷流水线, 可以扩展使用.
就寄存器组, 这套系统明显优于 ARM 的16 条寄存器, 也能尽量使用编码空间. 只是自动压栈的寄存器是不是还可以调整一下. 比如 R0~R7 都能自动压进去. 函数调用只有4个变量, 往往感觉捉襟见肘. 为此ARM 的好多库函数都用结构体传递变量.

使用特权

评论回复
80
吾要单片机|  楼主 | 2017-7-25 12:39 | 只看该作者
跳转肯定是要刷新流水线的,除非不是流水线设计,一般CPU的做法是在发生CALL、RET、INT、IRET时都会加入工作寄存器的保护或恢复工作,这样做可以实现在进行流水线刷新时CPU仍然有事可做,但是JMP时就不行了,CPU只能干等,流水线越长等得越久,所以高端的CPU都会加入分支预测功能。至于现场需要保护的多少个工作寄存器,那需要结合CPU的应用领域来决定,有的子程序不需要很多个工作寄存器就可以运行了,本方案由用户自己保存工作寄存器。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则