12年1个月前修改于 12年1个月前IP:广西
730817
28楼
给这个CPU编程必须按规则来, 有时要插入空操作, 不然指令执行会出错[s:;P]
"A = 0x00"的下一句是"A = 0x11"的话"A = 0x00"不会被执行.
如果要让A = 0x00被执行的话后面指令的目的操作数不能是A,
因为这个CPU锁存A = 0x00指令之后A寄存器(74XX273)的锁存线被拉低, 只有下一条指令不选中A寄存器,A寄存器的锁存线才会拉高锁存.
这个CPU的数据传送是靠阻塞来实现的...  意思就是数据消失的瞬间寄存器锁存线同时拉高出现的现象,  移位寄存器原理- -.
之前被洗脑了...以为一定要装个控制器上去才可以, 搞得得电路复杂得要死[s:;P]  还好觉悟得早
指令集里面的移位指令和跳转指令是根据经验来搞的.  这个经验在写编译器的时候一不留神就刷到了=  =
跳转指令产生的跳转信号本来还想在后面加个异或门控制真假,  想想没必要[s::lol] 增加延迟频率又降低.
评论
文号 / 730817

千古风流
名片发私信
学术分 4
总主题 71 帖总回复 1168 楼拥有证书:学者 机友 笔友
注册于 2011/08/12 17:13:20最后登录 2022/12/22 11:43:34
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:0

个人简介

暂未填写
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的