20、 地址为11000时,操作上一步指令,将05H单元数据10H送入AR,作为
新的地址,产生下址00001。
21、 地址为00001时,上一步操作将R5数据存入地址为10H的Ram中,总线
显示数据位DFH,操作正确,同时产生下址00010。
22、 接下来的操作与之前相同,不再赘述。
23、 同样的经过几个节拍脉冲,将地址a到01000状态,此时总线高三位是
011,在p1为1,ldir有效时得到下址01011。进入OUT操作分支。
24、 与STA操作相同,只是在最后a地址为11010时产生下址00001。同时执
行RAM到AR的操作,此时RAM的07H单元数据位10H,将该数据继续作为AR,显示RAM10H地址的数据。
25、 地址为00001时执行上步操作,将Ram的0H地址的数据显示出来为DFH,
可见数据写入成功。
余下的将进行如下操作:
将R5的数据DFH与Ram中0FH单元数据F0H进行相与运算得到D0H,送至R5,再对其取反的2FH。最后无条件返回00H单元地址。不再进行波形分析。 下载验证时引脚分配如下:
K的输入可以直接置为低电平,不再分配。
最后为模拟机部分:
运算公式为(A+B)’andC’,其中ABC分别为01H ,02H,03H。模拟机修改内存值如下图:
程序运行步骤为:
先进行取A的值,到R5,然后加上12单元内部数据(B的值),存入R5,再运用com指令进行取反,得到的值存入R5及RAM14H单元。然后取得13H单元数据到R5,进行取反运算后存到R5,再将14H单元数据存到R2,R5到R1,进行and运算,最后结果存入R5及15H单元,用JMP指令跳回至00H单元。 单步运行结果如下:
1、14H单元存入的数据应该为FFFC,即A+B取反的结果,从图中可以看出是正
确的。
2、15H单元数据位14H单元与03H取反后相与的结果,即FCH and FCH,结果仍为FCH。是正确的。
总结:
本实验较好的理解了简单CPU的运行计算机制,并能够基本学会修改微程序,进行不同运算式子的操作。提高了能力。