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

Merge branch 'hdr' into 'master'

没有这种文件类型的预览
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览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
没有这种文件类型的预览
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
......@@ -8,45 +8,24 @@ mov sp, 0xf8 ;初始化堆栈指针寄存器
;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。
;中断向量本身是一个地址,它指向一个存储单元,该存储单元保存的就是某个中断服务程序的入口地址(起始地址)
;设中断向量列表的首地址为0xf8,即第一个中断向量是存储单元0xf8
;0号中断向量0xf8,0xf8中保存0号中断服务程序的入口地址
;安装0号中断向量0xf8,0xf8中保存0号中断服务程序的入口地址
lea a, int_0
mov r0, 0xf8
mov [r0], a
;1号中断向量0xf9,0xf9中保存1号中断服务程序的入口地址
lea a, int_1
mov r0, 0xf9
mov [r0], a
;2号中断向量0xfa,0xfa中保存2号中断服务程序的入口地址
lea a, int_2
mov r0, 0xfa
mov [r0], a
;3号中断向量0xfb,0xfb中保存3号中断服务程序的入口地址
;安装3号中断向量0xfb,0xfb中保存3号中断服务程序的入口地址
lea a, int_3
mov r0, 0xfb
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
mov r0, 0xfd
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
int_0:
mov a, 0x10
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号中断的服务程序
int_3:
mov a, 0x13
or a, [r0]
ret
sbb a, -1
iret
;4号中断的服务程序
int_4:
mov r1, 2
mov a, 0
adc a, r1
ret
;5号中断的服务程序
int_5:
mov r2, 3
mov a, 1
and a, r2
ret
;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
iret
没有这种文件类型的预览
......@@ -8,106 +8,58 @@
0008 ;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。
0009 ;中断向量本身是一个地址,它指向一个存储单元,该存储单元保存的就是某个中断服务程序的入口地址(起始地址)
0010 ;设中断向量列表的首地址为0xf8,即第一个中断向量是存储单元0xf8
0011 ;0号中断向量0xf8,0xf8中保存0号中断服务程序的入口地址
0012 02 98 31 lea a, int_0
0013 04 8C F8 mov r0, 0xf8
0014 06 84 mov [r0], a
0015
0016 ;1号中断向量0xf9,0xf9中保存1号中断服务程序的入口地址
0017 07 98 36 lea a, int_1
0018 09 8C F9 mov r0, 0xf9
0019 0B 84 mov [r0], a
0020
0021 ;2号中断向量0xfa,0xfa中保存2号中断服务程序的入口地址
0022 0C 98 3B lea a, int_2
0023 0E 8C FA mov r0, 0xfa
0024 10 84 mov [r0], a
0025
0026 ;3号中断向量0xfb,0xfb中保存3号中断服务程序的入口地址
0027 11 98 3F lea a, int_3
0028 13 8C FB mov r0, 0xfb
0029 15 84 mov [r0], a
0030
0031 ;4号中断向量0xfc,0xfc中保存4号中断服务程序的入口地址
0032 16 98 43 lea a, int_4
0033 18 8C FC mov r0, 0xfc
0034 1A 84 mov [r0], a
0035
0036 ;5号中断向量0xfd,0xfd中保存5号中断服务程序的入口地址
0037 1B 98 49 lea a, int_5
0038 1D 8C FD mov r0, 0xfd
0039 1F 84 mov [r0], a
0011
0012 ;安装0号中断向量0xf8,0xf8中保存0号中断服务程序的入口地址
0013 02 98 18 lea a, int_0
0014 04 8C F8 mov r0, 0xf8
0015 06 84 mov [r0], a
0016
0017
0018 ;安装3号中断向量0xfb,0xfb中保存3号中断服务程序的入口地址
0019 07 98 1D lea a, int_3
0020 09 8C FB mov r0, 0xfb
0021 0B 84 mov [r0], a
0022
0023
0024 ;安装5号中断向量0xfd,0xfd中保存5号中断服务程序的入口地址
0025 0C 98 23 lea a, int_5
0026 0E 8C FD mov r0, 0xfd
0027 10 84 mov [r0], a
0028
0029
0030 ;=======================================================
0031 ;主程序代码
0032
0033 11 7C FF mov a, -1
0034
0035 LOOPC:
0036 13 8C 01 mov r0, 1
0037 15 10 add a, r0
0038
0039 16 AC 13 jmp LOOPC
0040
0041 ;6号中断向量0xfe,0xfe中保存6号中断服务程序的入口地址
0042 20 98 4F lea a, int_6
0043 22 8C FE mov r0, 0xfe
0044 24 84 mov [r0], a
0045
0046 ;7号中断向量0xff,0xff中保存7号中断服务程序的入口地址
0047 25 98 54 lea a, int_7
0048 27 8C FF mov r0, 0xff
0049 29 84 mov [r0], a
0041
0042 ;=======================================================
0043 ;中断服务程序
0044 ;0号中断的服务程序
0045 int_0:
0046 18 7C 10 mov a, 0x10
0047 1A 2C FF adc a, -1
0048 1C F8 iret
0049
0050
0051 ;=======================================================
0052 ;主程序代码
0053
0054 2A 7C FF mov a, -1
0055
0056 LOOPC:
0057 2C 8C 01 mov r0, 1
0058 2E 10 add a, r0
0059
0060 2F AC 2C jmp LOOPC
0061
0062
0063 ;=======================================================
0064 ;中断服务程序
0065 ;0号中断的服务程序
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
0051 ;3号中断的服务程序
0052 int_3:
0053 1D 7C 13 mov a, 0x13
0054 1F 64 or a, [r0]
0055 20 4C FF sbb a, -1
0056 22 F8 iret
0057
0058
0059 ;5号中断的服务程序
0060 int_5:
0061 23 8E 03 mov r2, 3
0062 25 7C 01 mov a, 1
0063 27 52 and a, r2
0064 28 F8 iret
0065
没有这种文件类型的预览
没有这种文件类型的预览
......@@ -423,116 +423,117 @@
0423 600 FF FF FF FF dup 16, null
0424
0425 ;=====================================================================
0426 ;硬中断调用返回指令。
0427 ;硬中断返回就是出栈过程,将栈顶指针sp指向的存储单元内的返回地址加载到PC,实现中断返回
0428 ;与此同时,sp加1,指向新的栈顶
0429 ; ret
0430 640 EF F7 F2 FF path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar
0431 644 EF FF 72 FF path sp, cst ;sp传入cst计数器
0432 648 E7 FF FF FF path sp_inc, cst ;cst计数器加1
0433 64C EF FE F8 FF path cst, sp ;将cst减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
0434 650 EF EB F9 FF path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回
0435 654 EF FF FD FF eoi ;清除已经服务完的硬中断标志
0436 658 CF FF FF FF reset upc
0426 ;子程序调用返回指令
0427 ; ret
0428 640 EF F7 F2 FF path sp, mar ;将堆栈指针(栈顶地址)传送到 MAR
0429 644 EF FF 72 FF path sp, cst ;
0430 648 E7 FF FF FF path sp_inc, cst ;
0431 64C EF FE F8 FF path cst, sp ;SP = SP + 1,出栈,更新栈顶
0432 650 EF EB F9 FF path [mar], pc ;将调用返回地址加载到PC,转移到调用处的下一条指令继续执行
0433 654 CF FF FF FF reset upc
0434
0435 658 FF FF FF FF dup 2, null
0436 ;=====================================================================
0437
0438 65C FF FF FF FF dup 1, null
0439 ;=====================================================================
0438 ; 填充空白指令
0439 660 FF FF FF FF dup 8, null
0440
0441 ; 填充空白指令
0442 660 FF FF FF FF dup 8, null
0443
0444 ; shr a
0445 680 EF FF D5 90 path alu_shr, a
0446 684 FF FF FF FF inc pc
0447 688 AF FF FF FF ask_for_int
0448 68C CF FF FF FF reset upc
0449
0450 690 FF FF FF FF dup 4, null
0451
0452 ; shl a
0453 6A0 EF FF D6 90 path alu_shl, a
0454 6A4 FF FF FF FF inc pc
0455 6A8 AF FF FF FF ask_for_int
0456 6AC CF FF FF FF reset upc
0457
0458 6B0 FF FF FF FF dup 4, null
0459
0460 ; rcr a
0461 6C0 EF FF E5 90 path alu_rcr, a
0462 6C4 FF FF FF FF inc pc
0463 6C8 AF FF FF FF ask_for_int
0464 6CC CF FF FF FF reset upc
0465
0466 6D0 FF FF FF FF dup 4, null
0467
0468 ; rcl a
0469 6E0 EF FF E6 90 path alu_rcl, a
0470 6E4 FF FF FF FF inc pc
0471 6E8 AF FF FF FF ask_for_int
0472 6EC CF FF FF FF reset upc
0473
0474 6F0 FF FF FF FF dup 4, null
0475
0476 ; nop
0477 700 FF FF FF FF inc pc
0478 704 CF FF FF FF reset upc
0479
0480 708 FF FF FF FF dup 6, null
0481
0482 ; not a
0483 720 EF FF F4 B0 path alu_not, a
0484 724 FF FF FF FF inc pc
0485 728 AF FF FF FF ask_for_int
0486 72C CF FF FF FF reset upc
0487
0488 730 FF FF FF FF dup 4, null
0489
0490 ; call symbol
0491 740 FF FF FF FF inc pc
0492 744 EF 7D F9 FF path [pc], asr
0493 748 EF FF 72 FF path sp, cst
0494 74C EF FF FF FF path sp_dec, cst
0495 750 EF FE F8 FF path cst, sp
0496 754 EF F7 F2 FF path sp, mar
0497 758 FF FF FF FF inc pc
0498 75C ED FB F3 FF path pc, [mar]
0499 760 EF EF F7 FF path asr, pc
0500 764 AF FF FF FF ask_for_int
0501 768 CF FF FF FF reset upc
0502
0503 76C FF FF FF FF dup 5, null
0504
0505 ;======================================================================
0506 ; 硬中断处理微指令程序。
0507 ;硬中断处理就是入栈过程,将下一条指令的地址(中断返回地址)入栈,入栈过程就是将返回地址写入sp加1后指向的存储单元中
0508 ;然后将硬中断服务程序入口地址加载到PC,转去执行服务程序。
0509 780 EF FF 72 FF path sp, cst ;将堆栈指针寄存器sp的值传送到cst计数器
0510 784 EF FF FF FF path sp_dec, cst ;计数器cst减1
0511 788 EF FE F8 FF path cst, sp ;将减计数结果写回sp,完成堆栈指针sp-1操作,为返回地址入栈做准备
0512 78C EF F7 F2 FF path sp, mar ;sp堆栈指针寄存器内容传送到地址寄存器mar
0513 790 ED FB F3 FF path pc, [mar] ;将返回地址PC入栈
0514
0515 ; 根据中断号获取中断服务程序入口地址
0516 794 EF FF FB FF inta1 ;发出第一个中断应答信号,中断控制器保存最高优先级中断请求对应的编号(0~7)
0517 798 EB FF FC FF inta2 ;发出第二个中断应答信号,将响应中断的终端号读入IA寄存器中,并清除响应的中断请求,避免重复响应
0518
0519 79C EF DF F1 FF path int_ia, pc ;将中断向量(ia寄存器的内容)传入PC
0520 7A0 EF 5F F9 FF path [int_pc], pc ;读出中断向量中的内容(中断服务程序首地址),将其加载到PC,执行中断服务程序
0521 7A4 CF FF FF FF reset upc
0522
0523 7A8 FF FF FF FF dup 6, null
0524
0525 ;======================================================================
0526 ;软中断返回指令
0441 ; shr a
0442 680 EF FF D5 90 path alu_shr, a
0443 684 FF FF FF FF inc pc
0444 688 AF FF FF FF ask_for_int
0445 68C CF FF FF FF reset upc
0446
0447 690 FF FF FF FF dup 4, null
0448
0449 ; shl a
0450 6A0 EF FF D6 90 path alu_shl, a
0451 6A4 FF FF FF FF inc pc
0452 6A8 AF FF FF FF ask_for_int
0453 6AC CF FF FF FF reset upc
0454
0455 6B0 FF FF FF FF dup 4, null
0456
0457 ; rcr a
0458 6C0 EF FF E5 90 path alu_rcr, a
0459 6C4 FF FF FF FF inc pc
0460 6C8 AF FF FF FF ask_for_int
0461 6CC CF FF FF FF reset upc
0462
0463 6D0 FF FF FF FF dup 4, null
0464
0465 ; rcl a
0466 6E0 EF FF E6 90 path alu_rcl, a
0467 6E4 FF FF FF FF inc pc
0468 6E8 AF FF FF FF ask_for_int
0469 6EC CF FF FF FF reset upc
0470
0471 6F0 FF FF FF FF dup 4, null
0472
0473 ; nop
0474 700 FF FF FF FF inc pc
0475 704 CF FF FF FF reset upc
0476
0477 708 FF FF FF FF dup 6, null
0478
0479 ; not a
0480 720 EF FF F4 B0 path alu_not, a
0481 724 FF FF FF FF inc pc
0482 728 AF FF FF FF ask_for_int
0483 72C CF FF FF FF reset upc
0484
0485 730 FF FF FF FF dup 4, null
0486
0487 ; call symbol
0488 740 FF FF FF FF inc pc
0489 744 EF 7D F9 FF path [pc], asr
0490 748 EF FF 72 FF path sp, cst
0491 74C EF FF FF FF path sp_dec, cst
0492 750 EF FE F8 FF path cst, sp
0493 754 EF F7 F2 FF path sp, mar
0494 758 FF FF FF FF inc pc
0495 75C ED FB F3 FF path pc, [mar]
0496 760 EF EF F7 FF path asr, pc
0497 764 AF FF FF FF ask_for_int
0498 768 CF FF FF FF reset upc
0499
0500 76C FF FF FF FF dup 5, null
0501
0502 ;======================================================================
0503 ; 硬中断处理微指令程序。
0504 ;硬中断处理就是入栈过程,将下一条指令的地址(中断返回地址)入栈,入栈过程就是将返回地址写入sp加1后指向的存储单元中
0505 ;然后将硬中断服务程序入口地址加载到PC,转去执行服务程序。
0506 780 EF FF 72 FF path sp, cst ;将堆栈指针寄存器sp的值传送到cst计数器
0507 784 EF FF FF FF path sp_dec, cst ;计数器cst减1
0508 788 EF FE F8 FF path cst, sp ;将减计数结果写回sp,完成堆栈指针sp-1操作,为返回地址入栈做准备
0509 78C EF F7 F2 FF path sp, mar ;sp堆栈指针寄存器内容传送到地址寄存器mar
0510 790 ED FB F3 FF path pc, [mar] ;将返回地址PC入栈
0511
0512 ; 根据中断号获取中断服务程序入口地址
0513 794 EF FF FB FF inta1 ;发出第一个中断应答信号,中断控制器保存最高优先级中断请求对应的编号(0~7)
0514 798 EB FF FC FF inta2 ;发出第二个中断应答信号,将响应中断的终端号读入IA寄存器中,并清除响应的中断请求,避免重复响应
0515
0516 79C EF DF F1 FF path int_ia, pc ;将中断向量(ia寄存器的内容)传入PC
0517 7A0 EF 5F F9 FF path [int_pc], pc ;读出中断向量中的内容(中断服务程序首地址),将其加载到PC,执行中断服务程序
0518 7A4 CF FF FF FF reset upc
0519
0520 7A8 FF FF FF FF dup 6, null
0521
0522 ;======================================================================
0523 ;中断返回指令
0524 ; iret
0525 ;中断返回就是出栈过程,将栈顶指针sp指向的存储单元内的返回地址加载到PC,实现中断返回
0526 ;与此同时,sp加1,指向新的栈顶
0527 ; iret
0528 7C0 EF F7 F2 FF path sp, mar
0529 7C4 EF FF 72 FF path sp, cst
0530 7C8 E7 FF FF FF path sp_inc, cst
0531 7CC EF FE F8 FF path cst, sp
0532 7D0 EF EB F9 FF path [mar], pc
0533 7D4 CF FF FF FF reset upc
0534
0535 7D8 FF FF FF FF dup 2, null
0536
0528 7C0 EF F7 F2 FF path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar
0529 7C4 EF FF 72 FF path sp, cst ;sp传入cst计数器
0530 7C8 E7 FF FF FF path sp_inc, cst ;cst计数器加1
0531 7CC EF FE F8 FF path cst, sp ;将cst减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
0532 7D0 EF EB F9 FF path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回
0533 7D4 EF FF FD FF eoi ;清除已经服务完的硬中断标志
0534 7D8 CF FF FF FF reset upc
0535
0536 7DC FF FF FF FF dup 1, null
0537
0538
0539
......@@ -423,19 +423,16 @@ dup 5, null
dup 16, null
;=====================================================================
;硬中断调用返回指令。
;硬中断返回就是出栈过程,将栈顶指针sp指向的存储单元内的返回地址加载到PC,实现中断返回
;与此同时,sp加1,指向新的栈顶
;子程序调用返回指令
; ret
path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar
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 ;清除已经服务完的硬中断标志
path sp, mar ;将堆栈指针(栈顶地址)传送到 MAR
path sp, cst ;
path sp_inc, cst ;
path cst, sp ;SP = SP + 1,出栈,更新栈顶
path [mar], pc ;将调用返回地址加载到PC,转移到调用处的下一条指令继续执行
reset upc
dup 1, null
dup 2, null
;=====================================================================
; 填充空白指令
......@@ -523,16 +520,20 @@ reset upc
dup 6, null
;======================================================================
;中断返回指令
;中断返回指令
; iret
path sp, mar
path sp, cst
path sp_inc, cst
path cst, sp
path [mar], pc
;中断返回就是出栈过程,将栈顶指针sp指向的存储单元内的返回地址加载到PC,实现中断返回
;与此同时,sp加1,指向新的栈顶
; iret
path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar
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
dup 2, null
dup 1, null
没有这种文件类型的预览
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论