提交 90b223e4 创建 作者: 李川's avatar 李川 提交者: 李川

修改中断控制器原理图

上级 0dd78ffa
没有这种文件类型的预览
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
没有这种文件类型的预览
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
没有这种文件类型的预览
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<svg height="2993" version="1.1" width="5644" xmlns="http://www.w3.org/2000/svg">
<text alignment-baseline="after-edge" fill="#000000" font-family="微软雅黑" font-size="250" font-weight="700" text-anchor="start" x="2302" y="314">硬中断控制器</text>
<polyline fill="none" points="1372 1244, 1572 1244" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1372 1344, 1572 1344" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1372 1444, 1572 1444" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1372 1544, 1572 1544" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1372 1644, 1572 1644" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1372 1744, 1572 1744" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1372 1844, 1572 1844" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1372 1944, 1572 1944" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1572" x2="1622" y1="1244" y2="1194"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1572" x2="1622" y1="1344" y2="1294"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1572" x2="1622" y1="1444" y2="1394"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1572" x2="1622" y1="1544" y2="1494"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1572" x2="1622" y1="1644" y2="1594"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1572" x2="1622" y1="1744" y2="1694"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1572" x2="1622" y1="1844" y2="1794"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1572" x2="1622" y1="1944" y2="1894"/>
<polyline fill="none" points="1622 1194, 1622 1894" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polyline fill="none" points="2172 1344, 1622 1344" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polyline fill="none" points="2172 1244, 2072 1244, 2072 894, 4372 894, 4372 1544, 4172 1544" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<rect fill="#80ff80" height="900" stroke="#800000" stroke-width="1" width="700" x="3472" y="1144"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="微软雅黑" font-size="200" font-weight="700" text-anchor="start" x="3462" y="1134">ISR</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="3472" y="1124">ISR.dlsche</text>
<polygon fill="#ffff80" points="3472 1694, 3497 1669, 3547 1669, 3572 1694, 3547 1719, 3497 1719, 3472 1694" 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="3582" y="1694">INTA1</text>
<polygon fill="#ffff80" points="3472 1774, 3497 1749, 3547 1749, 3572 1774, 3547 1799, 3497 1799, 3472 1774" 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="3582" y="1774">EOI</text>
<polygon fill="#ffff80" points="3472 1244, 3497 1219, 3547 1219, 3572 1244, 3547 1269, 3497 1269, 3472 1244" 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="3582" y="1244">INTR</text>
<polygon fill="#ffff80" points="3472 1854, 3497 1829, 3547 1829, 3572 1854, 3547 1879, 3497 1879, 3472 1854" 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="3582" y="1854">RESET</text>
<polygon fill="#ffff80" points="3472 1344, 3497 1319, 3547 1319, 3572 1344, 3547 1369, 3497 1369, 3472 1344" 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="3582" y="1344">IRNM0</text>
<polygon fill="#ffff80" points="3472 1444, 3497 1419, 3547 1419, 3572 1444, 3547 1469, 3497 1469, 3472 1444" 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="3582" y="1444">IRNM1</text>
<polygon fill="#ffff80" points="3472 1544, 3497 1519, 3547 1519, 3572 1544, 3547 1569, 3497 1569, 3472 1544" 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="3582" y="1544">IRNM2</text>
<polygon fill="#ffff80" points="4172 1244, 4147 1219, 4097 1219, 4072 1244, 4097 1269, 4147 1269, 4172 1244" 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="3962" y="1244">T0</text>
<polygon fill="#ffff80" points="4172 1344, 4147 1319, 4097 1319, 4072 1344, 4097 1369, 4147 1369, 4172 1344" 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="3962" y="1344">T1</text>
<polygon fill="#ffff80" points="4172 1444, 4147 1419, 4097 1419, 4072 1444, 4097 1469, 4147 1469, 4172 1444" 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="3962" y="1444">T2</text>
<polygon fill="#ffff80" points="4172 1544, 4147 1519, 4097 1519, 4072 1544, 4097 1569, 4147 1569, 4172 1544" 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="3962" y="1544">ISR[7..0]</text>
<polygon fill="#ffff80" points="3472 1944, 3497 1919, 3547 1919, 3572 1944, 3547 1969, 3497 1969, 3472 1944" 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="3584" y="1944">CLK</text>
<rect fill="#80ff80" height="500" stroke="#800000" stroke-width="1" width="700" x="2172" y="1144"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="微软雅黑" font-size="200" font-weight="700" text-anchor="start" x="2152" y="1144">PR</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2172" y="1134">PR.dlsche</text>
<polygon fill="#ffff80" points="2172 1244, 2197 1219, 2247 1219, 2272 1244, 2247 1269, 2197 1269, 2172 1244" 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="2282" y="1244">ISR[7..0]</text>
<polygon fill="#ffff80" points="2172 1344, 2197 1319, 2247 1319, 2272 1344, 2247 1369, 2197 1369, 2172 1344" 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="2282" y="1344">IRR[7..0]</text>
<polygon fill="#ffff80" points="2872 1244, 2847 1219, 2797 1219, 2772 1244, 2797 1269, 2847 1269, 2872 1244" 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="2662" y="1244">INTR</text>
<polygon fill="#ffff80" points="2872 1344, 2847 1319, 2797 1319, 2772 1344, 2797 1369, 2847 1369, 2872 1344" 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="2662" y="1344">IRNM0</text>
<polygon fill="#ffff80" points="2872 1444, 2847 1419, 2797 1419, 2772 1444, 2797 1469, 2847 1469, 2872 1444" 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="2662" y="1444">IRNM1</text>
<polygon fill="#ffff80" points="2872 1544, 2847 1519, 2797 1519, 2772 1544, 2797 1569, 2847 1569, 2872 1544" 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="2662" y="1544">IRNM2</text>
<polyline fill="none" points="2872 1244, 3472 1244" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2872 1344, 3472 1344" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2872 1444, 3472 1444" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2872 1544, 3472 1544" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="4172 1244, 4472 1244, 4472 744, 472 744, 472 1244, 672 1244" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="672 1344, 422 1344, 422 694, 4522 694, 4522 1344, 4172 1344" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="4172 1444, 4572 1444, 4572 644, 372 644, 372 1444, 672 1444" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="672 1544, 172 1544" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="672 1644, 172 1644" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="672 1744, 172 1744" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="672 1844, 172 1844" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="672 1944, 172 1944" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="672 2044, 172 2044" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="672 2144, 172 2144" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="672 2244, 172 2244" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="22 1544, 22 1519, 147 1519, 172 1544, 147 1569, 22 1569, 22 1544" 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="22" y="1544">IRQ0</text>
<polygon fill="#ffff80" points="22 1644, 22 1619, 147 1619, 172 1644, 147 1669, 22 1669, 22 1644" 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="22" y="1644">IRQ1</text>
<polygon fill="#ffff80" points="22 1744, 22 1719, 147 1719, 172 1744, 147 1769, 22 1769, 22 1744" 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="22" y="1744">IRQ2</text>
<polygon fill="#ffff80" points="22 1844, 22 1819, 147 1819, 172 1844, 147 1869, 22 1869, 22 1844" 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="22" y="1844">IRQ3</text>
<polygon fill="#ffff80" points="22 1944, 22 1919, 147 1919, 172 1944, 147 1969, 22 1969, 22 1944" 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="22" y="1944">IRQ4</text>
<polygon fill="#ffff80" points="22 2044, 22 2019, 147 2019, 172 2044, 147 2069, 22 2069, 22 2044" 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="22" y="2044">IRQ5</text>
<polygon fill="#ffff80" points="22 2144, 22 2119, 147 2119, 172 2144, 147 2169, 22 2169, 22 2144" 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="22" y="2144">IRQ6</text>
<polygon fill="#ffff80" points="22 2244, 22 2219, 147 2219, 172 2244, 147 2269, 22 2269, 22 2244" 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="22" y="2244">IRQ7</text>
<polyline fill="none" points="672 2344, 172 2344" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="22 2444, 22 2419, 147 2419, 172 2444, 147 2469, 22 2469, 22 2444" 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="22" y="2444">INTA2</text>
<polyline fill="none" points="3472 1774, 3122 1774, 3122 2644, 172 2644" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="22 2644, 22 2619, 147 2619, 172 2644, 147 2669, 22 2669, 22 2644" 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="22" y="2644">EOI</text>
<polygon fill="#ffff80" points="22 2744, 22 2719, 147 2719, 172 2744, 147 2769, 22 2769, 22 2744" 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="22" y="2744">RESET</text>
<polyline fill="none" points="172 2744, 3172 2744, 3172 1854, 3472 1854" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="5472 544, 5472 519, 5597 519, 5622 544, 5597 569, 5472 569, 5472 544" 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="5472" y="544">INTR</text>
<polyline fill="none" points="4472 1244, 4672 1244, 4772 1244" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="4522 1344, 4672 1344, 4672 1274, 4772 1274" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="4572 1444, 4672 1444, 4702 1444, 4702 1304, 4772 1304" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4822" x2="4772" y1="1244" y2="1244"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="4855" y="1244">A0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4822" x2="4772" y1="1274" y2="1274"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="4855" y="1274">A1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4822" x2="4772" y1="1304" y2="1304"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="4855" y="1304">A2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4822" x2="4772" y1="1334" y2="1334"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="4855" y="1334">A3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4822" x2="4772" y1="1364" y2="1364"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="4855" y="1364">A4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4822" x2="4772" y1="1394" y2="1394"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="4855" y="1394">A5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4822" x2="4772" y1="1424" y2="1424"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="4855" y="1424">A6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4822" x2="4772" y1="1454" y2="1454"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="4855" y="1454">A7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4972" x2="5022" y1="1244" y2="1244"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="4939" y="1244">D0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4972" x2="5022" y1="1274" y2="1274"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="4939" y="1274">D1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4972" x2="5022" y1="1304" y2="1304"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="4939" y="1304">D2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4972" x2="5022" y1="1334" y2="1334"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="4939" y="1334">D3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4972" x2="5022" y1="1364" y2="1364"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="4939" y="1364">D4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4972" x2="5022" y1="1394" y2="1394"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="4939" y="1394">D5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4972" x2="5022" y1="1424" y2="1424"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="4939" y="1424">D6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4972" x2="5022" y1="1454" y2="1454"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="4939" y="1454">D7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="4812" x2="4772" y1="1514" y2="1514"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="4866" y="1513">^EN</text>
<rect fill="#a0c0ff" fill-opacity="0.5" height="350" stroke="#000000" stroke-width="5" width="150" x="4822" y="1204"/>
<circle cx="4817" cy="1514" fill="none" r="5" 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="4882" y="1204">1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="4822" y="1604">BUS_TRANS8</text>
<polyline fill="none" points="3072 1244, 3072 544, 5472 544" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5022 1244, 5222 1244" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5022 1274, 5222 1274" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5022 1304, 5222 1304" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5022 1334, 5222 1334" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5022 1364, 5222 1364" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5022 1394, 5222 1394" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5022 1424, 5222 1424" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5022 1454, 5222 1454" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="5222" x2="5272" y1="1244" y2="1194"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="5222" x2="5272" y1="1274" y2="1224"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="5222" x2="5272" y1="1304" y2="1254"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="5222" x2="5272" y1="1334" y2="1284"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="5222" x2="5272" y1="1364" y2="1314"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="5222" x2="5272" y1="1394" y2="1344"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="5222" x2="5272" y1="1424" y2="1374"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="5222" x2="5272" y1="1454" y2="1404"/>
<polyline fill="none" points="5272 1404, 5272 1194, 5472 1194" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polygon fill="#ffff80" points="5472 1194, 5472 1169, 5597 1169, 5622 1194, 5597 1219, 5472 1219, 5472 1194" 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="5472" y="1194">DBUS[7..0]</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5022" y="1244">DBUS0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5022" y="1274">DBUS1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5022" y="1304">DBUS2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5022" y="1334">DBUS3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5022" y="1364">DBUS4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5022" y="1394">DBUS5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5022" y="1424">DBUS6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5022" y="1454">DBUS7</text>
<polyline fill="none" points="3472 1694, 3072 1694, 3072 2544, 172 2544" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="22 2544, 22 2519, 147 2519, 172 2544, 147 2569, 22 2569, 22 2544" 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="22" y="2544">INTA1</text>
<polyline fill="none" points="672 2444, 172 2444" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="22 2344, 22 2319, 147 2319, 172 2344, 147 2369, 22 2369, 22 2344" 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="22" y="2344">RESET</text>
<polyline fill="none" points="3472 1944, 3222 1944, 3222 2844, 172 2844" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="22 2844, 22 2819, 147 2819, 172 2844, 147 2869, 22 2869, 22 2844" 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="22" y="2844">CLK</text>
<polyline fill="none" points="4772 1514, 4672 1514, 4672 2944, 172 2944" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="22 2944, 22 2919, 147 2919, 172 2944, 147 2969, 22 2969, 22 2944" 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="22" y="2944">INTA2</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="362" y="2934">在第二个应答信号期间读出中断号</text>
<rect fill="#80ff80" height="1500" stroke="#800000" stroke-width="1" width="700" x="672" y="1044"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="微软雅黑" font-size="200" font-weight="700" text-anchor="start" x="652" y="994">IRR</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="672" y="994">IRR.dlsche</text>
<polygon fill="#ffff80" points="672 1244, 697 1219, 747 1219, 772 1244, 747 1269, 697 1269, 672 1244" 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="782" y="1244">T0</text>
<polygon fill="#ffff80" points="672 1344, 697 1319, 747 1319, 772 1344, 747 1369, 697 1369, 672 1344" 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="782" y="1344">T1</text>
<polygon fill="#ffff80" points="672 1444, 697 1419, 747 1419, 772 1444, 747 1469, 697 1469, 672 1444" 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="782" y="1444">T2</text>
<polygon fill="#ffff80" points="672 1544, 697 1519, 747 1519, 772 1544, 747 1569, 697 1569, 672 1544" 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="782" y="1544">IRQ0</text>
<polygon fill="#ffff80" points="672 1644, 697 1619, 747 1619, 772 1644, 747 1669, 697 1669, 672 1644" 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="782" y="1644">IRQ1</text>
<polygon fill="#ffff80" points="672 1744, 697 1719, 747 1719, 772 1744, 747 1769, 697 1769, 672 1744" 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="782" y="1744">IRQ2</text>
<polygon fill="#ffff80" points="672 1844, 697 1819, 747 1819, 772 1844, 747 1869, 697 1869, 672 1844" 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="782" y="1844">IRQ3</text>
<polygon fill="#ffff80" points="672 1944, 697 1919, 747 1919, 772 1944, 747 1969, 697 1969, 672 1944" 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="782" y="1944">IRQ4</text>
<polygon fill="#ffff80" points="672 2044, 697 2019, 747 2019, 772 2044, 747 2069, 697 2069, 672 2044" 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="782" y="2044">IRQ5</text>
<polygon fill="#ffff80" points="672 2144, 697 2119, 747 2119, 772 2144, 747 2169, 697 2169, 672 2144" 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="782" y="2144">IRQ6</text>
<polygon fill="#ffff80" points="672 2244, 697 2219, 747 2219, 772 2244, 747 2269, 697 2269, 672 2244" 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="782" y="2244">IRQ7</text>
<polygon fill="#ffff80" points="672 2344, 697 2319, 747 2319, 772 2344, 747 2369, 697 2369, 672 2344" 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="782" y="2344">RESET</text>
<polygon fill="#ffff80" points="672 1144, 697 1119, 747 1119, 772 1144, 747 1169, 697 1169, 672 1144" 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="782" y="1144">CLK</text>
<polygon fill="#ffff80" points="672 2444, 697 2419, 747 2419, 772 2444, 747 2469, 697 2469, 672 2444" 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="782" y="2444">INTA2</text>
<polygon fill="#ffff80" points="1372 1244, 1347 1219, 1297 1219, 1272 1244, 1297 1269, 1347 1269, 1372 1244" 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="1162" y="1244">IRR0</text>
<polygon fill="#ffff80" points="1372 1344, 1347 1319, 1297 1319, 1272 1344, 1297 1369, 1347 1369, 1372 1344" 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="1162" y="1344">IRR1</text>
<polygon fill="#ffff80" points="1372 1444, 1347 1419, 1297 1419, 1272 1444, 1297 1469, 1347 1469, 1372 1444" 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="1162" y="1444">IRR2</text>
<polygon fill="#ffff80" points="1372 1544, 1347 1519, 1297 1519, 1272 1544, 1297 1569, 1347 1569, 1372 1544" 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="1162" y="1544">IRR3</text>
<polygon fill="#ffff80" points="1372 1644, 1347 1619, 1297 1619, 1272 1644, 1297 1669, 1347 1669, 1372 1644" 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="1162" y="1644">IRR4</text>
<polygon fill="#ffff80" points="1372 1744, 1347 1719, 1297 1719, 1272 1744, 1297 1769, 1347 1769, 1372 1744" 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="1162" y="1744">IRR5</text>
<polygon fill="#ffff80" points="1372 1844, 1347 1819, 1297 1819, 1272 1844, 1297 1869, 1347 1869, 1372 1844" 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="1162" y="1844">IRR6</text>
<polygon fill="#ffff80" points="1372 1944, 1347 1919, 1297 1919, 1272 1944, 1297 1969, 1347 1969, 1372 1944" 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="1162" y="1944">IRR7</text>
<circle cx="1622" cy="1344" fill="#000080" r="25" stroke="#000080" stroke-width="5"/>
<circle cx="4472" cy="1244" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="4522" cy="1344" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="4572" cy="1444" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="3072" cy="1244" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
</svg>
没有这种文件类型的预览
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
没有这种文件类型的预览
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
...@@ -8,45 +8,24 @@ mov sp, 0xf8 ;初始化堆栈指针寄存器 ...@@ -8,45 +8,24 @@ mov sp, 0xf8 ;初始化堆栈指针寄存器
;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。 ;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。
;中断向量本身是一个地址,它指向一个存储单元,该存储单元保存的就是某个中断服务程序的入口地址(起始地址) ;中断向量本身是一个地址,它指向一个存储单元,该存储单元保存的就是某个中断服务程序的入口地址(起始地址)
;设中断向量列表的首地址为0xf8,即第一个中断向量是存储单元0xf8 ;设中断向量列表的首地址为0xf8,即第一个中断向量是存储单元0xf8
;0号中断向量0xf8,0xf8中保存0号中断服务程序的入口地址
;安装0号中断向量0xf8,0xf8中保存0号中断服务程序的入口地址
lea a, int_0 lea a, int_0
mov r0, 0xf8 mov r0, 0xf8
mov [r0], a mov [r0], a
;1号中断向量0xf9,0xf9中保存1号中断服务程序的入口地址
lea a, int_1
mov r0, 0xf9
mov [r0], a
;2号中断向量0xfa,0xfa中保存2号中断服务程序的入口地址 ;安装3号中断向量0xfb,0xfb中保存3号中断服务程序的入口地址
lea a, int_2
mov r0, 0xfa
mov [r0], a
;3号中断向量0xfb,0xfb中保存3号中断服务程序的入口地址
lea a, int_3 lea a, int_3
mov r0, 0xfb mov r0, 0xfb
mov [r0], a mov [r0], a
;4号中断向量0xfc,0xfc中保存4号中断服务程序的入口地址
lea a, int_4
mov r0, 0xfc
mov [r0], a
;5号中断向量0xfd,0xfd中保存5号中断服务程序的入口地址 ;安装5号中断向量0xfd,0xfd中保存5号中断服务程序的入口地址
lea a, int_5 lea a, int_5
mov r0, 0xfd mov r0, 0xfd
mov [r0], a mov [r0], a
;6号中断向量0xfe,0xfe中保存6号中断服务程序的入口地址
lea a, int_6
mov r0, 0xfe
mov [r0], a
;7号中断向量0xff,0xff中保存7号中断服务程序的入口地址
lea a, int_7
mov r0, 0xff
mov [r0], a
;======================================================= ;=======================================================
;主程序代码 ;主程序代码
...@@ -66,48 +45,21 @@ jmp LOOPC ...@@ -66,48 +45,21 @@ jmp LOOPC
int_0: int_0:
mov a, 0x10 mov a, 0x10
adc a, -1 adc a, -1
ret iret
;1号中断的服务程序
int_1:
mov a, 0x11
sub a, -1
ret
;2号中断的服务程序
int_2:
mov a, 0x12
and a, r0
ret
;3号中断的服务程序 ;3号中断的服务程序
int_3: int_3:
mov a, 0x13 mov a, 0x13
or a, [r0] or a, [r0]
ret sbb a, -1
iret
;4号中断的服务程序
int_4:
mov r1, 2
mov a, 0
adc a, r1
ret
;5号中断的服务程序 ;5号中断的服务程序
int_5: int_5:
mov r2, 3 mov r2, 3
mov a, 1 mov a, 1
and a, r2 and a, r2
ret iret
;6号中断的服务程序
int_6:
mov a, 2
sbb a, 3
ret
;7号中断的服务程序
int_7:
mov a, 2
shl a
ret
\ No newline at end of file
没有这种文件类型的预览
...@@ -8,106 +8,58 @@ ...@@ -8,106 +8,58 @@
0008 ;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。 0008 ;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。
0009 ;中断向量本身是一个地址,它指向一个存储单元,该存储单元保存的就是某个中断服务程序的入口地址(起始地址) 0009 ;中断向量本身是一个地址,它指向一个存储单元,该存储单元保存的就是某个中断服务程序的入口地址(起始地址)
0010 ;设中断向量列表的首地址为0xf8,即第一个中断向量是存储单元0xf8 0010 ;设中断向量列表的首地址为0xf8,即第一个中断向量是存储单元0xf8
0011 ;0号中断向量0xf8,0xf8中保存0号中断服务程序的入口地址 0011
0012 02 98 31 lea a, int_0 0012 ;安装0号中断向量0xf8,0xf8中保存0号中断服务程序的入口地址
0013 04 8C F8 mov r0, 0xf8 0013 02 98 18 lea a, int_0
0014 06 84 mov [r0], a 0014 04 8C F8 mov r0, 0xf8
0015 0015 06 84 mov [r0], a
0016 ;1号中断向量0xf9,0xf9中保存1号中断服务程序的入口地址 0016
0017 07 98 36 lea a, int_1 0017
0018 09 8C F9 mov r0, 0xf9 0018 ;安装3号中断向量0xfb,0xfb中保存3号中断服务程序的入口地址
0019 0B 84 mov [r0], a 0019 07 98 1D lea a, int_3
0020 0020 09 8C FB mov r0, 0xfb
0021 ;2号中断向量0xfa,0xfa中保存2号中断服务程序的入口地址 0021 0B 84 mov [r0], a
0022 0C 98 3B lea a, int_2 0022
0023 0E 8C FA mov r0, 0xfa 0023
0024 10 84 mov [r0], a 0024 ;安装5号中断向量0xfd,0xfd中保存5号中断服务程序的入口地址
0025 0025 0C 98 23 lea a, int_5
0026 ;3号中断向量0xfb,0xfb中保存3号中断服务程序的入口地址 0026 0E 8C FD mov r0, 0xfd
0027 11 98 3F lea a, int_3 0027 10 84 mov [r0], a
0028 13 8C FB mov r0, 0xfb 0028
0029 15 84 mov [r0], a 0029
0030 0030 ;=======================================================
0031 ;4号中断向量0xfc,0xfc中保存4号中断服务程序的入口地址 0031 ;主程序代码
0032 16 98 43 lea a, int_4 0032
0033 18 8C FC mov r0, 0xfc 0033 11 7C FF mov a, -1
0034 1A 84 mov [r0], a 0034
0035 0035 LOOPC:
0036 ;5号中断向量0xfd,0xfd中保存5号中断服务程序的入口地址 0036 13 8C 01 mov r0, 1
0037 1B 98 49 lea a, int_5 0037 15 10 add a, r0
0038 1D 8C FD mov r0, 0xfd 0038
0039 1F 84 mov [r0], a 0039 16 AC 13 jmp LOOPC
0040 0040
0041 ;6号中断向量0xfe,0xfe中保存6号中断服务程序的入口地址 0041
0042 20 98 4F lea a, int_6 0042 ;=======================================================
0043 22 8C FE mov r0, 0xfe 0043 ;中断服务程序
0044 24 84 mov [r0], a 0044 ;0号中断的服务程序
0045 0045 int_0:
0046 ;7号中断向量0xff,0xff中保存7号中断服务程序的入口地址 0046 18 7C 10 mov a, 0x10
0047 25 98 54 lea a, int_7 0047 1A 2C FF adc a, -1
0048 27 8C FF mov r0, 0xff 0048 1C F8 iret
0049 29 84 mov [r0], a 0049
0050 0050
0051 ;======================================================= 0051 ;3号中断的服务程序
0052 ;主程序代码 0052 int_3:
0053 0053 1D 7C 13 mov a, 0x13
0054 2A 7C FF mov a, -1 0054 1F 64 or a, [r0]
0055 0055 20 4C FF sbb a, -1
0056 LOOPC: 0056 22 F8 iret
0057 2C 8C 01 mov r0, 1 0057
0058 2E 10 add a, r0 0058
0059 0059 ;5号中断的服务程序
0060 2F AC 2C jmp LOOPC 0060 int_5:
0061 0061 23 8E 03 mov r2, 3
0062 0062 25 7C 01 mov a, 1
0063 ;======================================================= 0063 27 52 and a, r2
0064 ;中断服务程序 0064 28 F8 iret
0065 ;0号中断的服务程序 0065
0066 int_0:
0067 31 7C 10 mov a, 0x10
0068 33 2C FF adc a, -1
0069 35 C8 ret
0070
0071 ;1号中断的服务程序
0072 int_1:
0073 36 7C 11 mov a, 0x11
0074 38 3C FF sub a, -1
0075 3A C8 ret
0076
0077 ;2号中断的服务程序
0078 int_2:
0079 3B 7C 12 mov a, 0x12
0080 3D 50 and a, r0
0081 3E C8 ret
0082
0083 ;3号中断的服务程序
0084 int_3:
0085 3F 7C 13 mov a, 0x13
0086 41 64 or a, [r0]
0087 42 C8 ret
0088
0089 ;4号中断的服务程序
0090 int_4:
0091 43 8D 02 mov r1, 2
0092 45 7C 00 mov a, 0
0093 47 21 adc a, r1
0094 48 C8 ret
0095
0096 ;5号中断的服务程序
0097 int_5:
0098 49 8E 03 mov r2, 3
0099 4B 7C 01 mov a, 1
0100 4D 52 and a, r2
0101 4E C8 ret
0102
0103 ;6号中断的服务程序
0104 int_6:
0105 4F 7C 02 mov a, 2
0106 51 4C 03 sbb a, 3
0107 53 C8 ret
0108
0109 ;7号中断的服务程序
0110 int_7:
0111 54 7C 02 mov a, 2
0112 56 D4 shl a
0113 57 C8 ret
\ No newline at end of file
没有这种文件类型的预览
没有这种文件类型的预览
...@@ -423,116 +423,117 @@ ...@@ -423,116 +423,117 @@
0423 600 FF FF FF FF dup 16, null 0423 600 FF FF FF FF dup 16, null
0424 0424
0425 ;===================================================================== 0425 ;=====================================================================
0426 ;硬中断调用返回指令。 0426 ;子程序调用返回指令
0427 ;硬中断返回就是出栈过程,将栈顶指针sp指向的存储单元内的返回地址加载到PC,实现中断返回 0427 ; ret
0428 ;与此同时,sp加1,指向新的栈顶 0428 640 EF F7 F2 FF path sp, mar ;将堆栈指针(栈顶地址)传送到 MAR
0429 ; ret 0429 644 EF FF 72 FF path sp, cst ;
0430 640 EF F7 F2 FF path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar 0430 648 E7 FF FF FF path sp_inc, cst ;
0431 644 EF FF 72 FF path sp, cst ;sp传入cst计数器 0431 64C EF FE F8 FF path cst, sp ;SP = SP + 1,出栈,更新栈顶
0432 648 E7 FF FF FF path sp_inc, cst ;cst计数器加1 0432 650 EF EB F9 FF path [mar], pc ;将调用返回地址加载到PC,转移到调用处的下一条指令继续执行
0433 64C EF FE F8 FF path cst, sp ;将cst减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶 0433 654 CF FF FF FF reset upc
0434 650 EF EB F9 FF path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回 0434
0435 654 EF FF FD FF eoi ;清除已经服务完的硬中断标志 0435 658 FF FF FF FF dup 2, null
0436 658 CF FF FF FF reset upc 0436 ;=====================================================================
0437 0437
0438 65C FF FF FF FF dup 1, null 0438 ; 填充空白指令
0439 ;===================================================================== 0439 660 FF FF FF FF dup 8, null
0440 0440
0441 ; 填充空白指令 0441 ; shr a
0442 660 FF FF FF FF dup 8, null 0442 680 EF FF D5 90 path alu_shr, a
0443 0443 684 FF FF FF FF inc pc
0444 ; shr a 0444 688 AF FF FF FF ask_for_int
0445 680 EF FF D5 90 path alu_shr, a 0445 68C CF FF FF FF reset upc
0446 684 FF FF FF FF inc pc 0446
0447 688 AF FF FF FF ask_for_int 0447 690 FF FF FF FF dup 4, null
0448 68C CF FF FF FF reset upc 0448
0449 0449 ; shl a
0450 690 FF FF FF FF dup 4, null 0450 6A0 EF FF D6 90 path alu_shl, a
0451 0451 6A4 FF FF FF FF inc pc
0452 ; shl a 0452 6A8 AF FF FF FF ask_for_int
0453 6A0 EF FF D6 90 path alu_shl, a 0453 6AC CF FF FF FF reset upc
0454 6A4 FF FF FF FF inc pc 0454
0455 6A8 AF FF FF FF ask_for_int 0455 6B0 FF FF FF FF dup 4, null
0456 6AC CF FF FF FF reset upc 0456
0457 0457 ; rcr a
0458 6B0 FF FF FF FF dup 4, null 0458 6C0 EF FF E5 90 path alu_rcr, a
0459 0459 6C4 FF FF FF FF inc pc
0460 ; rcr a 0460 6C8 AF FF FF FF ask_for_int
0461 6C0 EF FF E5 90 path alu_rcr, a 0461 6CC CF FF FF FF reset upc
0462 6C4 FF FF FF FF inc pc 0462
0463 6C8 AF FF FF FF ask_for_int 0463 6D0 FF FF FF FF dup 4, null
0464 6CC CF FF FF FF reset upc 0464
0465 0465 ; rcl a
0466 6D0 FF FF FF FF dup 4, null 0466 6E0 EF FF E6 90 path alu_rcl, a
0467 0467 6E4 FF FF FF FF inc pc
0468 ; rcl a 0468 6E8 AF FF FF FF ask_for_int
0469 6E0 EF FF E6 90 path alu_rcl, a 0469 6EC CF FF FF FF reset upc
0470 6E4 FF FF FF FF inc pc 0470
0471 6E8 AF FF FF FF ask_for_int 0471 6F0 FF FF FF FF dup 4, null
0472 6EC CF FF FF FF reset upc 0472
0473 0473 ; nop
0474 6F0 FF FF FF FF dup 4, null 0474 700 FF FF FF FF inc pc
0475 0475 704 CF FF FF FF reset upc
0476 ; nop 0476
0477 700 FF FF FF FF inc pc 0477 708 FF FF FF FF dup 6, null
0478 704 CF FF FF FF reset upc 0478
0479 0479 ; not a
0480 708 FF FF FF FF dup 6, null 0480 720 EF FF F4 B0 path alu_not, a
0481 0481 724 FF FF FF FF inc pc
0482 ; not a 0482 728 AF FF FF FF ask_for_int
0483 720 EF FF F4 B0 path alu_not, a 0483 72C CF FF FF FF reset upc
0484 724 FF FF FF FF inc pc 0484
0485 728 AF FF FF FF ask_for_int 0485 730 FF FF FF FF dup 4, null
0486 72C CF FF FF FF reset upc 0486
0487 0487 ; call symbol
0488 730 FF FF FF FF dup 4, null 0488 740 FF FF FF FF inc pc
0489 0489 744 EF 7D F9 FF path [pc], asr
0490 ; call symbol 0490 748 EF FF 72 FF path sp, cst
0491 740 FF FF FF FF inc pc 0491 74C EF FF FF FF path sp_dec, cst
0492 744 EF 7D F9 FF path [pc], asr 0492 750 EF FE F8 FF path cst, sp
0493 748 EF FF 72 FF path sp, cst 0493 754 EF F7 F2 FF path sp, mar
0494 74C EF FF FF FF path sp_dec, cst 0494 758 FF FF FF FF inc pc
0495 750 EF FE F8 FF path cst, sp 0495 75C ED FB F3 FF path pc, [mar]
0496 754 EF F7 F2 FF path sp, mar 0496 760 EF EF F7 FF path asr, pc
0497 758 FF FF FF FF inc pc 0497 764 AF FF FF FF ask_for_int
0498 75C ED FB F3 FF path pc, [mar] 0498 768 CF FF FF FF reset upc
0499 760 EF EF F7 FF path asr, pc 0499
0500 764 AF FF FF FF ask_for_int 0500 76C FF FF FF FF dup 5, null
0501 768 CF FF FF FF reset upc 0501
0502 0502 ;======================================================================
0503 76C FF FF FF FF dup 5, null 0503 ; 硬中断处理微指令程序。
0504 0504 ;硬中断处理就是入栈过程,将下一条指令的地址(中断返回地址)入栈,入栈过程就是将返回地址写入sp加1后指向的存储单元中
0505 ;====================================================================== 0505 ;然后将硬中断服务程序入口地址加载到PC,转去执行服务程序。
0506 ; 硬中断处理微指令程序。 0506 780 EF FF 72 FF path sp, cst ;将堆栈指针寄存器sp的值传送到cst计数器
0507 ;硬中断处理就是入栈过程,将下一条指令的地址(中断返回地址)入栈,入栈过程就是将返回地址写入sp加1后指向的存储单元中 0507 784 EF FF FF FF path sp_dec, cst ;计数器cst减1
0508 ;然后将硬中断服务程序入口地址加载到PC,转去执行服务程序。 0508 788 EF FE F8 FF path cst, sp ;将减计数结果写回sp,完成堆栈指针sp-1操作,为返回地址入栈做准备
0509 780 EF FF 72 FF path sp, cst ;将堆栈指针寄存器sp的值传送到cst计数器 0509 78C EF F7 F2 FF path sp, mar ;sp堆栈指针寄存器内容传送到地址寄存器mar
0510 784 EF FF FF FF path sp_dec, cst ;计数器cst减1 0510 790 ED FB F3 FF path pc, [mar] ;将返回地址PC入栈
0511 788 EF FE F8 FF path cst, sp ;将减计数结果写回sp,完成堆栈指针sp-1操作,为返回地址入栈做准备 0511
0512 78C EF F7 F2 FF path sp, mar ;sp堆栈指针寄存器内容传送到地址寄存器mar 0512 ; 根据中断号获取中断服务程序入口地址
0513 790 ED FB F3 FF path pc, [mar] ;将返回地址PC入栈 0513 794 EF FF FB FF inta1 ;发出第一个中断应答信号,中断控制器保存最高优先级中断请求对应的编号(0~7)
0514 0514 798 EB FF FC FF inta2 ;发出第二个中断应答信号,将响应中断的终端号读入IA寄存器中,并清除响应的中断请求,避免重复响应
0515 ; 根据中断号获取中断服务程序入口地址 0515
0516 794 EF FF FB FF inta1 ;发出第一个中断应答信号,中断控制器保存最高优先级中断请求对应的编号(0~7) 0516 79C EF DF F1 FF path int_ia, pc ;将中断向量(ia寄存器的内容)传入PC
0517 798 EB FF FC FF inta2 ;发出第二个中断应答信号,将响应中断的终端号读入IA寄存器中,并清除响应的中断请求,避免重复响应 0517 7A0 EF 5F F9 FF path [int_pc], pc ;读出中断向量中的内容(中断服务程序首地址),将其加载到PC,执行中断服务程序
0518 0518 7A4 CF FF FF FF reset upc
0519 79C EF DF F1 FF path int_ia, pc ;将中断向量(ia寄存器的内容)传入PC 0519
0520 7A0 EF 5F F9 FF path [int_pc], pc ;读出中断向量中的内容(中断服务程序首地址),将其加载到PC,执行中断服务程序 0520 7A8 FF FF FF FF dup 6, null
0521 7A4 CF FF FF FF reset upc 0521
0522 0522 ;======================================================================
0523 7A8 FF FF FF FF dup 6, null 0523 ;中断返回指令
0524 0524 ; iret
0525 ;====================================================================== 0525 ;中断返回就是出栈过程,将栈顶指针sp指向的存储单元内的返回地址加载到PC,实现中断返回
0526 ;软中断返回指令 0526 ;与此同时,sp加1,指向新的栈顶
0527 ; iret 0527 ; iret
0528 7C0 EF F7 F2 FF path sp, mar 0528 7C0 EF F7 F2 FF path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar
0529 7C4 EF FF 72 FF path sp, cst 0529 7C4 EF FF 72 FF path sp, cst ;sp传入cst计数器
0530 7C8 E7 FF FF FF path sp_inc, cst 0530 7C8 E7 FF FF FF path sp_inc, cst ;cst计数器加1
0531 7CC EF FE F8 FF path cst, sp 0531 7CC EF FE F8 FF path cst, sp ;将cst减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
0532 7D0 EF EB F9 FF path [mar], pc 0532 7D0 EF EB F9 FF path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回
0533 7D4 CF FF FF FF reset upc 0533 7D4 EF FF FD FF eoi ;清除已经服务完的硬中断标志
0534 0534 7D8 CF FF FF FF reset upc
0535 7D8 FF FF FF FF dup 2, null 0535
0536 0536 7DC FF FF FF FF dup 1, null
0537 0537
0538 0538
0539
...@@ -423,19 +423,16 @@ dup 5, null ...@@ -423,19 +423,16 @@ dup 5, null
dup 16, null dup 16, null
;===================================================================== ;=====================================================================
;硬中断调用返回指令。 ;子程序调用返回指令
;硬中断返回就是出栈过程,将栈顶指针sp指向的存储单元内的返回地址加载到PC,实现中断返回
;与此同时,sp加1,指向新的栈顶
; ret ; ret
path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar path sp, mar ;将堆栈指针(栈顶地址)传送到 MAR
path sp, cst ;sp传入cst计数器 path sp, cst ;
path sp_inc, cst ;cst计数器加1 path sp_inc, cst ;
path cst, sp ;将cst减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶 path cst, sp ;SP = SP + 1,出栈,更新栈顶
path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回 path [mar], pc ;将调用返回地址加载到PC,转移到调用处的下一条指令继续执行
eoi ;清除已经服务完的硬中断标志
reset upc reset upc
dup 1, null dup 2, null
;===================================================================== ;=====================================================================
; 填充空白指令 ; 填充空白指令
...@@ -523,16 +520,20 @@ reset upc ...@@ -523,16 +520,20 @@ reset upc
dup 6, null dup 6, null
;====================================================================== ;======================================================================
;中断返回指令 ;中断返回指令
; iret ; iret
path sp, mar ;中断返回就是出栈过程,将栈顶指针sp指向的存储单元内的返回地址加载到PC,实现中断返回
path sp, cst ;与此同时,sp加1,指向新的栈顶
path sp_inc, cst ; iret
path cst, sp path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar
path [mar], pc path sp, cst ;sp传入cst计数器
path sp_inc, cst ;cst计数器加1
path cst, sp ;将cst减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回
eoi ;清除已经服务完的硬中断标志
reset upc reset upc
dup 2, null dup 1, null
没有这种文件类型的预览
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论