打印

STM8指令对对齐方式?

[复制链接]
2111|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
crazybee|  楼主 | 2010-6-30 21:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM8 FLASH采用 32BIT 总线,指令又有长有短,是采用什么对齐方式呢?是字节?如果是的话,那个下个指令地址预取不是跟之前的指令想关联?

比方:
nop         1byte  < PC
nop         1byte  
nop         1byte  
adc a,$#66  2byte   
...

一次读的时候,不有三个NOP+一个ADC开头部分被读入?预取是的2个NOP + ADC? 呵呵,看来STM8的指令预取的地址是变动的!

有没有手册有说明的?
沙发
香水城| | 2010-7-1 11:13 | 只看该作者
CPU中有2个32位的指令预取缓冲区。

使用特权

评论回复
板凳
crazybee|  楼主 | 2010-7-1 14:52 | 只看该作者
谢谢,请问一下,那PC的下条指令不是简单的加一或加二是吧,这个跟其它单片机很不一样啊,呵呵!

我是想问一下,PC的下一条指令地址是怎么计算的,指令长度1-4个字节

NOP      <   下一条 加1就可以了
NOP
ADC ...  <  下一条 加2或3或4   
NOP

呵呵,PC的增量是跟当前取出的指令有关,是吧,呵呵

其实不了解这个也没有关系,也可以开发,只是有点意思,想想问问,指令指令长度是不是包含在指令码里了,呵呵,有没有手册说明!


THX!

使用特权

评论回复
地板
香水城| | 2010-7-1 16:54 | 只看该作者
这是一个基础知识的问题,如果楼主感兴趣,可以找一本计算机体系结构的书看看。

使用特权

评论回复
5
crazybee|  楼主 | 2010-7-1 17:45 | 只看该作者
呵呵,看了回复,心里有点怪怪!其它单片机PC增长是线性方式的,增量是固定的,比如说PIC16的是增量为1,你不愿意回算就算了,没有关系!呵呵

使用特权

评论回复
6
crazybee|  楼主 | 2010-7-1 17:52 | 只看该作者
ARM 还有要求指令对齐的,STM8的结构,就是有点不一样,指令长度是变的,1-4个字节,后一条指令地址跟前一条相关联的
NOP <  PC+1 就是下条,因为NOP是一个字节,
ADC....  《 如果是4节字的话,那么 PC+4才是下一条,如果是2字节的,下一条是 PC+2


看什么计算系统的书!!??

使用特权

评论回复
7
香水城| | 2010-7-1 18:03 | 只看该作者
呵呵,看了回复,心里有点怪怪!其它单片机PC增长是线性方式的,增量是固定的,比如说PIC16的是增量为1,你不愿意回算就算了,没有关系!呵呵
crazybee 发表于 2010-7-1 17:45


不是我不愿意回复你,这根本是一个基础的东西,你总不能让我给你补大二的课吧。

固定指令长度与可变指令长度,这是RISC与CISC指令系统的区别之一。

使用特权

评论回复
8
crazybee|  楼主 | 2010-7-1 19:11 | 只看该作者
谢谢,没上过DX,哈哈!

使用特权

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

本版积分规则

个人签名:MSN: ihuangwh@foxmail.com

149

主题

800

帖子

5

粉丝