提交 760789d3 创建 作者: 李川's avatar 李川 提交者: 李川

修改中断返回指令

上级 4614dea2
没有这种文件类型的预览
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
没有这种文件类型的预览
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<svg height="4370" version="1.1" width="6997" xmlns="http://www.w3.org/2000/svg"> <svg height="4433" version="1.1" width="6364" xmlns="http://www.w3.org/2000/svg">
<polygon fill="#ffff80" points="76 3320, 76 3295, 201 3295, 226 3320, 201 3345, 76 3345, 76 3320" stroke="#800000" stroke-width="1"/> <polygon fill="#ffff80" points="76 3320, 76 3295, 201 3295, 226 3320, 201 3345, 76 3345, 76 3320" stroke="#800000" stroke-width="1"/>
...@@ -679,7 +679,7 @@ ...@@ -679,7 +679,7 @@
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="3736" y="2960">PC_ADD</text> <text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="3736" y="2960">PC_ADD</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5606" y="3390">UPC_RESET_EN</text> <text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5526" y="3390">UPC_RESET_EN</text>
<polygon fill="#ffff80" points="76 3250, 76 3225, 201 3225, 226 3250, 201 3275, 76 3275, 76 3250" stroke="#800000" stroke-width="1"/> <polygon fill="#ffff80" points="76 3250, 76 3225, 201 3225, 226 3250, 201 3275, 76 3275, 76 3250" stroke="#800000" stroke-width="1"/>
...@@ -971,13 +971,13 @@ ...@@ -971,13 +971,13 @@
<text alignment-baseline="central" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="4506" y="2910">MIO</text> <text alignment-baseline="central" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="4506" y="2910">MIO</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5606" y="3420">IR_LOAD</text> <text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5526" y="3420">IR_LOAD</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1236" y="1680">IR_LOAD</text> <text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1236" y="1680">IR_LOAD</text>
<polygon fill="#ffff80" points="6486 2950, 6486 2925, 6711 2925, 6736 2950, 6711 2975, 6486 2975, 6486 2950" stroke="#800000" stroke-width="1"/> <polygon fill="#ffff80" points="5786 3010, 5786 2985, 6011 2985, 6036 3010, 6011 3035, 5786 3035, 5786 3010" stroke="#800000" stroke-width="1"/>
<text alignment-baseline="central" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="6486" y="2950">HLDA</text> <text alignment-baseline="central" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5786" y="3010">HLDA</text>
<polygon fill="#ffff80" points="4506 1400, 4506 1375, 4731 1375, 4756 1400, 4731 1425, 4506 1425, 4506 1400" stroke="#800000" stroke-width="1"/> <polygon fill="#ffff80" points="4506 1400, 4506 1375, 4731 1375, 4756 1400, 4731 1425, 4506 1425, 4506 1400" stroke="#800000" stroke-width="1"/>
...@@ -1113,15 +1113,9 @@ ...@@ -1113,15 +1113,9 @@
<polyline fill="none" points="3656 2900, 4466 2900, 4466 2850, 4506 2850" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <polyline fill="none" points="3656 2900, 4466 2900, 4466 2850, 4506 2850" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5526 2190, 5776 2190" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5576" y="2190">IR_EN</text> <text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5576" y="2190">IR_EN</text>
<polyline fill="none" points="5526 3390, 5746 3390" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5526" y="3450">CHECK_IRQ</text>
<polyline fill="none" points="5526 3450, 5746 3450" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5606" y="3450">CHECK_IRQ</text>
<polygon fill="#ffff80" points="76 3860, 76 3835, 201 3835, 226 3860, 201 3885, 76 3885, 76 3860" stroke="#800000" stroke-width="1"/> <polygon fill="#ffff80" points="76 3860, 76 3835, 201 3835, 226 3860, 201 3885, 76 3885, 76 3860" stroke="#800000" stroke-width="1"/>
...@@ -1153,7 +1147,7 @@ ...@@ -1153,7 +1147,7 @@
<text alignment-baseline="central" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5776" y="3480">INTA</text> <text alignment-baseline="central" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5776" y="3480">INTA</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5606" y="3480">INTA</text> <text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5526" y="3480">INTA</text>
<polygon fill="#ffff80" points="5776 3510, 5776 3495, 5961 3495, 5976 3510, 5961 3525, 5776 3525, 5776 3510" stroke="#800000" stroke-width="1"/> <polygon fill="#ffff80" points="5776 3510, 5776 3495, 5961 3495, 5976 3510, 5961 3525, 5776 3525, 5776 3510" stroke="#800000" stroke-width="1"/>
...@@ -1163,24 +1157,12 @@ ...@@ -1163,24 +1157,12 @@
<text alignment-baseline="central" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5776" y="3540">STI</text> <text alignment-baseline="central" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5776" y="3540">STI</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5606" y="3510">CLI</text> <text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5526" y="3510">CLI</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5606" y="3540">STI</text> <text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5526" y="3540">STI</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="1256" y="1760">取指令</text> <text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="1256" y="1760">取指令</text>
<polyline fill="none" points="5276 2160, 5076 2160, 4346 2160, 4346 2660, 3656 2660" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="5076" x2="5076" y1="1860" y2="1910"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="5076 1860, 5126 1810, 5026 1810, 5076 1860" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Times New Roman" font-size="30" font-weight="700" text-anchor="start" x="5066" y="1850">1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="5066" y="1780">U12</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="4986" y="1810">CONSTANT1</text>
<polyline fill="none" points="3656 2940, 4476 2940, 4476 2910, 4506 2910" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <polyline fill="none" points="3656 2940, 4476 2940, 4476 2910, 4506 2910" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="5326" x2="5276" y1="3010" y2="3010"/> <line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="5326" x2="5276" y1="3010" y2="3010"/>
...@@ -1295,8 +1277,6 @@ ...@@ -1295,8 +1277,6 @@
<polyline fill="none" points="3656 2860, 4446 2860, 4446 2690, 5276 2690" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <polyline fill="none" points="3656 2860, 4446 2860, 4446 2690, 5276 2690" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5276 2100, 5076 2100, 5076 1910" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3656 2840, 4426 2840, 4426 2630, 4926 2630, 4926 3010, 5276 3010" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <polyline fill="none" points="3656 2840, 4426 2840, 4426 2630, 4926 2630, 4926 3010, 5276 3010" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="5136" x2="5076" y1="2630" y2="2630"/> <line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="5136" x2="5076" y1="2630" y2="2630"/>
...@@ -1533,20 +1513,18 @@ ...@@ -1533,20 +1513,18 @@
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="986" y="3910">INT_RESPOND</text> <text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="986" y="3910">INT_RESPOND</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1376" x2="1376" y1="230" y2="280"/> <line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1076" x2="1076" y1="240" y2="290"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="1376 230, 1426 180, 1326 180, 1376 230" stroke="#000000" stroke-width="5"/> <polygon fill="#ffffff" fill-opacity="0.5" points="1076 240, 1126 190, 1026 190, 1076 240" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Times New Roman" font-size="30" font-weight="700" text-anchor="start" x="1366" y="220">1</text> <text alignment-baseline="after-edge" fill="#000000" font-family="Times New Roman" font-size="30" font-weight="700" text-anchor="start" x="1066" y="230">1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1366" y="150">U14</text> <text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1066" y="160">U14</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1286" y="180">CONSTANT1</text> <text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="986" y="190">CONSTANT1</text>
<polyline fill="none" points="1626 170, 1576 170, 1576 290, 1626 290" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <polyline fill="none" points="1626 170, 1576 170, 1576 290, 1626 290" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1576 290, 1376 290, 1376 280" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1626 560, 1526 560, 1526 980" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <polyline fill="none" points="1626 560, 1526 560, 1526 980" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1626 590, 1506 590, 1506 1010" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <polyline fill="none" points="1626 590, 1506 590, 1506 1010" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
...@@ -2517,9 +2495,7 @@ ...@@ -2517,9 +2495,7 @@
<text alignment-baseline="central" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="76" y="4240">HOLD</text> <text alignment-baseline="central" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="76" y="4240">HOLD</text>
<polyline fill="none" points="5526 3570, 5746 3570" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5526" y="3570">CHECK_HOLD</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="5606" y="3570">CHECK_HOLD</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="336" x2="276" y1="4240" y2="4240"/> <line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="336" x2="276" y1="4240" y2="4240"/>
...@@ -2537,7 +2513,7 @@ ...@@ -2537,7 +2513,7 @@
<polyline fill="none" points="476 4240, 636 4240" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <polyline fill="none" points="476 4240, 636 4240" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="636 4290, 486 4290" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <polyline fill="none" points="636 4290, 486 4290, 486 4410, 5686 4410, 5686 3570, 5526 3570" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="486" y="4290">CHECK_HOLD</text> <text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="486" y="4290">CHECK_HOLD</text>
...@@ -2547,7 +2523,7 @@ ...@@ -2547,7 +2523,7 @@
<polyline fill="none" points="636 3880, 536 3880" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <polyline fill="none" points="636 3880, 536 3880" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="636 3940, 486 3940" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <polyline fill="none" points="636 3940, 486 3940, 486 4060, 5736 4060, 5736 3450, 5526 3450" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="286 3860, 226 3860" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <polyline fill="none" points="286 3860, 226 3860" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
...@@ -2585,23 +2561,19 @@ ...@@ -2585,23 +2561,19 @@
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="16" y="4160">总线保持请求信号,高电平有效</text> <text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="16" y="4160">总线保持请求信号,高电平有效</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="6476" y="2900">总线保持响应信号,高电平有效</text> <text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="5746" y="3100">总线保持响应信号,高电平有效</text>
<polyline fill="none" points="5526 2950, 6186 2950" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/> <line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="5646" x2="5586" y1="3010" y2="3010"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="6246" x2="6186" y1="2950" y2="2950"/> <line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="5726" x2="5786" y1="3010" y2="3010"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="6326" x2="6386" y1="2950" y2="2950"/> <circle cx="5722" cy="3010" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="6322" cy="2950" fill="none" r="5" stroke="#000000" stroke-width="5"/> <polygon fill="#ffffff" fill-opacity="0.5" points="5646 2960, 5646 3060, 5716 3010, 5646 2960" stroke="#000000" stroke-width="5"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="6246 2900, 6246 3000, 6316 2950, 6246 2900" stroke="#000000" stroke-width="5"/> <text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="5666" y="2974">U8</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="6266" y="2914">U8</text> <text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="5646" y="3106">NOT</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="6246" y="3046">NOT</text>
<polyline fill="none" points="6386 2950, 6486 2950" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1356" x2="1296" y1="3120" y2="3120"/> <line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1356" x2="1296" y1="3120" y2="3120"/>
...@@ -2625,6 +2597,30 @@ ...@@ -2625,6 +2597,30 @@
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1366" y="3250">NAND3</text> <text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1366" y="3250">NAND3</text>
<polyline fill="none" points="1576 290, 1076 290" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="5046" x2="4986" y1="2100" y2="2100"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="5126" x2="5186" y1="2100" y2="2100"/>
<circle cx="5122" cy="2100" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="5046 2050, 5046 2150, 5116 2100, 5046 2050" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="5066" y="2064">U9</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="5046" y="2196">NOT</text>
<polyline fill="none" points="5276 2100, 5186 2100" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3656 2660, 4346 2660, 4346 2100, 4986 2100" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5526 2950, 5586 2950, 5586 3010" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5526 3390, 5686 3390" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5526 2190, 5686 2190" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<circle cx="1576" cy="3780" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/> <circle cx="1576" cy="3780" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="2166" cy="320" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/> <circle cx="2166" cy="320" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
...@@ -2659,8 +2655,6 @@ ...@@ -2659,8 +2655,6 @@
<circle cx="1526" cy="980" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/> <circle cx="1526" cy="980" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1576" cy="290" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1576" cy="3700" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/> <circle cx="1576" cy="3700" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="4926" cy="2630" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/> <circle cx="4926" cy="2630" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
...@@ -2747,4 +2741,6 @@ ...@@ -2747,4 +2741,6 @@
<circle cx="1236" cy="3910" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/> <circle cx="1236" cy="3910" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1576" cy="290" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
</svg> </svg>
没有这种文件类型的预览
...@@ -883,267 +883,271 @@ ...@@ -883,267 +883,271 @@
0883 0883
0884 0884
0885 ;==================================================================================================== 0885 ;====================================================================================================
0886 ; 硬中断返回指令,执行出栈操作 0886 ; 中断返回指令,执行出栈操作,后进先出
0887 ;93. iret 0887 ;93. iret
0888 ; 先恢复标志寄存器内容,即标志寄存器FLAG出栈 0888 BA0 FD FF FF FF inc pc
0889 BA0 FD FF FF FF inc pc 0889 BA4 FF 47 EF FF path [pc], ir
0890 BA4 FF 47 EF FF path [pc], ir 0890
0891 BA8 BF C1 E1 FF path sp, a 0891 ; 恢复中断返回地址,即中断返回地址出栈
0892 BAC FF D1 E5 D0 path alu_inc, mar 0892 BA8 BF C1 E5 FF path sp, mar
0893 BB0 FF 87 EB FF path [mar], flag 0893 BAC FF 86 FF FF path [mar], pc
0894 0894
0895 ; 恢复中断返回地址,即中断返回地址出栈 0895 ; 出栈后栈顶指针寄存器sp加1,指向先于返回地址入栈的对象
0896 BB4 BF C1 E5 FF path sp, mar 0896 BB0 BF C1 E1 FF path sp, a
0897 BB8 FF 86 FF FF path [mar], pc 0897 BB4 FF D1 E9 D0 path alu_inc, sp
0898 0898
0899 ; 更新栈顶 0899 ; 恢复标志寄存器内容,即标志寄存器FLAG出栈
0900 BBC BF C1 E1 FF path sp, a 0900 BB8 BF C1 E5 FF path sp, mar
0901 BC0 FF D1 E1 D0 path alu_inc, a 0901 BBC FF 87 EB FF path [mar], flag
0902 BC4 FF D1 E9 D0 path alu_inc, sp 0902
0903 BC8 C3 FF FF FF reset upc 0903 ; 出栈后栈顶指针寄存器sp加1,指向先于标志寄存器入栈的对象
0904 0904 BC0 BF C1 E1 FF path sp, a
0905 BCC FF FF FF FF dup 5, null 0905 BC4 FF D1 E9 D0 path alu_inc, sp
0906 0906 BC8 CB FF FF FF check irq
0907 0907 BCC C3 FF FF FF reset upc
0908 ;==================================================================================================== 0908
0909 0909 BD0 FF FF FF FF dup 4, null
0910 ;95. sal rd, rs 算术左移指令 0910
0911 BE0 FD FF FF FF inc pc 0911
0912 BE4 FF 47 EF FF path [pc], ir 0912 ;====================================================================================================
0913 BE8 FF C1 E3 FF path rs, w 0913
0914 BEC BF C1 E1 FF path rd, a 0914 ;95. sal rd, rs 算术左移指令
0915 BF0 FF C9 E8 7F path alu_sal, rd 0915 BE0 FD FF FF FF inc pc
0916 BF4 FF D3 EB FF path shift_flag, flag 0916 BE4 FF 47 EF FF path [pc], ir
0917 BF8 FD FF FF FF inc pc 0917 BE8 FF C1 E3 FF path rs, w
0918 BFC CB FF FF FF check irq 0918 BEC BF C1 E1 FF path rd, a
0919 C00 C3 FF FF FF reset upc 0919 BF0 FF C9 E8 7F path alu_sal, rd
0920 0920 BF4 FF D3 EB FF path shift_flag, flag
0921 C04 FF FF FF FF dup 7, null 0921 BF8 FD FF FF FF inc pc
0922 0922 BFC CB FF FF FF check irq
0923 0923 C00 C3 FF FF FF reset upc
0924 ;=========================================================================== 0924
0925 ;97. sar rd, rs 算术右移指令 0925 C04 FF FF FF FF dup 7, null
0926 C20 FD FF FF FF inc pc 0926
0927 C24 FF 47 EF FF path [pc], ir 0927
0928 C28 FF C1 E3 FF path rs, w 0928 ;===========================================================================
0929 C2C BF C1 E1 FF path rd, a 0929 ;97. sar rd, rs 算术右移指令
0930 C30 FF C9 E9 7F path alu_sar, rd 0930 C20 FD FF FF FF inc pc
0931 C34 FF D3 EB FF path shift_flag, flag 0931 C24 FF 47 EF FF path [pc], ir
0932 C38 FD FF FF FF inc pc 0932 C28 FF C1 E3 FF path rs, w
0933 C3C CB FF FF FF check irq 0933 C2C BF C1 E1 FF path rd, a
0934 C40 C3 FF FF FF reset upc 0934 C30 FF C9 E9 7F path alu_sar, rd
0935 0935 C34 FF D3 EB FF path shift_flag, flag
0936 C44 FF FF FF FF dup 7, null 0936 C38 FD FF FF FF inc pc
0937 0937 C3C CB FF FF FF check irq
0938 0938 C40 C3 FF FF FF reset upc
0939 ;=========================================================================== 0939
0940 ;99. shl rd, rs 逻辑左移指令 0940 C44 FF FF FF FF dup 7, null
0941 C60 FD FF FF FF inc pc 0941
0942 C64 FF 47 EF FF path [pc], ir 0942
0943 C68 FF C1 E3 FF path rs, w 0943 ;===========================================================================
0944 C6C BF C1 E1 FF path rd, a 0944 ;99. shl rd, rs 逻辑左移指令
0945 C70 FF C9 E8 3F path alu_shl, rd 0945 C60 FD FF FF FF inc pc
0946 C74 FF D3 EB FF path shift_flag, flag 0946 C64 FF 47 EF FF path [pc], ir
0947 C78 FD FF FF FF inc pc 0947 C68 FF C1 E3 FF path rs, w
0948 C7C CB FF FF FF check irq 0948 C6C BF C1 E1 FF path rd, a
0949 C80 C3 FF FF FF reset upc 0949 C70 FF C9 E8 3F path alu_shl, rd
0950 0950 C74 FF D3 EB FF path shift_flag, flag
0951 C84 FF FF FF FF dup 7, null 0951 C78 FD FF FF FF inc pc
0952 0952 C7C CB FF FF FF check irq
0953 0953 C80 C3 FF FF FF reset upc
0954 ;=========================================================================== 0954
0955 ;101. shr rd, rs 逻辑右移指令 0955 C84 FF FF FF FF dup 7, null
0956 CA0 FD FF FF FF inc pc 0956
0957 CA4 FF 47 EF FF path [pc], ir 0957
0958 CA8 FF C1 E3 FF path rs, w 0958 ;===========================================================================
0959 CAC BF C1 E1 FF path rd, a 0959 ;101. shr rd, rs 逻辑右移指令
0960 CB0 FF C9 E9 3F path alu_shr, rd 0960 CA0 FD FF FF FF inc pc
0961 CB4 FF D3 EB FF path shift_flag, flag 0961 CA4 FF 47 EF FF path [pc], ir
0962 CB8 FD FF FF FF inc pc 0962 CA8 FF C1 E3 FF path rs, w
0963 CBC CB FF FF FF check irq 0963 CAC BF C1 E1 FF path rd, a
0964 CC0 C3 FF FF FF reset upc 0964 CB0 FF C9 E9 3F path alu_shr, rd
0965 0965 CB4 FF D3 EB FF path shift_flag, flag
0966 CC4 FF FF FF FF dup 7, null 0966 CB8 FD FF FF FF inc pc
0967 0967 CBC CB FF FF FF check irq
0968 0968 CC0 C3 FF FF FF reset upc
0969 ;=========================================================================== 0969
0970 ;103. rol rd, rs 不带进位的循环左移指令 0970 CC4 FF FF FF FF dup 7, null
0971 CE0 FD FF FF FF inc pc 0971
0972 CE4 FF 47 EF FF path [pc], ir 0972
0973 CE8 FF C1 E3 FF path rs, w 0973 ;===========================================================================
0974 CEC BF C1 E1 FF path rd, a 0974 ;103. rol rd, rs 不带进位的循环左移指令
0975 CF0 FF C9 E8 BF path alu_rol, rd 0975 CE0 FD FF FF FF inc pc
0976 CF4 FF D3 EB FF path shift_flag, flag 0976 CE4 FF 47 EF FF path [pc], ir
0977 CF8 FD FF FF FF inc pc 0977 CE8 FF C1 E3 FF path rs, w
0978 CFC CB FF FF FF check irq 0978 CEC BF C1 E1 FF path rd, a
0979 D00 C3 FF FF FF reset upc 0979 CF0 FF C9 E8 BF path alu_rol, rd
0980 0980 CF4 FF D3 EB FF path shift_flag, flag
0981 D04 FF FF FF FF dup 7, null 0981 CF8 FD FF FF FF inc pc
0982 0982 CFC CB FF FF FF check irq
0983 0983 D00 C3 FF FF FF reset upc
0984 ;=========================================================================== 0984
0985 ;105. ror rd, rs 不带进位的循环右移指令 0985 D04 FF FF FF FF dup 7, null
0986 D20 FD FF FF FF inc pc 0986
0987 D24 FF 47 EF FF path [pc], ir 0987
0988 D28 FF C1 E3 FF path rs, w 0988 ;===========================================================================
0989 D2C BF C1 E1 FF path rd, a 0989 ;105. ror rd, rs 不带进位的循环右移指令
0990 D30 FF C9 E9 BF path alu_ror, rd 0990 D20 FD FF FF FF inc pc
0991 D34 FF D3 EB FF path shift_flag, flag 0991 D24 FF 47 EF FF path [pc], ir
0992 D38 FD FF FF FF inc pc 0992 D28 FF C1 E3 FF path rs, w
0993 D3C CB FF FF FF check irq 0993 D2C BF C1 E1 FF path rd, a
0994 D40 C3 FF FF FF reset upc 0994 D30 FF C9 E9 BF path alu_ror, rd
0995 0995 D34 FF D3 EB FF path shift_flag, flag
0996 D44 FF FF FF FF dup 7, null 0996 D38 FD FF FF FF inc pc
0997 0997 D3C CB FF FF FF check irq
0998 0998 D40 C3 FF FF FF reset upc
0999 ;=========================================================================== 0999
1000 ;107. rcl rd, rs 带进位的循环左移指令 1000 D44 FF FF FF FF dup 7, null
1001 D60 FD FF FF FF inc pc 1001
1002 D64 FF 47 EF FF path [pc], ir 1002
1003 D68 FF C1 E3 FF path rs, w 1003 ;===========================================================================
1004 D6C BF C1 E1 FF path rd, a 1004 ;107. rcl rd, rs 带进位的循环左移指令
1005 D70 FF C9 E8 FF path alu_rcl, rd 1005 D60 FD FF FF FF inc pc
1006 D74 FF D3 EB FF path shift_flag, flag 1006 D64 FF 47 EF FF path [pc], ir
1007 D78 FD FF FF FF inc pc 1007 D68 FF C1 E3 FF path rs, w
1008 D7C CB FF FF FF check irq 1008 D6C BF C1 E1 FF path rd, a
1009 D80 C3 FF FF FF reset upc 1009 D70 FF C9 E8 FF path alu_rcl, rd
1010 1010 D74 FF D3 EB FF path shift_flag, flag
1011 D84 FF FF FF FF dup 7, null 1011 D78 FD FF FF FF inc pc
1012 1012 D7C CB FF FF FF check irq
1013 1013 D80 C3 FF FF FF reset upc
1014 ;=========================================================================== 1014
1015 ;109. rcr rd, rs 带进位的循环右移指令 1015 D84 FF FF FF FF dup 7, null
1016 DA0 FD FF FF FF inc pc 1016
1017 DA4 FF 47 EF FF path [pc], ir 1017
1018 DA8 FF C1 E3 FF path rs, w 1018 ;===========================================================================
1019 DAC BF C1 E1 FF path rd, a 1019 ;109. rcr rd, rs 带进位的循环右移指令
1020 DB0 FF C9 E9 FF path alu_rcr, rd 1020 DA0 FD FF FF FF inc pc
1021 DB4 FF D3 EB FF path shift_flag, flag 1021 DA4 FF 47 EF FF path [pc], ir
1022 DB8 FD FF FF FF inc pc 1022 DA8 FF C1 E3 FF path rs, w
1023 DBC CB FF FF FF check irq 1023 DAC BF C1 E1 FF path rd, a
1024 DC0 C3 FF FF FF reset upc 1024 DB0 FF C9 E9 FF path alu_rcr, rd
1025 1025 DB4 FF D3 EB FF path shift_flag, flag
1026 DC4 FF FF FF FF dup 7, null 1026 DB8 FD FF FF FF inc pc
1027 1027 DBC CB FF FF FF check irq
1028 ;=========================================================================== 1028 DC0 C3 FF FF FF reset upc
1029 ;111. nop 空指令 1029
1030 DE0 FD FF FF FF inc pc 1030 DC4 FF FF FF FF dup 7, null
1031 DE4 C3 FF FF FF reset upc 1031
1032 1032 ;===========================================================================
1033 DE8 FF FF FF FF dup 6, null 1033 ;111. nop 空指令
1034 1034 DE0 FD FF FF FF inc pc
1035 ;=========================================================================== 1035 DE4 C3 FF FF FF reset upc
1036 ;112. hlt 停机 1036
1037 E00 C3 FF FF FF reset upc 1037 DE8 FF FF FF FF dup 6, null
1038 E04 FF FF FF FF dup 7, null 1038
1039 1039 ;===========================================================================
1040 1040 ;112. hlt 停机
1041 ;=========================================================================== 1041 E00 C3 FF FF FF reset upc
1042 ;113. call symbol 1042 E04 FF FF FF FF dup 7, null
1043 ; 更新栈顶 1043
1044 E20 BF C1 E1 FF path sp, a 1044
1045 E24 BF C1 E3 FF path sp, w 1045 ;===========================================================================
1046 E28 FF D1 E9 DF path alu_dec, sp ; sp = sp - 1 1046 ;113. call symbol
1047 E2C BF C1 E5 FF path sp, mar ; 将sp转移到mar中,为返回地址入栈做准备 1047 ; 更新栈顶
1048 1048 E20 BF C1 E1 FF path sp, a
1049 ; 读出标号指定的跳转地址并暂存到寄存器a中 1049 E24 BF C1 E3 FF path sp, w
1050 E30 FD FF FF FF inc pc 1050 E28 FF D1 E9 DF path alu_dec, sp ; sp = sp - 1
1051 E34 FF 47 E1 FF path [pc], a 1051 E2C BF C1 E5 FF path sp, mar ; 将sp转移到mar中,为返回地址入栈做准备
1052 1052
1053 ; 将下一条指令地址(中断返回地址)入栈 1053 ; 读出标号指定的跳转地址并暂存到寄存器a中
1054 E38 FD FF FF FF inc pc 1054 E30 FD FF FF FF inc pc
1055 E3C FF 85 E7 FF path pc, [mar] 1055 E34 FF 47 E1 FF path [pc], a
1056 1056
1057 ; 将a中暂存的跳转地址置入pc,实现子程序调用 1057 ; 将下一条指令地址(中断返回地址)入栈
1058 E40 FF D0 FF FF path a, pc 1058 E38 FD FF FF FF inc pc
1059 E44 CB FF FF FF check irq 1059 E3C FF 85 E7 FF path pc, [mar]
1060 E48 C3 FF FF FF reset upc 1060
1061 1061 ; 将a中暂存的跳转地址置入pc,实现子程序调用
1062 E4C FF FF FF FF dup 5, null 1062 E40 FF D0 FF FF path a, pc
1063 1063 E44 CB FF FF FF check irq
1064 ;=========================================================================== 1064 E48 C3 FF FF FF reset upc
1065 ;115. ret 子程序调用返回指令 1065
1066 E60 BF C1 E5 FF path sp, mar 1066 E4C FF FF FF FF dup 5, null
1067 E64 FF 86 FF FF path [mar], pc ; 首先读出栈指针sp指向存储单元的内容,即返回地址, 1067
1068 ; 将其加载到PC中,实现调用返回 1068 ;===========================================================================
1069 1069 ;115. ret 子程序调用返回指令
1070 E68 BF C1 E1 FF path sp, a 1070 E60 BF C1 E5 FF path sp, mar
1071 E6C FF D1 E9 D0 path alu_inc, sp ; 然后将sp加1,sp指向新的栈顶,即出栈 1071 E64 FF 86 FF FF path [mar], pc ; 首先读出栈指针sp指向存储单元的内容,即返回地址,
1072 ; 出栈时,栈顶向高地址空间生长 1072 ; 将其加载到PC中,实现调用返回
1073 E70 C3 FF FF FF reset upc 1073
1074 1074 E68 BF C1 E1 FF path sp, a
1075 E74 FF FF FF FF dup 3, null 1075 E6C FF D1 E9 D0 path alu_inc, sp ; 然后将sp加1,sp指向新的栈顶,即出栈
1076 1076 ; 出栈时,栈顶向高地址空间生长
1077 1077 E70 C3 FF FF FF reset upc
1078 ;=========================================================================== 1078
1079 ;116. cli 关中断指令 1079 E74 FF FF FF FF dup 3, null
1080 E80 D3 FF FF FF cli ; 清零中断标志允许位IF=0,禁止硬中断请求 1080
1081 E84 FD FF FF FF inc pc 1081
1082 E88 C3 FF FF FF reset upc 1082 ;===========================================================================
1083 1083 ;116. cli 关中断指令
1084 E8C FF FF FF FF dup 5, null 1084 E80 D3 FF FF FF cli ; 清零中断标志允许位IF=0,禁止硬中断请求
1085 1085 E84 FD FF FF FF inc pc
1086 ;=========================================================================== 1086 E88 C3 FF FF FF reset upc
1087 ;117. sti 开中断指令 1087
1088 EA0 D7 FF FF FF sti ; 设置中断允许标志位IF=1,允许硬中断请求 1088 E8C FF FF FF FF dup 5, null
1089 EA4 FD FF FF FF inc pc 1089
1090 EA8 C3 FF FF FF reset upc 1090 ;===========================================================================
1091 1091 ;117. sti 开中断指令
1092 EAC FF FF FF FF dup 5, null 1092 EA0 D7 FF FF FF sti ; 设置中断允许标志位IF=1,允许硬中断请求
1093 1093 EA4 FD FF FF FF inc pc
1094 1094 EA8 C3 FF FF FF reset upc
1095 ;=========================================================================== 1095
1096 ;118. 硬中断处理微指令程序 1096 EAC FF FF FF FF dup 5, null
1097 ; 标志寄存器和断点地址入栈 1097
1098 EC0 BF C1 E1 FF path sp, a 1098
1099 EC4 BF C1 E3 FF path sp, w 1099 ;===========================================================================
1100 EC8 FF D1 E9 DF path alu_dec, sp ; sp减1,指向新的栈顶,为标志寄存器入栈做准备 1100 ;118. 硬中断处理微指令程序
1101 ECC BF C1 E5 FF path sp, mar 1101 ; 标志寄存器和断点地址入栈
1102 ED0 FF 83 E7 FF path flag, [mar] ; 将标志寄存器入栈,入栈时,栈向低地址空间生长 1102 EC0 BF C1 E1 FF path sp, a
1103 ED4 BF C1 E1 FF path sp, a 1103 EC4 BF C1 E3 FF path sp, w
1104 ED8 FF D1 E9 DF path alu_dec, sp ; sp减1,为返回地址入栈做准备 1104 EC8 FF D1 E9 DF path alu_dec, sp ; sp减1,指向新的栈顶,为标志寄存器入栈做准备
1105 EDC BF C1 E5 FF path sp, mar 1105 ECC BF C1 E5 FF path sp, mar
1106 EE0 FF 85 E7 FF path pc, [mar] ; 当前PC指向下一条指令,正是返回地址,将其入栈 1106 ED0 FF 83 E7 FF path flag, [mar] ; 将标志寄存器入栈,入栈时,栈向低地址空间生长
1107 1107 ED4 BF C1 E1 FF path sp, a
1108 1108 ED8 FF D1 E9 DF path alu_dec, sp ; sp减1,为返回地址入栈做准备
1109 ; 从8259读取中断号,依据中断号得到对应中断向量 1109 EDC BF C1 E5 FF path sp, mar
1110 EE4 CF FF FF FF inta ; cpu 发出第一个中断应答信号INTA 1110 EE0 FF 85 E7 FF path pc, [mar] ; 当前PC指向下一条指令,正是返回地址,将其入栈
1111 EE8 FF FF FF FF dup 1, null ; 插入空闲周期,其目的是分开前后两次发出的中断应答信号,便于8259进行识别 1111
1112 ; 使得INTA信号的变化情况为 低电平--高电平--低电平,其中低电平表示应答信号有效 1112
1113 EEC CE C7 E5 FF path inta, mar ; cpu发出第二个中断应答信号INTA,读取中断向量并送入地址寄存器中 1113 ; 从8259读取中断号,依据中断号得到对应中断向量
1114 1114 EE4 CF FF FF FF inta ; cpu 发出第一个中断应答信号INTA
1115 1115 EE8 FF FF FF FF dup 1, null ; 插入空闲周期,其目的是分开前后两次发出的中断应答信号,便于8259进行识别
1116 ; 转移到中断服务程序执行 1116 ; 使得INTA信号的变化情况为 低电平--高电平--低电平,其中低电平表示应答信号有效
1117 EF0 FF 86 FF FF path [mar], pc ; 将mar中的中断向量指向存储单元的内容传送到PC中, 1117 EEC CE C7 E5 FF path inta, mar ; cpu发出第二个中断应答信号INTA,读取中断向量并送入地址寄存器中
1118 ; 中断向量指向的存储单元实际存储的就是该中断服务程序的入口地址(首条指令地址) 1118
1119 ; 于是,PC转去执行中断服务程序 1119
1120 EF4 C3 FF FF FF reset upc 1120 ; 转移到中断服务程序执行
1121 1121 EF0 FF 86 FF FF path [mar], pc ; 将mar中的中断向量指向存储单元的内容传送到PC中,
1122 EF8 FF FF FF FF dup 2, null 1122 ; 中断向量指向的存储单元实际存储的就是该中断服务程序的入口地址(首条指令地址)
1123 1123 ; 于是,PC转去执行中断服务程序
1124 1124 EF4 C3 FF FF FF reset upc
1125 ;=========================================================================== 1125
1126 ;120. inc rd 自增 1126 EF8 FF FF FF FF dup 2, null
1127 F00 FD FF FF FF inc pc 1127
1128 F04 FF 47 EF FF path [pc], ir 1128
1129 F08 BF C1 E1 FF path rd, a 1129 ;===========================================================================
1130 F0C FF D1 E9 D0 path alu_inc, rd ; 将累加器a加1的结果写入目的寄存器rd中 1130 ;120. inc rd 自增
1131 F10 FF CB EB FF path al_flag, flag 1131 F00 FD FF FF FF inc pc
1132 F14 FD FF FF FF inc pc 1132 F04 FF 47 EF FF path [pc], ir
1133 F18 CB FF FF FF check irq 1133 F08 BF C1 E1 FF path rd, a
1134 F1C C3 FF FF FF reset upc 1134 F0C FF D1 E9 D0 path alu_inc, rd ; 将累加器a加1的结果写入目的寄存器rd中
1135 1135 F10 FF CB EB FF path al_flag, flag
1136 1136 F14 FD FF FF FF inc pc
1137 ;=========================================================================== 1137 F18 CB FF FF FF check irq
1138 ;121. dec rd 自减 1138 F1C C3 FF FF FF reset upc
1139 F20 FD FF FF FF inc pc 1139
1140 F24 FF 47 EF FF path [pc], ir 1140
1141 F28 BF C1 E1 FF path rd, a 1141 ;===========================================================================
1142 F2C BF C1 E3 FF path rd, w 1142 ;121. dec rd 自减
1143 F30 FF D1 E9 DF path alu_dec, rd ; 将累加器a减1的结果写入目的寄存器rd中 1143 F20 FD FF FF FF inc pc
1144 F34 FF CB EB FF path al_flag, flag 1144 F24 FF 47 EF FF path [pc], ir
1145 F38 FD FF FF FF inc pc 1145 F28 BF C1 E1 FF path rd, a
1146 F3C CB FF FF FF check irq 1146 F2C BF C1 E3 FF path rd, w
1147 F40 C3 FF FF FF reset upc 1147 F30 FF D1 E9 DF path alu_dec, rd ; 将累加器a减1的结果写入目的寄存器rd中
1148 1148 F34 FF CB EB FF path al_flag, flag
1149 F44 FF FF FF FF dup 7, null 1149 F38 FD FF FF FF inc pc
\ No newline at end of file 1150 F3C CB FF FF FF check irq
1151 F40 C3 FF FF FF reset upc
1152
1153 F44 FF FF FF FF dup 7, null
\ No newline at end of file
...@@ -883,26 +883,30 @@ dup 6, null ...@@ -883,26 +883,30 @@ dup 6, null
;==================================================================================================== ;====================================================================================================
; 硬中断返回指令,执行出栈操作 ; 中断返回指令,执行出栈操作,后进先出
;93. iret ;93. iret
; 先恢复标志寄存器内容,即标志寄存器FLAG出栈
inc pc inc pc
path [pc], ir path [pc], ir
path sp, a
path alu_inc, mar
path [mar], flag
; 恢复中断返回地址,即中断返回地址出栈 ; 恢复中断返回地址,即中断返回地址出栈
path sp, mar path sp, mar
path [mar], pc path [mar], pc
; 更新栈顶 ; 出栈后栈顶指针寄存器sp加1,指向先于返回地址入栈的对象
path sp, a path sp, a
path alu_inc, a
path alu_inc, sp path alu_inc, sp
; 恢复标志寄存器内容,即标志寄存器FLAG出栈
path sp, mar
path [mar], flag
; 出栈后栈顶指针寄存器sp加1,指向先于标志寄存器入栈的对象
path sp, a
path alu_inc, sp
check irq
reset upc reset upc
dup 5, null dup 4, null
;==================================================================================================== ;====================================================================================================
......
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG߿GGGGGGGGGGGGGG?_GG߿GGGGG?G?GGGG߿G߿߿GG GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG߿GGGGGGGGGGGGGG?_GG߿GGпGGG?G?GGGG߿G߿߿GG
\ No newline at end of file \ No newline at end of file
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论