提交 0646239b 创建 作者: 赵鹏翀's avatar 赵鹏翀

Initial commit

上级
*.cir
*.xml
*.bak
/.vs
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<project id="f97e424a-ba19-4297-a4ff-05cdea3f0011" name="8086" version="1">
<files>
<filefolder id="c581f7a9-6dd9-40df-bf4a-bc4ebe8225cc" name="子模块">
<file relativepath="ALU.dlsche"/>
<file relativepath="CU.dlsche"/>
<file relativepath="PC.dlsche"/>
<file relativepath="uPC_NEXT.dlsche"/>
<file relativepath="BRANCH.dlsche"/>
<file relativepath="FLAG.dlsche"/>
<file relativepath="REGS.dlsche"/>
<file relativepath="rom.masm"/>
<file relativepath="rom.rxm"/>
<file relativepath="rom.bat"/>
</filefolder>
<file relativepath="8086.dlsche"/>
<file relativepath="README.md"/>
<file relativepath="8086.pdf"/>
</files>
</project>
添加文件
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<svg height="6680" version="1.1" width="8052" xmlns="http://www.w3.org/2000/svg">
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="105" font-weight="700" text-anchor="start" x="1438" y="3130">DBUS[7..0]</text>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2788" x2="2838" y1="3530" y2="3580"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2788" x2="2838" y1="3560" y2="3610"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2788" x2="2838" y1="3590" y2="3640"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2788" x2="2838" y1="3620" y2="3670"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2788" x2="2838" y1="3650" y2="3700"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2788" x2="2838" y1="3680" y2="3730"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2788" x2="2838" y1="3710" y2="3760"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2788" x2="2838" y1="3740" y2="3790"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2708" y="3850">MAR_EN</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2838" y="3580">DBUS0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2838" y="3610">DBUS1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2838" y="3640">DBUS2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2838" y="3670">DBUS3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2838" y="3700">DBUS4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2838" y="3730">DBUS5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2838" y="3760">DBUS6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2838" y="3790">DBUS7</text>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="3778" x2="3828" y1="3580" y2="3530"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="3778" x2="3828" y1="3610" y2="3560"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="3778" x2="3828" y1="3640" y2="3590"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="3778" x2="3828" y1="3670" y2="3620"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="3778" x2="3828" y1="3700" y2="3650"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="3778" x2="3828" y1="3730" y2="3680"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="3778" x2="3828" y1="3760" y2="3710"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="3778" x2="3828" y1="3790" y2="3740"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="105" font-weight="700" text-anchor="start" x="1428" y="4130">ABUS[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="3228" y="3850">MAR_GATE_EN</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2708" y="3880">CLK</text>
<polyline fill="none" points="3228 3850, 3378 3850" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2888 3580, 2838 3580" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2888 3610, 2838 3610" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2888 3640, 2838 3640" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2838 3670, 2888 3670" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2838 3700, 2888 3700" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2838 3730, 2888 3730" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2838 3760, 2888 3760" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2888 3790, 2838 3790" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3628 3580, 3778 3580" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3628 3610, 3778 3610" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3628 3640, 3778 3640" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3628 3670, 3778 3670" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3628 3700, 3778 3700" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3628 3730, 3778 3730" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3628 3760, 3778 3760" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3628 3790, 3778 3790" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="3648" y="3580">ABUS0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="3648" y="3610">ABUS1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="3648" y="3640">ABUS2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="3648" y="3670">ABUS3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="3648" y="3700">ABUS4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="3648" y="3730">ABUS5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="3648" y="3760">ABUS6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="3648" y="3790">ABUS7</text>
<polyline fill="none" points="3238 3580, 3378 3580" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3238 3610, 3378 3610" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3378 3640, 3238 3640" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3238 3670, 3378 3670" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3238 3700, 3378 3700" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3238 3730, 3378 3730" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3238 3760, 3378 3760" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="3378 3790, 3238 3790" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<rect fill="#80ff80" height="1800" stroke="#800000" stroke-width="1" width="2600" x="4528" y="4530"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="微软雅黑" font-size="200" font-weight="700" text-anchor="start" x="4528" y="4480">CU</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="4528" y="4530">CU.dlsche</text>
<polygon fill="#ffff80" points="4528 4830, 4553 4805, 4603 4805, 4628 4830, 4603 4855, 4553 4855, 4528 4830" 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="4640" y="4830">DBUS[7..0]</text>
<polygon fill="#ffff80" points="4928 4530, 4903 4555, 4903 4605, 4928 4630, 4953 4605, 4953 4555, 4928 4530" 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="4909" y="4670">RD0</text>
<polygon fill="#ffff80" points="5028 4530, 5003 4555, 5003 4605, 5028 4630, 5053 4605, 5053 4555, 5028 4530" 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="5009" y="4670">RD1</text>
<polygon fill="#ffff80" points="5128 4530, 5103 4555, 5103 4605, 5128 4630, 5153 4605, 5153 4555, 5128 4530" 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="5109" y="4670">RD2</text>
<polygon fill="#ffff80" points="5228 4530, 5203 4555, 5203 4605, 5228 4630, 5253 4605, 5253 4555, 5228 4530" 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="5209" y="4670">RD3</text>
<polygon fill="#ffff80" points="5728 4530, 5703 4555, 5703 4605, 5728 4630, 5753 4605, 5753 4555, 5728 4530" 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="5709" y="4670">S0</text>
<polygon fill="#ffff80" points="5828 4530, 5803 4555, 5803 4605, 5828 4630, 5853 4605, 5853 4555, 5828 4530" 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="5809" y="4670">S1</text>
<polygon fill="#ffff80" points="5928 4530, 5903 4555, 5903 4605, 5928 4630, 5953 4605, 5953 4555, 5928 4530" 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="5909" y="4670">S2</text>
<polygon fill="#ffff80" points="6328 4530, 6303 4555, 6303 4605, 6328 4630, 6353 4605, 6353 4555, 6328 4530" 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" transform="rotate(90 6328 4651)" x="6328" y="4651">SHIFT0</text>
<polygon fill="#ffff80" points="6428 4530, 6403 4555, 6403 4605, 6428 4630, 6453 4605, 6453 4555, 6428 4530" 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" transform="rotate(90 6428 4653)" x="6428" y="4653">SHIFT1</text>
<polygon fill="#ffff80" points="6528 4530, 6503 4555, 6503 4605, 6528 4630, 6553 4605, 6553 4555, 6528 4530" 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" transform="rotate(90 6528 4653)" x="6528" y="4653">DIR</text>
<polygon fill="#ffff80" points="6128 6330, 6103 6305, 6103 6255, 6128 6230, 6153 6255, 6153 6305, 6128 6330" 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" transform="rotate(-90 6118 6218)" x="6118" y="6218">PC_A_GATE_EN</text>
<polygon fill="#ffff80" points="7128 4830, 7103 4805, 7053 4805, 7028 4830, 7053 4855, 7103 4855, 7128 4830" 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="6791" y="4830">MAR_EN</text>
<polygon fill="#ffff80" points="7128 5330, 7103 5305, 7053 5305, 7028 5330, 7053 5355, 7103 5355, 7128 5330" 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="6791" y="5330">J1</text>
<polygon fill="#ffff80" points="7128 5030, 7103 5005, 7053 5005, 7028 5030, 7053 5055, 7103 5055, 7128 5030" 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="6791" y="5030">REG_WR</text>
<polygon fill="#ffff80" points="7128 5130, 7103 5105, 7053 5105, 7028 5130, 7053 5155, 7103 5155, 7128 5130" 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="6791" y="5130">FLAG_EN</text>
<polygon fill="#ffff80" points="7128 5230, 7103 5205, 7053 5205, 7028 5230, 7053 5255, 7103 5255, 7128 5230" 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="6791" y="5230">J0</text>
<polygon fill="#ffff80" points="7128 5430, 7103 5405, 7053 5405, 7028 5430, 7053 5455, 7103 5455, 7128 5430" 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="6791" y="5430">J2</text>
<polygon fill="#ffff80" points="6228 6330, 6203 6305, 6203 6255, 6228 6230, 6253 6255, 6253 6305, 6228 6330" 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" transform="rotate(-90 6228 6218)" x="6228" y="6218">MAR_GATE_EN</text>
<polygon fill="#ffff80" points="7128 4930, 7103 4905, 7053 4905, 7028 4930, 7053 4955, 7103 4955, 7128 4930" 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="6789" y="4930">WR_OUT</text>
<polygon fill="#ffff80" points="7128 5530, 7103 5505, 7053 5505, 7028 5530, 7053 5555, 7103 5555, 7128 5530" 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="6799" y="5520">J_EN</text>
<polygon fill="#ffff80" points="7128 5630, 7103 5605, 7053 5605, 7028 5630, 7053 5655, 7103 5655, 7128 5630" 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="6799" y="5630">REG_READ</text>
<polygon fill="#ffff80" points="6028 4530, 6003 4555, 6003 4605, 6028 4630, 6053 4605, 6053 4555, 6028 4530" 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="6009" y="4670">S3</text>
<polygon fill="#ffff80" points="6128 4530, 6103 4555, 6103 4605, 6128 4630, 6153 4605, 6153 4555, 6128 4530" 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="6119" y="4870">C</text>
<polygon fill="#ffff80" points="6228 4530, 6203 4555, 6203 4605, 6228 4630, 6253 4605, 6253 4555, 6228 4530" 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="6219" y="4670">M</text>
<polygon fill="#ffff80" points="7128 4730, 7103 4705, 7053 4705, 7028 4730, 7053 4755, 7103 4755, 7128 4730" 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="6789" y="4730">W_EN</text>
<polygon fill="#ffff80" points="4528 5530, 4553 5505, 4603 5505, 4628 5530, 4603 5555, 4553 5555, 4528 5530" 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="4640" y="5530">CLK</text>
<polygon fill="#ffff80" points="4528 5430, 4553 5405, 4603 5405, 4628 5430, 4603 5455, 4553 5455, 4528 5430" 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="4640" y="5430">RESET</text>
<polygon fill="#ffff80" points="5928 6330, 5903 6305, 5903 6255, 5928 6230, 5953 6255, 5953 6305, 5928 6330" 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" transform="rotate(-90 5928 6218)" x="5928" y="6218">PC_ADD</text>
<polygon fill="#ffff80" points="7128 5730, 7103 5705, 7053 5705, 7028 5730, 7053 5755, 7103 5755, 7128 5730" 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="6799" y="5730">FLAG_GATE_EN</text>
<polygon fill="#ffff80" points="6028 6330, 6003 6305, 6003 6255, 6028 6230, 6053 6255, 6053 6305, 6028 6330" 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" transform="rotate(-90 6028 6218)" x="6028" y="6218">MIO</text>
<polygon fill="#ffff80" points="4528 5230, 4553 5205, 4603 5205, 4628 5230, 4603 5255, 4553 5255, 4528 5230" 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="4640" y="5230">INTR</text>
<polygon fill="#ffff80" points="5328 4530, 5303 4555, 5303 4605, 5328 4630, 5353 4605, 5353 4555, 5328 4530" 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="5299" y="4670">RS0</text>
<polygon fill="#ffff80" points="5428 4530, 5403 4555, 5403 4605, 5428 4630, 5453 4605, 5453 4555, 5428 4530" 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="5399" y="4670">RS1</text>
<polygon fill="#ffff80" points="5528 4530, 5503 4555, 5503 4605, 5528 4630, 5553 4605, 5553 4555, 5528 4530" 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="5499" y="4670">RS2</text>
<polygon fill="#ffff80" points="5628 4530, 5603 4555, 5603 4605, 5628 4630, 5653 4605, 5653 4555, 5628 4530" 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="5599" y="4670">RS3</text>
<polygon fill="#ffff80" points="7128 4630, 7103 4605, 7053 4605, 7028 4630, 7053 4655, 7103 4655, 7128 4630" 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="6789" y="4640">A_EN</text>
<polygon fill="#ffff80" points="7128 5830, 7103 5805, 7053 5805, 7028 5830, 7053 5855, 7103 5855, 7128 5830" 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="6799" y="5830">PC_D_GATE_EN</text>
<polygon fill="#ffff80" points="7128 5930, 7103 5905, 7053 5905, 7028 5930, 7053 5955, 7103 5955, 7128 5930" 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="6799" y="5930">READ_OUT</text>
<polygon fill="#ffff80" points="7128 6030, 7103 6005, 7053 6005, 7028 6030, 7053 6055, 7103 6055, 7128 6030" 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="6799" y="6030">SHIFT_GATE_EN</text>
<polygon fill="#ffff80" points="7128 6130, 7103 6105, 7053 6105, 7028 6130, 7053 6155, 7103 6155, 7128 6130" 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="6729" y="6130">AL_FLAG_GATE_EN</text>
<polygon fill="#ffff80" points="7128 6230, 7103 6255, 7053 6255, 7028 6230, 7053 6205, 7103 6205, 7128 6230" 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="6920" y="6230">HLDA</text>
<polygon fill="#ffff80" points="4528 5130, 4553 5105, 4603 5105, 4628 5130, 4603 5155, 4553 5155, 4528 5130" 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="4640" y="5130">IF</text>
<polygon fill="#ffff80" points="5728 6330, 5703 6305, 5703 6255, 5728 6230, 5753 6255, 5753 6305, 5728 6330" 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" transform="rotate(-90 5728 6218)" x="5728" y="6218">INTA</text>
<polygon fill="#ffff80" points="5628 6330, 5603 6305, 5603 6255, 5628 6230, 5653 6255, 5653 6305, 5628 6330" 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" transform="rotate(-90 5628 6218)" x="5628" y="6218">CLI</text>
<polygon fill="#ffff80" points="5528 6330, 5503 6305, 5503 6255, 5528 6230, 5553 6255, 5553 6305, 5528 6330" 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" transform="rotate(-90 5528 6218)" x="5528" y="6218">STI</text>
<polygon fill="#ffff80" points="6428 6330, 6403 6305, 6403 6255, 6428 6230, 6453 6255, 6453 6305, 6428 6330" 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" transform="rotate(-90 6428 6218)" x="6428" y="6218">AL_GATE_EN</text>
<polygon fill="#ffff80" points="5428 6330, 5403 6305, 5403 6255, 5428 6230, 5453 6255, 5453 6305, 5428 6330" 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" transform="rotate(-90 5428 6218)" x="5428" y="6218">RD_READ</text>
<polygon fill="#ffff80" points="6328 6330, 6303 6305, 6303 6255, 6328 6230, 6353 6255, 6353 6305, 6328 6330" 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" transform="rotate(-90 6328 6218)" x="6328" y="6218">SHIFT_FLAG_GATE_EN</text>
<polygon fill="#ffff80" points="5828 6330, 5803 6305, 5803 6255, 5828 6230, 5853 6255, 5853 6305, 5828 6330" 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" transform="rotate(-90 5828 6218)" x="5828" y="6218">IR_LOAD</text>
<polygon fill="#ffff80" points="4528 5330, 4553 5305, 4603 5305, 4628 5330, 4603 5355, 4553 5355, 4528 5330" 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="4640" y="5330">HOLD</text>
<polyline fill="none" points="2888 3850, 2708 3850" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2888 3880, 2708 3880" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="4528 5530, 2128 5530, 228 5530" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="4528 5430, 2128 5430, 228 5430" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="78 5530, 78 5505, 203 5505, 228 5530, 203 5555, 78 5555, 78 5530" 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="78" y="5530">CLK</text>
<polygon fill="#ffff80" points="78 5430, 78 5405, 203 5405, 228 5430, 203 5455, 78 5455, 78 5430" 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="78" y="5430">RESET</text>
<polygon fill="#ffff80" points="78 5230, 78 5205, 203 5205, 228 5230, 203 5255, 78 5255, 78 5230" 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="78" y="5230">INTR</text>
<polygon fill="#008000" points="78 6220, 78 6195, 203 6195, 228 6220, 203 6245, 78 6245, 78 6220" 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="78" y="6220">READY</text>
<polygon fill="#ffff80" points="78 5330, 78 5305, 203 5305, 228 5330, 203 5355, 78 5355, 78 5330" 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="78" y="5330">HOLD</text>
<polygon fill="#ffff80" points="7828 3530, 7828 3505, 8003 3505, 8028 3530, 8003 3555, 7828 3555, 7828 3530" 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="7828" y="3530">A0</text>
<polygon fill="#ffff80" points="7828 3590, 7828 3565, 8003 3565, 8028 3590, 8003 3615, 7828 3615, 7828 3590" 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="7828" y="3590">A1</text>
<polygon fill="#ffff80" points="7828 3650, 7828 3625, 8003 3625, 8028 3650, 8003 3675, 7828 3675, 7828 3650" 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="7828" y="3650">A2</text>
<polygon fill="#ffff80" points="7828 3710, 7828 3685, 8003 3685, 8028 3710, 8003 3735, 7828 3735, 7828 3710" 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="7828" y="3710">A3</text>
<polygon fill="#ffff80" points="7828 3770, 7828 3745, 8003 3745, 8028 3770, 8003 3795, 7828 3795, 7828 3770" 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="7828" y="3770">A4</text>
<polygon fill="#ffff80" points="7828 3830, 7828 3805, 8003 3805, 8028 3830, 8003 3855, 7828 3855, 7828 3830" 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="7828" y="3830">A5</text>
<polygon fill="#ffff80" points="7828 3890, 7828 3865, 8003 3865, 8028 3890, 8003 3915, 7828 3915, 7828 3890" 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="7828" y="3890">A6</text>
<polygon fill="#ffff80" points="7828 3950, 7828 3925, 8003 3925, 8028 3950, 8003 3975, 7828 3975, 7828 3950" 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="7828" y="3950">A7</text>
<polyline fill="none" points="7828 2410, 6878 2410" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 2470, 6878 2470" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 2530, 6878 2530" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 2590, 6878 2590" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 2650, 6878 2650" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 2710, 6878 2710" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 2770, 6878 2770" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 2830, 6878 2830" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 3530, 7378 3530, 6878 3530" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 3590, 7378 3590, 6878 3590" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 3650, 7378 3650, 6878 3650" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 3710, 7378 3710, 6878 3710" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 3770, 7378 3770, 6878 3770" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 3830, 7378 3830, 6878 3830" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 3890, 7378 3890, 6878 3890" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7828 3950, 7378 3950, 6878 3950" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="3580" y2="3530"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="3640" y2="3590"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="3700" y2="3650"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="3760" y2="3710"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="3820" y2="3770"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="3880" y2="3830"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="3940" y2="3890"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="4000" y2="3950"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="2880" y2="2830"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="2820" y2="2770"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="2760" y2="2710"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="2700" y2="2650"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="2640" y2="2590"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="2580" y2="2530"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="2520" y2="2470"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="6828" x2="6878" y1="2460" y2="2410"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="2410">DBUS0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="2470">DBUS1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="2530">DBUS2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="2590">DBUS3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="2650">DBUS4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="2710">DBUS5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="2770">DBUS6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="2830">DBUS7</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="3530">ABUS0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="3590">ABUS1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="3650">ABUS2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="3710">ABUS3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="3770">ABUS4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="3830">ABUS5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="3890">ABUS6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="35" font-weight="400" text-anchor="start" x="7028" y="3950">ABUS7</text>
<polygon fill="#ffff80" points="7828 4930, 7828 4905, 8003 4905, 8028 4930, 8003 4955, 7828 4955, 7828 4930" 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="7828" y="4930">WR_OUT</text>
<polygon fill="#ffff80" points="7828 5930, 7828 5905, 8003 5905, 8028 5930, 8003 5955, 7828 5955, 7828 5930" 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="7828" y="5930">READ_OUT</text>
<polygon fill="#ffff80" points="7828 6530, 7828 6505, 8003 6505, 8028 6530, 8003 6555, 7828 6555, 7828 6530" 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="7828" y="6530">MIO</text>
<polygon fill="#ffff80" points="7828 6630, 7828 6605, 8003 6605, 8028 6630, 8003 6655, 7828 6655, 7828 6630" 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="7828" y="6630">INTA</text>
<polygon fill="#ffff80" points="7828 6230, 7828 6205, 8003 6205, 8028 6230, 8003 6255, 7828 6255, 7828 6230" 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="7828" y="6230">HLDA</text>
<polygon fill="#008000" points="78 6120, 78 6095, 203 6095, 228 6120, 203 6145, 78 6145, 78 6120" 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="78" y="6120">NMI</text>
<polygon fill="#008000" points="78 6020, 78 5995, 203 5995, 228 6020, 203 6045, 78 6045, 78 6020" 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="78" y="6020">TESET</text>
<polygon fill="#008000" points="78 5720, 78 5695, 203 5695, 228 5720, 203 5745, 78 5745, 78 5720" 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="78" y="5720">ALE</text>
<polygon fill="#008000" points="78 5820, 78 5795, 203 5795, 228 5820, 203 5845, 78 5845, 78 5820" 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="78" y="5820">DEN</text>
<polygon fill="#008000" points="78 5920, 78 5895, 203 5895, 228 5920, 203 5945, 78 5945, 78 5920" 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="78" y="5920">DTR</text>
<polygon fill="#ffff80" points="7828 2410, 7828 2385, 8003 2385, 8028 2410, 8003 2435, 7828 2435, 7828 2410" 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="7828" y="2410">D0</text>
<polygon fill="#ffff80" points="7828 2470, 7828 2445, 8003 2445, 8028 2470, 8003 2495, 7828 2495, 7828 2470" 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="7828" y="2470">D1</text>
<polygon fill="#ffff80" points="7828 2530, 7828 2505, 8003 2505, 8028 2530, 8003 2555, 7828 2555, 7828 2530" 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="7828" y="2530">D2</text>
<polygon fill="#ffff80" points="7828 2590, 7828 2565, 8003 2565, 8028 2590, 8003 2615, 7828 2615, 7828 2590" 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="7828" y="2590">D3</text>
<polygon fill="#ffff80" points="7828 2650, 7828 2625, 8003 2625, 8028 2650, 8003 2675, 7828 2675, 7828 2650" 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="7828" y="2650">D4</text>
<polygon fill="#ffff80" points="7828 2710, 7828 2685, 8003 2685, 8028 2710, 8003 2735, 7828 2735, 7828 2710" 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="7828" y="2710">D5</text>
<polygon fill="#ffff80" points="7828 2770, 7828 2745, 8003 2745, 8028 2770, 8003 2795, 7828 2795, 7828 2770" 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="7828" y="2770">D6</text>
<polygon fill="#ffff80" points="7828 2830, 7828 2805, 8003 2805, 8028 2830, 8003 2855, 7828 2855, 7828 2830" 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="7828" y="2830">D7</text>
<polyline fill="none" points="5828 2630, 5628 2630, 5628 3130" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<rect fill="#80ff80" height="900" stroke="#800000" stroke-width="1" width="700" x="1728" y="1830"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="微软雅黑" font-size="200" font-weight="700" text-anchor="start" x="1728" y="1730">BRH</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1728" y="1780">BRANCH.dlsche</text>
<polygon fill="#ffff80" points="1728 2430, 1753 2405, 1803 2405, 1828 2430, 1803 2455, 1753 2455, 1728 2430" 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="1838" y="2430">J0</text>
<polygon fill="#ffff80" points="1728 2530, 1753 2505, 1803 2505, 1828 2530, 1803 2555, 1753 2555, 1728 2530" 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="1838" y="2530">J1</text>
<polygon fill="#ffff80" points="1728 2630, 1753 2605, 1803 2605, 1828 2630, 1803 2655, 1753 2655, 1728 2630" 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="1838" y="2630">J2</text>
<polygon fill="#ffff80" points="1728 1930, 1753 1905, 1803 1905, 1828 1930, 1803 1955, 1753 1955, 1728 1930" 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="1838" y="1930">J_EN</text>
<polygon fill="#ffff80" points="1728 2030, 1753 2005, 1803 2005, 1828 2030, 1803 2055, 1753 2055, 1728 2030" 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="1838" y="2030">CF</text>
<polygon fill="#ffff80" points="1728 2230, 1753 2205, 1803 2205, 1828 2230, 1803 2255, 1753 2255, 1728 2230" 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="1838" y="2230">ZF</text>
<polygon fill="#ffff80" points="1728 2130, 1753 2105, 1803 2105, 1828 2130, 1803 2155, 1753 2155, 1728 2130" 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="1838" y="2130">OF</text>
<polygon fill="#ffff80" points="1728 2330, 1753 2305, 1803 2305, 1828 2330, 1803 2355, 1753 2355, 1728 2330" 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="1838" y="2330">SF</text>
<polygon fill="#ffff80" points="2428 2430, 2403 2405, 2353 2405, 2328 2430, 2353 2455, 2403 2455, 2428 2430" 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="2148" y="2430">J_PC_LOAD</text>
<polyline fill="none" points="7628 3130, 7328 3130, 6828 3130, 2868 3130, 228 3130, 28 3130" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polyline fill="none" points="7628 4130, 7328 4130, 3328 4130, 228 4130, 28 4130" stroke="#ff8057" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polyline fill="none" points="6828 4130, 6828 3560" stroke="#ff8057" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<rect fill="#80ff80" height="800" stroke="#800000" stroke-width="1" width="700" x="428" y="1930"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="微软雅黑" font-size="200" font-weight="700" text-anchor="start" x="418" y="1810">FLAG</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="428" y="1880">FLAG.dlsche</text>
<polygon fill="#ffff80" points="428 2030, 453 2005, 503 2005, 528 2030, 503 2055, 453 2055, 428 2030" 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="538" y="2030">FLAG_EN</text>
<polygon fill="#ffff80" points="428 2130, 453 2105, 503 2105, 528 2130, 503 2155, 453 2155, 428 2130" 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="538" y="2130">STI</text>
<polygon fill="#ffff80" points="428 2230, 453 2205, 503 2205, 528 2230, 503 2255, 453 2255, 428 2230" 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="538" y="2230">CLI</text>
<polygon fill="#ffff80" points="428 2330, 453 2305, 503 2305, 528 2330, 503 2355, 453 2355, 428 2330" 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="538" y="2330">FLAG_GATE_EN</text>
<polygon fill="#ffff80" points="428 2430, 453 2405, 503 2405, 528 2430, 503 2455, 453 2455, 428 2430" 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="538" y="2430">CLK</text>
<polygon fill="#ffff80" points="428 2530, 453 2505, 503 2505, 528 2530, 503 2555, 453 2555, 428 2530" 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="538" y="2530">RESET</text>
<polygon fill="#ffff80" points="428 2630, 453 2605, 503 2605, 528 2630, 503 2655, 453 2655, 428 2630" 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="538" y="2630">DBUS[7..0]</text>
<polygon fill="#ffff80" points="1128 2030, 1103 2005, 1053 2005, 1028 2030, 1053 2055, 1103 2055, 1128 2030" 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="918" y="2030">CF</text>
<polygon fill="#ffff80" points="1128 2130, 1103 2105, 1053 2105, 1028 2130, 1053 2155, 1103 2155, 1128 2130" 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="918" y="2130">OF</text>
<polygon fill="#ffff80" points="1128 2230, 1103 2205, 1053 2205, 1028 2230, 1053 2255, 1103 2255, 1128 2230" 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="918" y="2230">ZF</text>
<polygon fill="#ffff80" points="1128 2330, 1103 2305, 1053 2305, 1028 2330, 1053 2355, 1103 2355, 1128 2330" 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="918" y="2330">SF</text>
<polygon fill="#ffff80" points="1128 2430, 1103 2405, 1053 2405, 1028 2430, 1053 2455, 1103 2455, 1128 2430" 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="918" y="2430">IF</text>
<rect fill="#80ff80" height="1900" stroke="#800000" stroke-width="1" width="700" x="4628" y="830"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="微软雅黑" font-size="200" font-weight="700" text-anchor="start" x="4628" y="730">ALU</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="4628" y="780">ALU.dlsche</text>
<polygon fill="#ffff80" points="4628 930, 4653 905, 4703 905, 4728 930, 4703 955, 4653 955, 4628 930" 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="4738" y="930">W_EN</text>
<polygon fill="#ffff80" points="4628 1030, 4653 1005, 4703 1005, 4728 1030, 4703 1055, 4653 1055, 4628 1030" 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="4738" y="1030">A_EN</text>
<polygon fill="#ffff80" points="4628 1130, 4653 1105, 4703 1105, 4728 1130, 4703 1155, 4653 1155, 4628 1130" 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="4738" y="1130">CLK</text>
<polygon fill="#ffff80" points="4628 1230, 4653 1205, 4703 1205, 4728 1230, 4703 1255, 4653 1255, 4628 1230" 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="4738" y="1230">C</text>
<polygon fill="#ffff80" points="4628 1330, 4653 1305, 4703 1305, 4728 1330, 4703 1355, 4653 1355, 4628 1330" 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="4738" y="1330">M</text>
<polygon fill="#ffff80" points="4628 1430, 4653 1405, 4703 1405, 4728 1430, 4703 1455, 4653 1455, 4628 1430" 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="4738" y="1430">DIR</text>
<polygon fill="#ffff80" points="4628 1530, 4653 1505, 4703 1505, 4728 1530, 4703 1555, 4653 1555, 4628 1530" 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="4738" y="1530">SHIFT0</text>
<polygon fill="#ffff80" points="4628 1630, 4653 1605, 4703 1605, 4728 1630, 4703 1655, 4653 1655, 4628 1630" 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="4738" y="1630">SHIFT1</text>
<polygon fill="#ffff80" points="4628 1730, 4653 1705, 4703 1705, 4728 1730, 4703 1755, 4653 1755, 4628 1730" 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="4738" y="1730">SHIFT_GATE_EN</text>
<polygon fill="#ffff80" points="4628 1830, 4653 1805, 4703 1805, 4728 1830, 4703 1855, 4653 1855, 4628 1830" 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="4738" y="1830">AL_GATE_EN</text>
<polygon fill="#ffff80" points="4628 1930, 4653 1905, 4703 1905, 4728 1930, 4703 1955, 4653 1955, 4628 1930" 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="4738" y="1930">CF</text>
<polygon fill="#ffff80" points="4628 2030, 4653 2005, 4703 2005, 4728 2030, 4703 2055, 4653 2055, 4628 2030" 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="4738" y="2030">S0</text>
<polygon fill="#ffff80" points="4628 2130, 4653 2105, 4703 2105, 4728 2130, 4703 2155, 4653 2155, 4628 2130" 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="4738" y="2130">S1</text>
<polygon fill="#ffff80" points="4628 2230, 4653 2205, 4703 2205, 4728 2230, 4703 2255, 4653 2255, 4628 2230" 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="4738" y="2230">S2</text>
<polygon fill="#ffff80" points="4628 2330, 4653 2305, 4703 2305, 4728 2330, 4703 2355, 4653 2355, 4628 2330" 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="4738" y="2330">S3</text>
<polygon fill="#ffff80" points="4628 2430, 4653 2405, 4703 2405, 4728 2430, 4703 2455, 4653 2455, 4628 2430" 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="4738" y="2430">AL_FLAG_GATE_EN</text>
<polygon fill="#ffff80" points="4628 2530, 4653 2505, 4703 2505, 4728 2530, 4703 2555, 4653 2555, 4628 2530" 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="4738" y="2530">SHIFT_FLAG_GATE_EN</text>
<polygon fill="#ffff80" points="4628 2630, 4653 2605, 4703 2605, 4728 2630, 4703 2655, 4653 2655, 4628 2630" 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="4738" y="2630">DBUS[7..0]</text>
<rect fill="#80ff80" height="1400" stroke="#800000" stroke-width="1" width="700" x="5828" y="1330"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="微软雅黑" font-size="200" font-weight="700" text-anchor="start" x="5828" y="1230">REG</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="5828" y="1280">REGS.dlsche</text>
<polygon fill="#ffff80" points="5828 1430, 5853 1405, 5903 1405, 5928 1430, 5903 1455, 5853 1455, 5828 1430" 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="5938" y="1430">CLK</text>
<polygon fill="#ffff80" points="5828 1530, 5853 1505, 5903 1505, 5928 1530, 5903 1555, 5853 1555, 5828 1530" 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="5938" y="1530">REG_WR</text>
<polygon fill="#ffff80" points="5828 1630, 5853 1605, 5903 1605, 5928 1630, 5903 1655, 5853 1655, 5828 1630" 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="5938" y="1630">REG_READ</text>
<polygon fill="#ffff80" points="5828 1730, 5853 1705, 5903 1705, 5928 1730, 5903 1755, 5853 1755, 5828 1730" 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="5938" y="1730">RS0</text>
<polygon fill="#ffff80" points="5828 1830, 5853 1805, 5903 1805, 5928 1830, 5903 1855, 5853 1855, 5828 1830" 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="5938" y="1830">RS1</text>
<polygon fill="#ffff80" points="5828 1930, 5853 1905, 5903 1905, 5928 1930, 5903 1955, 5853 1955, 5828 1930" 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="5938" y="1930">RS2</text>
<polygon fill="#ffff80" points="5828 2030, 5853 2005, 5903 2005, 5928 2030, 5903 2055, 5853 2055, 5828 2030" 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="5938" y="2030">RS3</text>
<polygon fill="#ffff80" points="5828 2130, 5853 2105, 5903 2105, 5928 2130, 5903 2155, 5853 2155, 5828 2130" 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="5938" y="2130">RD0</text>
<polygon fill="#ffff80" points="5828 2230, 5853 2205, 5903 2205, 5928 2230, 5903 2255, 5853 2255, 5828 2230" 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="5938" y="2230">RD1</text>
<polygon fill="#ffff80" points="5828 2330, 5853 2305, 5903 2305, 5928 2330, 5903 2355, 5853 2355, 5828 2330" 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="5938" y="2330">RD2</text>
<polygon fill="#ffff80" points="5828 2430, 5853 2405, 5903 2405, 5928 2430, 5903 2455, 5853 2455, 5828 2430" 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="5938" y="2430">RD3</text>
<polygon fill="#ffff80" points="5828 2530, 5853 2505, 5903 2505, 5928 2530, 5903 2555, 5853 2555, 5828 2530" 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="5938" y="2530">RD_READ</text>
<polygon fill="#ffff80" points="5828 2630, 5853 2605, 5903 2605, 5928 2630, 5903 2655, 5853 2655, 5828 2630" 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="5938" y="2630">DBUS[7..0]</text>
<rect fill="#80ff80" height="1000" stroke="#800000" stroke-width="1" width="700" x="2928" y="1730"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="微软雅黑" font-size="200" font-weight="700" text-anchor="start" x="2928" y="1630">PC</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2928" y="1680">PC.dlsche</text>
<polygon fill="#ffff80" points="2928 1830, 2953 1805, 3003 1805, 3028 1830, 3003 1855, 2953 1855, 2928 1830" 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="3038" y="1830">RESET</text>
<polygon fill="#ffff80" points="2928 1930, 2953 1905, 3003 1905, 3028 1930, 3003 1955, 2953 1955, 2928 1930" 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="3038" y="1930">CLK</text>
<polygon fill="#ffff80" points="2928 2030, 2953 2005, 3003 2005, 3028 2030, 3003 2055, 2953 2055, 2928 2030" 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="3038" y="2030">PC_A_GATE_EN</text>
<polygon fill="#ffff80" points="2928 2130, 2953 2105, 3003 2105, 3028 2130, 3003 2155, 2953 2155, 2928 2130" 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="3038" y="2130">PC_D_GATE_EN</text>
<polygon fill="#ffff80" points="2928 2230, 2953 2205, 3003 2205, 3028 2230, 3003 2255, 2953 2255, 2928 2230" 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="3038" y="2230">PC_ADD</text>
<polygon fill="#ffff80" points="2928 2430, 2953 2405, 3003 2405, 3028 2430, 3003 2455, 2953 2455, 2928 2430" 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="3038" y="2430">J_PC_LOAD</text>
<polygon fill="#ffff80" points="2928 2530, 2953 2505, 3003 2505, 3028 2530, 3003 2555, 2953 2555, 2928 2530" 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="3038" y="2530">IR_LOAD</text>
<polygon fill="#ffff80" points="2928 2630, 2953 2605, 3003 2605, 3028 2630, 3003 2655, 2953 2655, 2928 2630" 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="3038" y="2630">DBUS[7..0]</text>
<polygon fill="#ffff80" points="3628 2430, 3603 2405, 3553 2405, 3528 2430, 3553 2455, 3603 2455, 3628 2430" 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="3358" y="2430">ABUS[7..0]</text>
<polyline fill="none" points="3628 2430, 3828 2430, 3828 3630, 3828 4130" stroke="#ff8057" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polyline fill="none" points="6828 2460, 6828 3130" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polyline fill="none" points="2788 3740, 2788 3130, 2788 2630, 2928 2630" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polyline fill="none" points="428 2630, 228 2630, 228 3130" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="微软雅黑" font-size="500" font-weight="700" text-anchor="start" x="398" y="610">8086微处理器</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3428" x2="3378" y1="3580" y2="3580"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="3461" y="3580">A0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3428" x2="3378" y1="3610" y2="3610"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="3461" y="3610">A1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3428" x2="3378" y1="3640" y2="3640"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="3461" y="3640">A2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3428" x2="3378" y1="3670" y2="3670"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="3461" y="3670">A3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3428" x2="3378" y1="3700" y2="3700"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="3461" y="3700">A4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3428" x2="3378" y1="3730" y2="3730"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="3461" y="3730">A5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3428" x2="3378" y1="3760" y2="3760"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="3461" y="3760">A6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3428" x2="3378" y1="3790" y2="3790"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="3461" y="3790">A7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3578" x2="3628" y1="3580" y2="3580"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3545" y="3580">D0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3578" x2="3628" y1="3610" y2="3610"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3545" y="3610">D1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3578" x2="3628" y1="3640" y2="3640"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3545" y="3640">D2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3578" x2="3628" y1="3670" y2="3670"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3545" y="3670">D3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3578" x2="3628" y1="3700" y2="3700"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3545" y="3700">D4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3578" x2="3628" y1="3730" y2="3730"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3545" y="3730">D5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3578" x2="3628" y1="3760" y2="3760"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3545" y="3760">D6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3578" x2="3628" y1="3790" y2="3790"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3545" y="3790">D7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3418" x2="3378" y1="3850" y2="3850"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="3472" y="3849">^EN</text>
<rect fill="#a0c0ff" fill-opacity="0.5" height="350" stroke="#000000" stroke-width="5" width="150" x="3428" y="3540"/>
<circle cx="3423" cy="3850" 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="3438" y="3530">MAR_gate</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="3428" y="3940">BUS_TRANS8</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2938" x2="2888" y1="3580" y2="3580"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2971" y="3580">D0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2938" x2="2888" y1="3610" y2="3610"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2971" y="3610">D1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2938" x2="2888" y1="3640" y2="3640"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2971" y="3640">D2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2938" x2="2888" y1="3670" y2="3670"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2971" y="3670">D3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2938" x2="2888" y1="3700" y2="3700"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2971" y="3700">D4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2938" x2="2888" y1="3730" y2="3730"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2971" y="3730">D5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2938" x2="2888" y1="3760" y2="3760"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2971" y="3760">D6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2938" x2="2888" y1="3790" y2="3790"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2971" y="3790">D7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3188" x2="3238" y1="3580" y2="3580"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3155" y="3580">Q0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3188" x2="3238" y1="3610" y2="3610"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3155" y="3610">Q1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3188" x2="3238" y1="3640" y2="3640"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3155" y="3640">Q2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3188" x2="3238" y1="3670" y2="3670"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3155" y="3670">Q3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3188" x2="3238" y1="3700" y2="3700"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3155" y="3700">Q4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3188" x2="3238" y1="3730" y2="3730"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3155" y="3730">Q5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3188" x2="3238" y1="3760" y2="3760"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3155" y="3760">Q6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="3188" x2="3238" y1="3790" y2="3790"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="3155" y="3790">Q7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2928" x2="2888" y1="3850" y2="3850"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2991" y="3850">^EN</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2938" x2="2888" y1="3880" y2="3880"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2991" y="3880">CLK</text>
<rect fill="#c0dcc0" fill-opacity="0.5" height="400" stroke="#000000" stroke-width="5" width="250" x="2938" y="3530"/>
<polyline fill="none" points="2938 3870, 2948 3880, 2938 3890" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<circle cx="2933" cy="3850" fill="#ffffff" r="5" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="60" font-weight="700" text-anchor="start" x="2978" y="3520">MAR</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="2998" y="3970">REG_EN8</text>
<polyline fill="none" points="4528 5230, 2128 5230, 228 5230" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7128 4930, 7828 4930" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="6028 6330, 6028 6530, 7828 6530" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="5728 6330, 5728 6630, 7828 6630" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7128 5930, 7828 5930" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="7128 6230, 7828 6230" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="4528 5330, 2128 5330, 228 5330" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="微软雅黑" font-size="65" font-weight="700" text-anchor="start" x="548" y="950">①CU模块的左侧是输入接口,其余的都是CU的输出接口</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="微软雅黑" font-size="65" font-weight="700" text-anchor="start" x="548" y="1070">②绿色的端口没有实际意义,只用于芯片管脚布局</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="2438" y="5110">中断允许标志,当IF=1时,允许中断;当IF=0时,禁止中断</text>
<polyline fill="none" points="2428 2430, 2928 2430" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1128 2030, 1728 2030" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1128 2130, 1728 2130" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1128 2230, 1728 2230" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1128 2330, 1728 2330" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="1228" y="2030">进位标志</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="1228" y="2130">溢出标志</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="1228" y="2230">零标志</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="1228" y="2330">符号为正标志</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="2528" y="2430">指令转移信号</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="微软雅黑" font-size="65" font-weight="700" text-anchor="start" x="548" y="1200">③CU模块的输出作为其他模块的控制信号,名称相同的模块接口相连。</text>
<polyline fill="none" points="1128 2430, 1228 2430, 1228 5130, 4528 5130" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="4528 4830, 4228 4830, 4228 3130, 4228 2630, 4628 2630" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<circle cx="6828" cy="3130" fill="#000080" r="25" stroke="#000080" stroke-width="5"/>
<circle cx="5628" cy="3130" fill="#000080" r="25" stroke="#000080" stroke-width="5"/>
<circle cx="2788" cy="3130" fill="#000080" r="25" stroke="#000080" stroke-width="5"/>
<circle cx="3828" cy="4130" fill="#000080" r="25" stroke="#000080" stroke-width="5"/>
<circle cx="228" cy="3130" fill="#000080" r="25" stroke="#000080" stroke-width="5"/>
<circle cx="6828" cy="4130" fill="#000080" r="25" stroke="#000080" stroke-width="5"/>
<circle cx="4228" cy="3130" fill="#000080" r="25" stroke="#000080" stroke-width="5"/>
</svg>
添加文件
添加文件
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
添加文件
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<svg height="2063" version="1.1" width="3193" xmlns="http://www.w3.org/2000/svg">
<polygon fill="#ffff80" points="20 1190, 20 1175, 155 1175, 170 1190, 155 1205, 20 1205, 20 1190" 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="20" y="1190">J0</text>
<polygon fill="#ffff80" points="20 1220, 20 1205, 155 1205, 170 1220, 155 1235, 20 1235, 20 1220" 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="20" y="1220">J1</text>
<polygon fill="#ffff80" points="20 1250, 20 1235, 155 1235, 170 1250, 155 1265, 20 1265, 20 1250" 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="20" y="1250">J2</text>
<polygon fill="#ffff80" points="20 1390, 20 1365, 145 1365, 170 1390, 145 1415, 20 1415, 20 1390" 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="20" y="1390">J_EN</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="470" x2="420" y1="1290" y2="1290"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="516" y="1289">G1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="443" y="1289">6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="460" x2="420" y1="1320" y2="1320"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="540" y="1319">^G2A</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="443" y="1321">4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="460" x2="420" y1="1350" y2="1350"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="540" y="1349">^G2B</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="442" y="1350">5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="470" x2="420" y1="1190" y2="1190"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="497" y="1190">A</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="430" y="1189">1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="470" x2="420" y1="1220" y2="1220"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="503" y="1220">B</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="444" y="1220">2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="470" x2="420" y1="1250" y2="1250"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="497" y="1250">C</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="431" y="1250">3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="630" x2="670" y1="1170" y2="1170"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="591" y="1167">Y0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="639" y="1170">15</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="630" x2="670" y1="1200" y2="1200"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="591" y="1197">Y1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="640" y="1200">14</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="630" x2="670" y1="1230" y2="1230"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="591" y="1227">Y2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="640" y="1230">13</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="630" x2="670" y1="1260" y2="1260"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="591" y="1257">Y3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="640" y="1260">12</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="630" x2="670" y1="1290" y2="1290"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="591" y="1287">Y4</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="640" y="1290">11</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="630" x2="670" y1="1320" y2="1320"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="591" y="1317">Y5</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="640" y="1320">10</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="630" x2="670" y1="1350" y2="1350"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="591" y="1347">Y6</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="652" y="1350">9</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="630" x2="670" y1="1380" y2="1380"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="605" y="1379">Y7</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="667" y="1380">7</text>
<circle cx="465" cy="1350" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="625" cy="1230" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="625" cy="1261" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="626" cy="1290" fill="#ffffff" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="625" cy="1170" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="625" cy="1320" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="625" cy="1199" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="625" cy="1349" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="625" cy="1381" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="465" cy="1320" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<rect fill="#ffffff" fill-opacity="0.5" height="264" stroke="#000000" stroke-width="5" width="146" x="472" y="1136"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="535" y="1127">U1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="473" y="1442">74LS138D</text>
<polyline fill="none" points="420 1190, 170 1190" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="420 1220, 170 1220" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="420 1250, 170 1250" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="20 790, 20 765, 145 765, 170 790, 145 815, 20 815, 20 790" 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="20" y="790">CF</text>
<polygon fill="#ffff80" points="20 860, 20 835, 145 835, 170 860, 145 885, 20 885, 20 860" 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="20" y="860">ZF</text>
<polygon fill="#ffff80" points="20 940, 20 915, 145 915, 170 940, 145 965, 20 965, 20 940" 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="20" y="940">OF</text>
<polygon fill="#ffff80" points="20 1000, 20 975, 145 975, 170 1000, 145 1025, 20 1025, 20 1000" 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="20" y="1000">SF</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="230" x2="170" y1="1390" y2="1390"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="310" x2="370" y1="1390" y2="1390"/>
<circle cx="306" cy="1390" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="230 1340, 230 1440, 300 1390, 230 1340" 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="250" y="1354">U2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="230" y="1486">NOT</text>
<polyline fill="none" points="370 1390, 370 1290, 420 1290" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="670" y="1380">JMP</text>
<polygon fill="#ffff80" points="2970 1320, 2970 1295, 3145 1295, 3170 1320, 3145 1345, 2970 1345, 2970 1320" 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="2970" y="1320">J_PC_LOAD</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="670" y="1260">JA</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="670" y="1290">JB</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="670" y="1320">JG</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="670" y="1350">JL</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="670" y="1170">JE</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="670" y="1200">JNE</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="670" y="1230">JC</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="490" y2="490"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1290" x2="1220" y1="530" y2="530"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="570" y2="570"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1420" x2="1470" y1="530" y2="530"/>
<path d="M1277 480 C 1307 530, 1277 580, 1277 580" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1278 480, 1348 480" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1278 580, 1348 580" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1349 480 C 1395 480, 1420 530, 1419 530" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1348 580 C 1397 580, 1420 530, 1420 530" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1333" y="465">U3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1305" y="628">OR3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="490">JA</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="530">CF</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="570">ZF</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="1480" y="510">无符号高于则转移</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="690" y2="690"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1360" x2="1420" y1="690" y2="690"/>
<circle cx="1356" cy="690" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="1280 640, 1280 740, 1350 690, 1280 640" 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="1300" y="654">U4</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1280" y="786">NOT</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="690">CF</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1480" x2="1420" y1="690" y2="690"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1480" x2="1420" y1="750" y2="750"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1610" x2="1670" y1="720" y2="720"/>
<path d="M1476 674 C 1502 713, 1475 763, 1475 763, 1475 763, 1475 763, 1475 763" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1476 673, 1534 673" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1475 763, 1533 763" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1534 673 C 1586 673, 1610 720, 1610 720" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1532 763 C 1588 763, 1610 720, 1610 720" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1525" y="663">U5</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1513" y="814">OR</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1420" y="750">JB</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="1680" y="700">无符号低于则跳转</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="1690" y2="1690"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="1750" y2="1750"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1410" x2="1470" y1="1720" y2="1720"/>
<path d="M1276 1674 C 1302 1713, 1275 1763, 1275 1763, 1275 1763, 1275 1763, 1275 1763" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1276 1673, 1334 1673" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1275 1763, 1333 1763" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1334 1673 C 1386 1673, 1410 1720, 1410 1720" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1332 1763 C 1388 1763, 1410 1720, 1410 1720" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1325" y="1663">U6</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1313" y="1814">OR</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="1890" y2="1890"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="1950" y2="1950"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1410" x2="1470" y1="1920" y2="1920"/>
<path d="M1276 1874 C 1302 1913, 1275 1963, 1275 1963, 1275 1963, 1275 1963, 1275 1963" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1276 1873, 1334 1873" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1275 1963, 1333 1963" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1334 1873 C 1386 1873, 1410 1920, 1410 1920" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1332 1963 C 1388 1963, 1410 1920, 1410 1920" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1325" y="1863">U7</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1313" y="2014">OR</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="1690">JNE</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="1750">ZF</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="1890">JC</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1020" y="1950">CF</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1080" x2="1020" y1="1950" y2="1950"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1160" x2="1220" y1="1950" y2="1950"/>
<circle cx="1156" cy="1950" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="1080 1900, 1080 2000, 1150 1950, 1080 1900" 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="1100" y="1914">U9</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1080" y="2046">NOT</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="1490" y2="1490"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="1550" y2="1550"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1410" x2="1470" y1="1520" y2="1520"/>
<path d="M1276 1474 C 1302 1513, 1275 1563, 1275 1563, 1275 1563, 1275 1563, 1275 1563" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1276 1473, 1334 1473" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1275 1563, 1333 1563" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1334 1473 C 1386 1473, 1410 1520, 1410 1520" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1332 1563 C 1388 1563, 1410 1520, 1410 1520" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1325" y="1463">U10</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1313" y="1614">OR</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="1490">JE</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1080" x2="1020" y1="1550" y2="1550"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1160" x2="1220" y1="1550" y2="1550"/>
<circle cx="1156" cy="1550" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="1080 1500, 1080 1600, 1150 1550, 1080 1500" 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="1100" y="1514">U11</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1080" y="1646">NOT</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1020" y="1550">ZF</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="890" y2="890"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="940" y2="940"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1420" x2="1470" y1="910" y2="910"/>
<polyline fill="none" points="1289 868, 1339 868" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1286 959, 1337 959" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1340 868 C 1407 868, 1416 912, 1416 912" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1338 959 C 1406 959, 1416 913, 1416 913" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1287 868 C 1300 914, 1286 959, 1286 959" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1278 869" fill="none" stroke="#ff0000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1277 869 C 1286 916, 1277 959, 1277 959" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1323" y="860">U12</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1305" y="1003">XOR</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="890">SF</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="940">OF</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1470" y="970">ZF</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1720" y="1000">JG</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1530" x2="1470" y1="910" y2="910"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1530" x2="1470" y1="970" y2="970"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1660" x2="1720" y1="940" y2="940"/>
<path d="M1608 888 A 47 47 0 1 1 1608 981" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="5"/>
<polyline fill="none" points="1609 982, 1530 982, 1530 888, 1609 888" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1571" y="882">U13</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1554" y="1028">AND</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1780" x2="1720" y1="940" y2="940"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1780" x2="1720" y1="1000" y2="1000"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1910" x2="1970" y1="970" y2="970"/>
<path d="M1776 924 C 1802 963, 1775 1013, 1775 1013, 1775 1013, 1775 1013, 1775 1013" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1776 923, 1834 923" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1775 1013, 1833 1013" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1834 923 C 1886 923, 1910 970, 1910 970" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1832 1013 C 1888 1013, 1910 970, 1910 970" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1825" y="913">U14</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1813" y="1064">OR</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="1140">SF</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="1190">OF</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="1140" y2="1140"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1280" x2="1220" y1="1190" y2="1190"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1410" x2="1470" y1="1160" y2="1160"/>
<path d="M1319 1118 C 1386 1118, 1395 1162, 1395 1162" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1318 1209 C 1386 1209, 1396 1163, 1396 1163" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1289 1118, 1319 1118" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1286 1209, 1319 1209" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<circle cx="1403" cy="1161" fill="none" r="6" stroke="#000000" stroke-width="5"/>
<path d="M1287 1118 C 1300 1163, 1286 1209, 1286 1209" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1278 1118" fill="none" stroke="#ff0000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1277 1119 C 1287 1167, 1277 1209, 1277 1209" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1322" y="1109">U15</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1291" y="1253">XNOR</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1530" x2="1470" y1="1160" y2="1160"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1540" x2="1470" y1="1200" y2="1200"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1530" x2="1470" y1="1240" y2="1240"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1670" x2="1720" y1="1200" y2="1200"/>
<path d="M1527 1150 C 1557 1200, 1527 1250, 1527 1250" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1528 1150, 1598 1150" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1528 1250, 1598 1250" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1599 1150 C 1645 1150, 1670 1200, 1669 1200" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M1598 1250 C 1647 1250, 1670 1200, 1670 1200" fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1583" y="1135">U16</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1555" y="1298">OR3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1470" y="1200">ZF</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1470" y="1240">JL</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2380" x2="2320" y1="890" y2="890"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2380" x2="2320" y1="920" y2="920"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2380" x2="2320" y1="970" y2="970"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2380" x2="2320" y1="1000" y2="1000"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2510" x2="2570" y1="940" y2="940"/>
<polyline fill="none" points="2380 898, 2460 898" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M2459 898 A 47 47 0 1 1 2459 991" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="5"/>
<polyline fill="none" points="2380 880, 2380 1010" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2458 992, 2384 992" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="2411" y="873">U17</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="2389" y="1050">AND4</text>
<polyline fill="none" points="1470 530, 2320 530, 2320 890" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1670 720, 2220 720, 2220 920, 2320 920" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1970 970, 2320 970" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1720 1200, 2320 1200, 2320 1000" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2780" x2="2720" y1="1300" y2="1300"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2780" x2="2720" y1="1330" y2="1330"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2780" x2="2720" y1="1360" y2="1360"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2910" x2="2970" y1="1320" y2="1320"/>
<polyline fill="none" points="2780 1278, 2860 1278" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M2858 1278 A 47 47 0 1 1 2858 1371" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="5"/>
<polyline fill="none" points="2857 1372, 2782 1372" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2780 1264, 2780 1385" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="2820" y="1267">U19</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="2795" y="1423">AND3</text>
<polyline fill="none" points="2570 940, 2720 940, 2720 1300" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2570 1640, 2720 1640, 2720 1360" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2380" x2="2320" y1="1620" y2="1620"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2380" x2="2320" y1="1650" y2="1650"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2380" x2="2320" y1="1680" y2="1680"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2510" x2="2570" y1="1640" y2="1640"/>
<polyline fill="none" points="2380 1598, 2460 1598" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<path d="M2458 1598 A 47 47 0 1 1 2458 1691" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="5"/>
<polyline fill="none" points="2457 1692, 2382 1692" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2380 1584, 2380 1705" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="2420" y="1587">U8</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="2395" y="1743">AND3</text>
<polyline fill="none" points="1470 1520, 2320 1520, 2320 1620" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1470 1720, 2020 1720, 2020 1650, 2320 1650" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1470 1920, 2320 1920, 2320 1680" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2720 1330, 1220 1330, 1220 1380, 670 1380" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1220" y="1330">JMP</text>
<polyline fill="none" points="1220 530, 970 530, 970 1950, 1020 1950" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="170 790, 970 790" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1220 570, 990 570, 990 1750, 1220 1750" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1020 1550, 990 1550" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1470 1200, 990 1200" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1470 970, 990 970" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="170 860, 990 860" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1220 690, 970 690" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1220 940, 1010 940, 1010 1190, 1220 1190" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1010 940, 170 940" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1220 890, 1030 890, 1030 1140, 1220 1140" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="170 1000, 1030 1000" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1220 490, 920 490, 920 1260, 670 1260" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1420 750, 910 750, 910 1290, 670 1290" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1220 1890, 900 1890, 900 1230, 670 1230" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1220 1690, 890 1690, 890 1200, 670 1200" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1220 1490, 880 1490, 880 1170, 670 1170" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1470 1240, 1030 1240, 1030 1350, 670 1350" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1720 1000, 1050 1000, 1050 1320, 670 1320" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="微软雅黑" font-size="250" font-weight="700" text-anchor="start" x="830" y="310">转移指令模块</text>
<circle cx="970" cy="790" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="990" cy="1550" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="990" cy="1200" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="990" cy="970" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="990" cy="860" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="970" cy="690" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1010" cy="940" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1030" cy="1000" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
</svg>
添加文件
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
添加文件
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<svg height="1851" version="1.1" width="2670" xmlns="http://www.w3.org/2000/svg">
<polygon fill="#ffff80" points="2120 308, 2120 283, 2245 283, 2270 308, 2245 333, 2120 333, 2120 308" 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="2120" y="308">CF</text>
<polygon fill="#ffff80" points="2120 368, 2120 343, 2245 343, 2270 368, 2245 393, 2120 393, 2120 368" 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="2120" y="368">OF</text>
<polygon fill="#ffff80" points="2120 428, 2120 403, 2245 403, 2270 428, 2245 453, 2120 453, 2120 428" 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="2120" y="428">ZF</text>
<polygon fill="#ffff80" points="2120 488, 2120 463, 2245 463, 2270 488, 2245 513, 2120 513, 2120 488" 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="2120" y="488">SF</text>
<polygon fill="#ffff80" points="2120 1488, 2120 1463, 2245 1463, 2270 1488, 2245 1513, 2120 1513, 2120 1488" 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="2120" y="1488">IF</text>
<polygon fill="#ffff80" points="20 638, 20 613, 145 613, 170 638, 145 663, 20 663, 20 638" 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="20" y="638">DBUS[7..0]</text>
<polygon fill="#ffff80" points="20 998, 20 983, 155 983, 170 998, 155 1013, 20 1013, 20 998" 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="20" y="998">FLAG_EN</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="670" x2="620" y1="1488" y2="1488"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="694" y="1485">D</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="638" y="1487">1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="670" x2="620" y1="1588" y2="1588"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="708" y="1588">CLK</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="638" y="1586">2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="750" x2="750" y1="1438" y2="1388"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="750" y="1461">PR</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="728" y="1426">6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="750" x2="750" y1="1638" y2="1688"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="751" y="1621">CLR</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="727" y="1681">3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="820" x2="870" y1="1488" y2="1488"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="794" y="1485">Q</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="838" y="1488">5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="820" x2="870" y1="1588" y2="1588"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="778" y="1587">^Q</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="829" y="1588">4</text>
<rect fill="#ffffff" fill-opacity="0.5" height="200" stroke="#000000" stroke-width="5" width="150" x="670" y="1438"/>
<polyline fill="none" points="673 1578, 683 1588, 673 1598" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="825" y="1430">U2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="787" y="1693">D_FLOP</text>
<polyline fill="none" points="870 1488, 1620 1488, 2120 1488" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="20 1388, 20 1363, 145 1363, 170 1388, 145 1413, 20 1413, 20 1388" 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="20" y="1388">STI</text>
<polygon fill="#ffff80" points="20 1738, 20 1713, 145 1713, 170 1738, 145 1763, 20 1763, 20 1738" 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="20" y="1738">CLI</text>
<polygon fill="#ffff80" points="20 1188, 20 1163, 245 1163, 270 1188, 245 1213, 20 1213, 20 1188" 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="20" y="1188">FLAG_GATE_EN</text>
<polygon fill="#ffff80" points="20 1028, 20 1013, 155 1013, 170 1028, 155 1043, 20 1043, 20 1028" 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="20" y="1028">CLK</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1720" y="688">DBUS0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1720" y="718">DBUS1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1720" y="748">DBUS2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1720" y="778">DBUS3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1720" y="808">DBUS4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1720" y="838">DBUS5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1720" y="868">DBUS6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1720" y="898">DBUS7</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="2310" y="388">OF=0,没有溢出</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="2320" y="498">SF=0,结果为正</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="2310" y="438">ZF=0,结果不是0</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="2310" y="328">CF=0,没有进位</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="2320" y="1488">IF=0,禁止可屏蔽中断</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="330" x2="270" y1="1388" y2="1388"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="410" x2="470" y1="1388" y2="1388"/>
<circle cx="406" cy="1388" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="330 1338, 330 1438, 400 1388, 330 1338" 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="350" y="1352">U3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="330" y="1484">NOT</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="330" x2="270" y1="1738" y2="1738"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="410" x2="470" y1="1738" y2="1738"/>
<circle cx="406" cy="1738" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="330 1688, 330 1788, 400 1738, 330 1688" 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="350" y="1702">U4</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="330" y="1834">NOT</text>
<polyline fill="none" points="470 1388, 750 1388" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="470 1738, 750 1738, 750 1688" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="20 938, 20 923, 155 923, 170 938, 155 953, 20 953, 20 938" 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="20" y="938">RESET</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="微软雅黑" font-size="200" font-weight="700" text-anchor="start" x="230" y="258">标志寄存器FLAG</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="780" x2="730" y1="688" y2="688"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="813" y="688">D0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="780" x2="730" y1="718" y2="718"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="813" y="718">D1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="780" x2="730" y1="748" y2="748"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="813" y="748">D2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="780" x2="730" y1="778" y2="778"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="813" y="778">D3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="780" x2="730" y1="808" y2="808"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="813" y="808">D4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="780" x2="730" y1="838" y2="838"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="813" y="838">D5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="780" x2="730" y1="868" y2="868"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="813" y="868">D6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="780" x2="730" y1="898" y2="898"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="813" y="898">D7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1030" x2="1080" y1="688" y2="688"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="997" y="688">Q0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1030" x2="1080" y1="718" y2="718"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="997" y="718">Q1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1030" x2="1080" y1="748" y2="748"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="997" y="748">Q2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1030" x2="1080" y1="778" y2="778"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="997" y="778">Q3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1030" x2="1080" y1="808" y2="808"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="997" y="808">Q4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1030" x2="1080" y1="838" y2="838"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="997" y="838">Q5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1030" x2="1080" y1="868" y2="868"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="997" y="868">Q6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1030" x2="1080" y1="898" y2="898"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="997" y="898">Q7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="770" x2="730" y1="938" y2="938"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="833" y="938">CLR</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="780" x2="730" y1="968" y2="968"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="823" y="968">PR</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="770" x2="730" y1="998" y2="998"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="823" y="998">EN</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="780" x2="730" y1="1028" y2="1028"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="833" y="1028">CLK</text>
<rect fill="#c0dcc0" fill-opacity="0.5" height="470" stroke="#000000" stroke-width="5" width="250" x="780" y="638"/>
<polyline fill="none" points="780 1018, 790 1028, 780 1038" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<circle cx="775" cy="998" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="775" cy="938" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="65" font-weight="700" text-anchor="start" x="810" y="618">FLAG</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="830" y="1158">REG_AA8</text>
<polyline fill="none" points="620 1588, 270 1588, 170 1588" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="20 1588, 20 1563, 145 1563, 170 1588, 145 1613, 20 1613, 20 1588" 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="20" y="1588">RESET</text>
<polyline fill="none" points="270 1388, 170 1388" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="270 1738, 170 1738" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="730 938, 170 938" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="730 998, 170 998" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="730 1028, 170 1028" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="730 688, 420 688" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="730 718, 420 718" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="730 748, 420 748" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="730 778, 420 778" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="730 808, 420 808" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="730 838, 420 838" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="730 868, 420 868" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="730 898, 420 898" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="420" x2="370" y1="688" y2="638"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="420" x2="370" y1="718" y2="668"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="420" x2="370" y1="748" y2="698"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="420" x2="370" y1="778" y2="728"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="420" x2="370" y1="808" y2="758"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="420" x2="370" y1="838" y2="788"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="420" x2="370" y1="868" y2="818"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="420" x2="370" y1="898" y2="848"/>
<polyline fill="none" points="370 848, 370 638, 170 638" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="420" y="688">DBUS0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="420" y="718">DBUS1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="420" y="748">DBUS2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="420" y="778">DBUS3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="420" y="808">DBUS4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="420" y="838">DBUS5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="420" y="868">DBUS6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="420" y="898">DBUS7</text>
<polyline fill="none" points="1080 688, 1470 688" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1470 718, 1080 718" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1080 748, 1470 748" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1470 778, 1080 778" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1080 808, 1470 808" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1470 838, 1080 838" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1080 868, 1470 868" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1470 898, 1080 898" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1470 958, 1420 958, 1420 1188, 270 1188" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1720 688, 1970 688" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1720 718, 1970 718" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1720 748, 1970 748" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1720 778, 1970 778" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1720 808, 1970 808" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1720 838, 1970 838" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1720 868, 1970 868" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1720 898, 1970 898" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1970" x2="2020" y1="688" y2="638"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1970" x2="2020" y1="718" y2="668"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1970" x2="2020" y1="748" y2="698"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1970" x2="2020" y1="778" y2="728"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1970" x2="2020" y1="808" y2="758"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1970" x2="2020" y1="838" y2="788"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1970" x2="2020" y1="868" y2="818"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="1970" x2="2020" y1="898" y2="848"/>
<polyline fill="none" points="2020 848, 2020 638, 2120 638" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polygon fill="#ffff80" points="2120 638, 2120 613, 2245 613, 2270 638, 2245 663, 2120 663, 2120 638" 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="2120" y="638">DBUS[7..0]</text>
<polyline fill="none" points="2120 308, 1120 308, 1120 688" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2120 368, 1170 368, 1170 718" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2120 428, 1220 428, 1220 748" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2120 488, 1270 488, 1270 778" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1520" x2="1470" y1="688" y2="688"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1553" y="688">A0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1520" x2="1470" y1="718" y2="718"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1553" y="718">A1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1520" x2="1470" y1="748" y2="748"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1553" y="748">A2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1520" x2="1470" y1="778" y2="778"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1553" y="778">A3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1520" x2="1470" y1="808" y2="808"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1553" y="808">A4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1520" x2="1470" y1="838" y2="838"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1553" y="838">A5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1520" x2="1470" y1="868" y2="868"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1553" y="868">A6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1520" x2="1470" y1="898" y2="898"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1553" y="898">A7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1670" x2="1720" y1="688" y2="688"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1637" y="688">D0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1670" x2="1720" y1="718" y2="718"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1637" y="718">D1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1670" x2="1720" y1="748" y2="748"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1637" y="748">D2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1670" x2="1720" y1="778" y2="778"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1637" y="778">D3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1670" x2="1720" y1="808" y2="808"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1637" y="808">D4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1670" x2="1720" y1="838" y2="838"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1637" y="838">D5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1670" x2="1720" y1="868" y2="868"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1637" y="868">D6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1670" x2="1720" y1="898" y2="898"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1637" y="898">D7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1510" x2="1470" y1="958" y2="958"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1564" y="957">^EN</text>
<rect fill="#a0c0ff" fill-opacity="0.5" height="350" stroke="#000000" stroke-width="5" width="150" x="1520" y="648"/>
<circle cx="1515" cy="958" 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="1520" y="638">FLAG_gate</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1520" y="1048">BUS_TRANS8</text>
<circle cx="1120" cy="688" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1170" cy="718" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1220" cy="748" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1270" cy="778" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
</svg>
添加文件
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<svg height="2644" version="1.1" width="3117" xmlns="http://www.w3.org/2000/svg">
<polygon fill="#ffff80" points="94 1985, 94 1970, 279 1970, 294 1985, 279 2000, 94 2000, 94 1985" 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="94" y="1985">RESET</text>
<polygon fill="#ffff80" points="94 2105, 94 2090, 279 2090, 294 2105, 279 2120, 94 2120, 94 2105" 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="94" y="2105">CLK</text>
<polygon fill="#ffff80" points="94 755, 94 730, 269 730, 294 755, 269 780, 94 780, 94 755" 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="94" y="755">DBUS[7..0]</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="20" font-weight="400" text-anchor="start" x="404" y="785">DBUS0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="20" font-weight="400" text-anchor="start" x="404" y="815">DBUS1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="20" font-weight="400" text-anchor="start" x="404" y="845">DBUS2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="20" font-weight="400" text-anchor="start" x="404" y="875">DBUS3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="20" font-weight="400" text-anchor="start" x="404" y="905">DBUS4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="20" font-weight="400" text-anchor="start" x="404" y="935">DBUS5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="20" font-weight="400" text-anchor="start" x="404" y="965">DBUS6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="20" font-weight="400" text-anchor="start" x="404" y="995">DBUS7</text>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2794" x2="2844" y1="1565" y2="1515"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2794" x2="2844" y1="1595" y2="1545"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2794" x2="2844" y1="1625" y2="1575"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2794" x2="2844" y1="1655" y2="1605"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2794" x2="2844" y1="1685" y2="1635"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2794" x2="2844" y1="1715" y2="1665"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2794" x2="2844" y1="1745" y2="1695"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2794" x2="2844" y1="1775" y2="1725"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1565">ABUS0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1595">ABUS1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1625">ABUS2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1655">ABUS3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1685">ABUS4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1715">ABUS5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1745">ABUS6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1775">ABUS7</text>
<polygon fill="#ffff80" points="94 555, 94 530, 319 530, 344 555, 319 580, 94 580, 94 555" 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="94" y="555">PC_A_GATE_EN</text>
<polyline fill="none" points="2794 1565, 2504 1565" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1595, 2794 1595" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1625, 2794 1625" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1655, 2794 1655" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1685, 2794 1685" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1715, 2794 1715" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1745, 2794 1745" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1775, 2794 1775" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polygon fill="#ffff80" points="94 455, 94 430, 319 430, 344 455, 319 480, 94 480, 94 455" 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="94" y="455">PC_D_GATE_EN</text>
<polyline fill="none" points="2254 1245, 2204 1245, 2204 1705, 2204 1775" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2254 1155, 2144 1155, 2144 1645, 2144 1685" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2254 1095, 2104 1095, 2104 1605, 2104 1625" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2254 1065, 2084 1065, 2084 1585, 2084 1595" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2254 1035, 2064 1035, 2064 1565" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1035">DBUS0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1065">DBUS1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1095">DBUS2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1125">DBUS3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1155">DBUS4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1185">DBUS5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1215">DBUS6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="2604" y="1245">DBUS7</text>
<polyline fill="none" points="2504 1035, 2784 1035" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1065, 2784 1065" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1095, 2784 1095" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1125, 2784 1125" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1155, 2784 1155" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1185, 2784 1185" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1215, 2784 1215" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2504 1245, 2784 1245" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2784" x2="2834" y1="1035" y2="985"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2784" x2="2834" y1="1065" y2="1015"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2784" x2="2834" y1="1095" y2="1045"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2784" x2="2834" y1="1125" y2="1075"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2784" x2="2834" y1="1155" y2="1105"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2784" x2="2834" y1="1185" y2="1135"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2784" x2="2834" y1="1215" y2="1165"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2784" x2="2834" y1="1245" y2="1195"/>
<polyline fill="none" points="2254 1125, 2124 1125, 2124 1655" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2254 1185, 2164 1185, 2164 1715" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2254 1215, 2184 1215, 2184 1745" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="14" y="1995">复位</text>
<polygon fill="#ffff80" points="94 1835, 94 1820, 279 1820, 294 1835, 279 1850, 94 1850, 94 1835" 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="94" y="1835">PC_ADD</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="微软雅黑" font-size="250" font-weight="700" text-anchor="start" x="364" y="315">程序计数器PC模块</text>
<polygon fill="#ffff80" points="94 1925, 94 1910, 279 1910, 294 1925, 279 1940, 94 1940, 94 1925" 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="94" y="1925">J_PC_LOAD</text>
<polygon fill="#ffff80" points="94 2455, 94 2440, 279 2440, 294 2455, 279 2470, 94 2470, 94 2455" 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="94" y="2455">IR_LOAD</text>
<polyline fill="none" points="704 785, 404 785" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="704 815, 404 815" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="704 845, 404 845" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="704 875, 404 875" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="704 905, 404 905" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="704 935, 404 935" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="704 965, 404 965" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="704 995, 404 995" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="354" x2="404" y1="835" y2="785"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="354" x2="404" y1="865" y2="815"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="354" x2="404" y1="895" y2="845"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="354" x2="404" y1="925" y2="875"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="354" x2="404" y1="955" y2="905"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="354" x2="404" y1="985" y2="935"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="354" x2="404" y1="1015" y2="965"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="354" x2="404" y1="1045" y2="995"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="144" x2="144" y1="1455" y2="1505"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="144 1455, 194 1405, 94 1405, 144 1455" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Times New Roman" font-size="30" font-weight="700" text-anchor="start" x="134" y="1445">1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="134" y="1375">U3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="54" y="1405">CONSTANT1</text>
<polyline fill="none" points="704 1505, 504 1505, 144 1505" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="25" font-weight="400" text-anchor="start" x="244" y="1495">代码段起始地址为0x10</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="654" x2="654" y1="1235" y2="1295"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="654" x2="654" y1="1155" y2="1095"/>
<circle cx="654" cy="1159" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="604 1235, 704 1235, 654 1165, 604 1235" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" transform="rotate(-90 618 1215)" x="618" y="1215">U4</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" transform="rotate(-90 750 1235)" x="750" y="1235">NOT</text>
<polyline fill="none" points="654 1655, 654 1295" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="704 1055, 654 1055, 654 1095" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="954 785, 1054 785, 1054 1385, 954 1385" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="954 815, 1074 815, 1074 1415, 954 1415" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="954 845, 1094 845, 1094 1445, 954 1445" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="954 875, 1114 875, 1114 1475, 954 1475" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="954 905, 1134 905, 1134 1505, 954 1505" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="954 935, 1154 935, 1154 1535, 954 1535" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="954 965, 1174 965, 1174 1565, 954 1565" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="954 995, 1194 995, 1194 1595, 954 1595" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1054" y="785">D0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1074" y="815">D1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1094" y="845">D2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1114" y="875">D3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1134" y="905">D4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1154" y="935">D5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1174" y="965">D6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="1194" y="995">D7</text>
<polyline fill="none" points="1704 1565, 2254 1565" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2254 1595, 1704 1595" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1704 1625, 2254 1625" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1704 1655, 2254 1655" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2254 1685, 1704 1685" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1704 1715, 2254 1715" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2254 1745, 1704 1745" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1704 1775, 2254 1775" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="804" x2="744" y1="1925" y2="1925"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="804" x2="744" y1="1985" y2="1985"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="934" x2="994" y1="1955" y2="1955"/>
<path d="M882 1903 A 47 47 0 1 1 882 1996" fill="none" stroke="#000000" stroke-linecap="round" stroke-width="5"/>
<polyline fill="none" points="883 1997, 804 1997, 804 1903, 883 1903" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="845" y="1897">U1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="828" y="2043">AND</text>
<polyline fill="none" points="1404 1835, 944 1835, 744 1835, 544 1835, 294 1835" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="744 1925, 544 1925, 294 1925" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1404 1895, 1344 1895, 994 1895, 994 1955" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="184" y="1505">H</text>
<polyline fill="none" points="294 2105, 544 2105, 1094 2105, 1404 2105, 1404 1925" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="785" y2="785"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="785">A0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="815" y2="815"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="815">A1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="845" y2="845"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="845">A2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="875" y2="875"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="875">A3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="905" y2="905"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="905">A4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="935" y2="935"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="935">A5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="965" y2="965"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="965">A6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="995" y2="995"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="995">A7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="785" y2="785"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="785">D0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="815" y2="815"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="815">D1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="845" y2="845"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="845">D2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="875" y2="875"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="875">D3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="905" y2="905"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="905">D4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="935" y2="935"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="935">D5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="965" y2="965"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="965">D6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="995" y2="995"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="995">D7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="744" x2="704" y1="1055" y2="1055"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="798" y="1054">^EN</text>
<rect fill="#a0c0ff" fill-opacity="0.5" height="350" stroke="#000000" stroke-width="5" width="150" x="754" y="745"/>
<circle cx="749" cy="1055" 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="694" y="715">Branch_Address_gate</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="754" y="1145">BUS_TRANS8</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="1385" y2="1385"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="1385">A0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="1415" y2="1415"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="1415">A1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="1445" y2="1445"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="1445">A2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="1475" y2="1475"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="1475">A3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="1505" y2="1505"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="1505">A4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="1535" y2="1535"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="1535">A5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="1565" y2="1565"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="1565">A6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="754" x2="704" y1="1595" y2="1595"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="787" y="1595">A7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="1385" y2="1385"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="1385">D0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="1415" y2="1415"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="1415">D1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="1445" y2="1445"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="1445">D2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="1475" y2="1475"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="1475">D3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="1505" y2="1505"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="1505">D4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="1535" y2="1535"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="1535">D5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="1565" y2="1565"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="1565">D6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="904" x2="954" y1="1595" y2="1595"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="871" y="1595">D7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="744" x2="704" y1="1655" y2="1655"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="798" y="1654">^EN</text>
<rect fill="#a0c0ff" fill-opacity="0.5" height="350" stroke="#000000" stroke-width="5" width="150" x="754" y="1345"/>
<circle cx="749" cy="1655" 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="724" y="1325">Code_Address_gate</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="754" y="1745">BUS_TRANS8</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1035" y2="1035"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1035">A0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1065" y2="1065"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1065">A1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1095" y2="1095"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1095">A2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1125" y2="1125"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1125">A3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1155" y2="1155"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1155">A4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1185" y2="1185"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1185">A5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1215" y2="1215"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1215">A6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1245" y2="1245"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1245">A7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1035" y2="1035"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1035">D0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1065" y2="1065"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1065">D1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1095" y2="1095"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1095">D2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1125" y2="1125"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1125">D3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1155" y2="1155"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1155">D4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1185" y2="1185"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1185">D5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1215" y2="1215"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1215">D6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1245" y2="1245"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1245">D7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2294" x2="2254" y1="1305" y2="1305"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2348" y="1304">^EN</text>
<rect fill="#a0c0ff" fill-opacity="0.5" height="350" stroke="#000000" stroke-width="5" width="150" x="2304" y="995"/>
<circle cx="2299" cy="1305" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="30" font-weight="700" text-anchor="start" x="2304" y="975">PC_D_gate</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="2304" y="1395">BUS_TRANS8</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1565" y2="1565"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1565">A0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1595" y2="1595"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1595">A1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1625" y2="1625"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1625">A2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1655" y2="1655"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1655">A3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1685" y2="1685"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1685">A4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1715" y2="1715"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1715">A5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1745" y2="1745"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1745">A6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2304" x2="2254" y1="1775" y2="1775"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2337" y="1775">A7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1565" y2="1565"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1565">D0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1595" y2="1595"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1595">D1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1625" y2="1625"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1625">D2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1655" y2="1655"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1655">D3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1685" y2="1685"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1685">D4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1715" y2="1715"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1715">D5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1745" y2="1745"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1745">D6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="1775" y2="1775"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="1775">D7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2294" x2="2254" y1="1835" y2="1835"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2348" y="1834">^EN</text>
<rect fill="#a0c0ff" fill-opacity="0.5" height="350" stroke="#000000" stroke-width="5" width="150" x="2304" y="1525"/>
<circle cx="2299" cy="1835" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="30" font-weight="700" text-anchor="start" x="2304" y="1505">PC_A_gate</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="2304" y="1925">BUS_TRANS8</text>
<polyline fill="none" points="2834 1195, 2834 955, 2944 955" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polygon fill="#ffff80" points="2944 955, 2944 930, 3069 930, 3094 955, 3069 980, 2944 980, 2944 955" 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="2944" y="955">DBUS[7..0]</text>
<polyline fill="none" points="2844 1725, 2844 1505, 2944 1505" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polygon fill="#ffff80" points="2944 1505, 2944 1480, 3069 1480, 3094 1505, 3069 1530, 2944 1530, 2944 1505" 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="2944" y="1505">ABUS[7..0]</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2254" x2="2204" y1="2125" y2="2125"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2287" y="2125">D0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2254" x2="2204" y1="2155" y2="2155"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2287" y="2155">D1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2254" x2="2204" y1="2185" y2="2185"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2287" y="2185">D2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2254" x2="2204" y1="2215" y2="2215"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2287" y="2215">D3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2254" x2="2204" y1="2245" y2="2245"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2287" y="2245">D4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2254" x2="2204" y1="2275" y2="2275"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2287" y="2275">D5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2254" x2="2204" y1="2305" y2="2305"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2287" y="2305">D6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2254" x2="2204" y1="2335" y2="2335"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2287" y="2335">D7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="2125" y2="2125"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="2125">Q0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="2155" y2="2155"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="2155">Q1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="2185" y2="2185"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="2185">Q2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="2215" y2="2215"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="2215">Q3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="2245" y2="2245"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="2245">Q4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="2275" y2="2275"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="2275">Q5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="2305" y2="2305"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="2305">Q6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="2335" y2="2335"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2421" y="2335">Q7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2244" x2="2204" y1="2395" y2="2395"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2329" y="2397">^CTEN</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2244" x2="2204" y1="2455" y2="2455"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2327" y="2455">^LOAD</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2244" x2="2204" y1="2425" y2="2425"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2317" y="2425">^U\D</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="2395" y2="2395"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2401" y="2395">RCO</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2454" x2="2504" y1="2425" y2="2425"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="2351" y="2425">MAX\MIN</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="2254" x2="2204" y1="2485" y2="2485"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="2307" y="2485">CLK</text>
<rect fill="#c0dcc0" fill-opacity="0.5" height="500" stroke="#000000" stroke-width="5" width="200" x="2254" y="2075"/>
<polyline fill="none" points="2254 2475, 2264 2485, 2254 2495" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<circle cx="2249" cy="2395" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="2249" cy="2455" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="2249" cy="2425" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="65" font-weight="700" text-anchor="start" x="2314" y="2335">IP</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="2296" y="2622">C_AB8</text>
<polyline fill="none" points="2204 2455, 544 2455, 294 2455" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="294 755, 354 755, 354 1045" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polyline fill="none" points="744 1985, 654 1985, 294 1985" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="25" font-weight="400" text-anchor="start" x="294" y="1985">RESET</text>
<polyline fill="none" points="1054 785, 1404 785, 1404 1565" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1074 815, 1384 815, 1384 1595, 1404 1595" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1094 845, 1364 845, 1364 1625, 1404 1625" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1114 875, 1344 875, 1344 1655, 1404 1655" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1134 905, 1324 905, 1324 1685, 1404 1685" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1154 935, 1304 935, 1304 1715, 1404 1715" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1174 965, 1284 965, 1284 1745, 1404 1745" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1194 995, 1264 995, 1264 1775, 1404 1775" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="344 455, 1994 455, 1994 1305, 2254 1305" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="344 555, 1944 555, 1944 1835, 2254 1835" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1454" x2="1404" y1="1565" y2="1565"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1487" y="1565">D0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1454" x2="1404" y1="1595" y2="1595"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1487" y="1595">D1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1454" x2="1404" y1="1625" y2="1625"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1487" y="1625">D2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1454" x2="1404" y1="1655" y2="1655"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1487" y="1655">D3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1454" x2="1404" y1="1685" y2="1685"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1487" y="1685">D4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1454" x2="1404" y1="1715" y2="1715"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1487" y="1715">D5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1454" x2="1404" y1="1745" y2="1745"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1487" y="1745">D6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1454" x2="1404" y1="1775" y2="1775"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1487" y="1775">D7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1654" x2="1704" y1="1565" y2="1565"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1621" y="1565">Q0</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1654" x2="1704" y1="1595" y2="1595"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1621" y="1595">Q1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1654" x2="1704" y1="1625" y2="1625"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1621" y="1625">Q2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1654" x2="1704" y1="1655" y2="1655"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1621" y="1655">Q3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1654" x2="1704" y1="1685" y2="1685"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1621" y="1685">Q4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1654" x2="1704" y1="1715" y2="1715"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1621" y="1715">Q5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1654" x2="1704" y1="1745" y2="1745"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1621" y="1745">Q6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1654" x2="1704" y1="1775" y2="1775"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1621" y="1775">Q7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1444" x2="1404" y1="1835" y2="1835"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1529" y="1837">^CTEN</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1444" x2="1404" y1="1895" y2="1895"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1527" y="1895">^LOAD</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1444" x2="1404" y1="1865" y2="1865"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1517" y="1865">^U\D</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1654" x2="1704" y1="1835" y2="1835"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1601" y="1835">RCO</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1654" x2="1704" y1="1865" y2="1865"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1551" y="1865">MAX\MIN</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1454" x2="1404" y1="1925" y2="1925"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1507" y="1925">CLK</text>
<rect fill="#c0dcc0" fill-opacity="0.5" height="500" stroke="#000000" stroke-width="5" width="200" x="1454" y="1515"/>
<polyline fill="none" points="1454 1915, 1464 1925, 1454 1935" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<circle cx="1449" cy="1835" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="1449" cy="1895" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<circle cx="1449" cy="1865" fill="none" r="5" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="65" font-weight="700" text-anchor="start" x="1504" y="1755">PC</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1496" y="2062">C_AB8</text>
<polyline fill="none" points="704 1655, 654 1655, 654 1985" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2204 2125, 1894 2125, 1894 1565" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2204 2155, 1874 2155, 1874 1595" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2204 2185, 1854 2185, 1854 1625" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2204 2215, 1834 2215, 1834 1655" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2204 2245, 1814 2245, 1814 1685" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2204 2275, 1794 2275, 1794 1715" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2204 2305, 1774 2305, 1774 1745" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="2204 2335, 1754 2335, 1754 1775" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<circle cx="654" cy="1655" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="654" cy="1985" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1194" cy="995" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1174" cy="965" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1154" cy="935" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1134" cy="905" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1114" cy="875" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1094" cy="845" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1074" cy="815" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1054" cy="785" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1754" cy="1775" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1774" cy="1745" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1794" cy="1715" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1814" cy="1685" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1834" cy="1655" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1854" cy="1625" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1874" cy="1595" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1894" cy="1565" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="2184" cy="1745" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="2164" cy="1715" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="2124" cy="1655" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="2064" cy="1565" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="2084" cy="1595" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="2104" cy="1625" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="2144" cy="1685" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="2204" cy="1775" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
</svg>
# 说明
这里实现了一个简化的 8086 微处理器,其已具备了基本的功能,完全可以满足基于 8086 处理器的`微机原理与接口技术`实验。但是,为了提高仿真效率,降低学习难度,与真实的 8086 微处理器相比,这里实现的 8086 进行了合理的简化,更多细节可参看下面的表格。
此外,需要说明的是,简化的 8086 微处理器与真实的 8086 微处理器在机器指令级别是不兼容的,也就是说将一个可以在真实 8086 上运行的可执行程序直接放到简化的 8086 上是无法运行的。但是它们的汇编语言语法和汇编指令是兼容的,也就是说,将一段为简化的 8086 编写的汇编程序源代码用真实 8086 的汇编器生成一个可执行程序后,是可以在真实的 8086 上运行的。
| 对比项目 | 真实的 8086 | 简化的 8086 |
| ------ | ---------- | ---------- |
| 数据线 | 16 根 | 8 根 |
| 地址线 | 20 根 | 8 根 |
|寄存器|段寄存器、通用寄存器、栈寄存器、标志寄存器等均为 16 位|只提供了 8 位的通用寄存器、栈寄存器、标志寄存器,没有提供段寄存器|
|寻址方式|段地址加偏移地址得到物理地址,最多可访问 1MB 物理内存|由于没有提供段寄存器,所以直接使用物理地址,最多可以访问 256B 物理内存|
|起始位置|加电复位后进入 Big Mode,从一个固定的 CS:IP 开始执行 ROM 中的 BIOS 程序|加电复位后 PC 寄存器初始化为 0x10,也就是从物理内存的 0x10 处的第一条指令开始执行|
|指令集|支持完整的 8086 指令集|只实现了 8086 指令集的一个子集|
| 中断向量表 | 从物理地址 0 开始的 1KB,可存放 256 个中断向量,每个占用 4 字节,存放了中断处理程序入口的段地址和偏移地址 | 从物理地址 0 开始的 16 字节,存放了 16 个中断向量,每个占用 1 字节,存放了中断处理程序入口的物理地址|
# Datasheet
[8086.pdf](8086.pdf)
# 原理图
![raw svg](8086.dlsche.svg)
\ No newline at end of file
添加文件
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
/*******************************************************************************
*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
typedef unsigned char BYTE;
typedef long BOOL;
#define FALSE 0
#define TRUE 1
#define MAX_LINE_LENGTH 256 // 一行代码最多可以有多少个字符
#define MAX_LINE_COUNT 2048 // 源代码文件最多可以有多少行
#define MAX_SYMBOL_LENGTH 64 // 一个符号最多可以包含多少个字符
#define MAX_SYMBOL_COUNT 256 // 源代码文件中最多可以包含多少个符号
#ifndef MAX_PATH
#define MAX_PATH 256 // 文件路径最多可以包含多少了字符
#endif
// 代码行数据库。记录源代码文件中所有代码行的信息(包括注释行、空行)
struct LINE_RECORD
{
char line_string[MAX_LINE_LENGTH]; // 代码行的内容
unsigned long line_num; // 行号
unsigned long address; // 此行代码转换的机器码在映像文件中的地址(偏移)。注意,对于 DM1000 来说,微指令的一个地址对应 4 个字节。
int machine_code_count; // 此行代码转换的机器码的字节数量
unsigned long flag; // 代码行标志位,32位
};
struct LINE_RECORD line_database[MAX_LINE_COUNT] = { 0 };
int line_count = 0;
int machine_code_line_count = 0; // 记录产生了机器码的代码行的数量
// 在此定义所有的代码行标志位。注意,代码行标志位是按位或的关系。
#define LF_INSTRUCTION 0x00000001 // 代码行标志位的最低位是1,表示此行是一条指令,否则表示此行是数据
//
// 在下面定义所有的关键字
//
// 寄存器名称
const char* rs_register_keyword = "rs";
const char* rd_register_keyword = "rd";
const char* al_register_keyword = "al";
const char* dl_register_keyword = "dl";
const char* sp_register_keyword = "sp";
const char* es_register_keyword = "es";
const char* flag_register_keyword = "flag";
const char* mar_register_keyword = "mar";
const char* ir_register_keyword = "ir";
const char* a_register_keyword = "a";
const char* w_register_keyword = "w";
const char* pc_register_keyword = "pc";
const char* upc_register_keyword = "upc";
//
// alu 操作码
const char* alu_add_keyword = "alu_add";
const char* alu_adc_keyword = "alu_adc";
const char* alu_sub_keyword = "alu_sub";
const char* alu_sbb_keyword = "alu_sbb";
const char* alu_and_keyword = "alu_and";
const char* alu_or_keyword = "alu_or";
const char* alu_xor_keyword = "alu_xor";
const char* alu_inc_keyword = "alu_inc";
const char* alu_dec_keyword = "alu_dec";
const char* alu_shr_keyword = "alu_shr";
const char* alu_shl_keyword = "alu_shl";
const char* alu_rcr_keyword = "alu_rcr";
const char* alu_rcl_keyword = "alu_rcl";
const char* alu_sal_keyword = "alu_sal";
const char* alu_sar_keyword = "alu_sar";
const char* alu_rol_keyword = "alu_rol";
const char* alu_ror_keyword = "alu_ror";
const char* alu_not_keyword = "alu_not";
const char* al_flag_keyword = "al_flag";
const char* shift_flag_keyword = "shift_flag";
// 访问主存或外设的操作数
const char* pc_main_memory_keyword = "[pc]";
const char* jz_mar_keyword = "jz[mar]";
const char* jnz_mar_keyword = "jnz[mar]";
const char* jc_mar_keyword = "jc[mar]";
const char* ja_mar_keyword = "ja[mar]";
const char* jb_mar_keyword = "jb[mar]";
const char* jg_mar_keyword = "jg[mar]";
const char* jl_mar_keyword = "jl[mar]";
const char* jmp_mar_keyword = "jmp[mar]";
const char* mar_main_memory_keyword = "[mar]";
const char* mar_extern_IO_keyword = "<mar>";
const char* int_number_keyword = "inta";
const char* delimit_char = "\n\t\r "; // 需要忽略的空白字符
const char* delimit_char_comma = "\n\t\r, "; // 需要忽略的空白字符,包括英文逗号
// 单操作数微指令
struct ONE_OPERAND_INSTRUCTION_ENTRY
{
const char** op;
unsigned long micro_machine_code;
};
struct ONE_OPERAND_INSTRUCTION_ENTRY one_operand_table[] =
{
{ NULL, 0x0 } // 未用
,{ &pc_register_keyword, 0xfffffffd } // inc pc
,{ &upc_register_keyword, 0xffffffc3 } // reset upc
};
// 查表,操作数是否匹配。返回0,操作数不匹配;返回非0,操作数匹配,并且返回值就是操作数在表中的下标。
int match_one_operand(const char* op)
{
int i;
for (i = 1; i<sizeof(one_operand_table) / sizeof(one_operand_table[0]); i++)
{
if ((stricmp(op, *one_operand_table[i].op) == 0))
{
return i;
}
}
return 0;
}
// 双操作数微指令
struct PATH_INSTRUCTION_OPERAND_ENTRY
{
const char** op1;
const char** op2;
unsigned long micro_machine_code;
};
//////////////////////////////////////////////////////////////////////////
//
struct PATH_INSTRUCTION_OPERAND_ENTRY path_operand_table[] =
{
{ NULL, NULL, 0x0 } // 未用
,{ &pc_main_memory_keyword, &ir_register_keyword, 0xffef47ff } // path [pc], ir
,{ &pc_main_memory_keyword, &rd_register_keyword, 0xffe947ff } // path [pc], rd
,{ &pc_main_memory_keyword, &mar_register_keyword, 0xffe547ff } // path [pc], mar
,{ &pc_main_memory_keyword, &a_register_keyword, 0xffe147ff } // path [pc], a
,{ &pc_main_memory_keyword, &w_register_keyword, 0xffe347ff } // path [pc], w
,{ &jz_mar_keyword, &pc_register_keyword, 0xff1f86fd } // path jz[mar], pc
,{ &jnz_mar_keyword, &pc_register_keyword, 0xff3f86fd } // path jnz[mar], pc
,{ &jc_mar_keyword, &pc_register_keyword, 0xff5f86fd } // path jc[mar], pc
,{ &ja_mar_keyword, &pc_register_keyword, 0xff7f86fd } // path ja[mar], pc
,{ &jb_mar_keyword, &pc_register_keyword, 0xff9f86fd } // path jb[mar], pc
,{ &jg_mar_keyword, &pc_register_keyword, 0xffbf86fd } // path jg[mar], pc
,{ &jl_mar_keyword, &pc_register_keyword, 0xffdf86fd } // path jl[mar], pc
,{ &jmp_mar_keyword, &pc_register_keyword, 0xffff86fd } // path jmp[mar], pc
,{ &rs_register_keyword, &rd_register_keyword, 0xffe9c1ff } // path rs, rd
,{ &rs_register_keyword, &w_register_keyword, 0xffe3c1ff } // path rs, w
,{ &rs_register_keyword, &mar_register_keyword, 0xffe5c1ff } // path rs, mar
,{ &rd_register_keyword, &mar_register_keyword, 0xffe5c1bf } // path rd, mar
,{ &rs_register_keyword, &mar_main_memory_keyword, 0xffe781ff } // path rs, [mar]
,{ &rs_register_keyword, &mar_extern_IO_keyword, 0xffe781fe } // path rs, <mar>
,{ &int_number_keyword, &w_register_keyword, 0xffe3c7ce } // path inta, w
,{ &int_number_keyword, &mar_register_keyword, 0xffe5c7ce } // path inta, mar
,{ &flag_register_keyword, &mar_main_memory_keyword, 0xffe783ff } // path flag,[mar]
,{ &a_register_keyword, &mar_main_memory_keyword, 0xffe791ff } // path a, [mar]
,{ &pc_register_keyword, &mar_main_memory_keyword, 0xffe785ff } // path pc, [mar]
,{ &a_register_keyword, &pc_register_keyword, 0xffffd0ff } // path a, pc
,{ &rd_register_keyword, &a_register_keyword, 0xffe1c1bf } // path rd, a
,{ &rd_register_keyword, &w_register_keyword, 0xffe3c1bf } // path rd, w
,{ &pc_register_keyword, &a_register_keyword, 0xffe1c5ff } // path pc, a
,{ &pc_register_keyword, &mar_register_keyword, 0xffe5c5ff } // path pc, mar
,{ &es_register_keyword, &a_register_keyword, 0xffe1c1ff } // path es, a
,{ &sp_register_keyword, &a_register_keyword, 0xffe1c1bf } // path sp, a
,{ &sp_register_keyword, &w_register_keyword, 0xffe3c1bf } // path sp, w
,{ &sp_register_keyword, &mar_register_keyword, 0xffe5c1bf } // path sp, mar
,{ &mar_main_memory_keyword, &w_register_keyword, 0xffe387ff } // path [mar], w
,{ &mar_main_memory_keyword, &rd_register_keyword, 0xffe987ff } // path [mar], rd
,{ &mar_main_memory_keyword, &pc_register_keyword, 0xffff86ff } // path [mar], pc
,{ &mar_main_memory_keyword, &flag_register_keyword, 0xffeb87ff } // path [mar], flag
,{ &mar_extern_IO_keyword, &rd_register_keyword, 0xffe987fe } // path <mar>, rd
,{ &al_flag_keyword, &flag_register_keyword, 0xffebcbff } // path al_flag, flag
,{ &shift_flag_keyword, &flag_register_keyword, 0xffebd3ff } // path shift_flag, flag
,{ &alu_add_keyword, &rd_register_keyword, 0xd9e9d1ff } // path alu_add, rd
,{ &alu_sub_keyword, &rd_register_keyword, 0xd6e9d1ff } // path alu_sub, rd
,{ &alu_adc_keyword, &rd_register_keyword, 0xc9e9d1ff } // path alu_adc, rd
,{ &alu_sbb_keyword, &rd_register_keyword, 0xc6e9d1ff } // path alu_sbb, rd
,{ &alu_or_keyword, &rd_register_keyword, 0xfee9d1ff } // path alu_or, rd
,{ &alu_and_keyword, &rd_register_keyword, 0xfbe9d1ff } // path alu_and, rd
,{ &alu_xor_keyword, &rd_register_keyword, 0xf6e9d1ff } // path alu_xor, rd
,{ &alu_not_keyword, &rd_register_keyword, 0xf0e9d1ff } // path alu_not, rd
,{ &alu_inc_keyword, &rd_register_keyword, 0xd0e9d1ff } // path alu_inc, rd
,{ &alu_dec_keyword, &rd_register_keyword, 0xdfe9d1ff } // path alu_dec, rd
,{ &alu_sub_keyword, &a_register_keyword, 0xd6e1d1ff } // path alu_sub, a
,{ &alu_inc_keyword, &a_register_keyword, 0xd0e1d1ff } // path alu_inc, a
,{ &alu_add_keyword, &mar_register_keyword, 0xd9e5d1ff } // path alu_add, mar
,{ &alu_inc_keyword, &mar_register_keyword, 0xd0e5d1ff } // path alu_inc, mar
,{ &alu_dec_keyword, &sp_register_keyword, 0xdfe9d1ff } // path alu_dec, sp
,{ &alu_inc_keyword, &sp_register_keyword, 0xd0e9d1ff } // path alu_inc, sp
,{ &alu_shr_keyword, &rd_register_keyword, 0x3fe9c9ff } // path alu_shr, rd
,{ &alu_shl_keyword, &rd_register_keyword, 0x3fe8c9ff } // path alu_shl, rd
,{ &alu_rcr_keyword, &rd_register_keyword, 0xffe9c9ff } // path alu_rcr, rd
,{ &alu_rcl_keyword, &rd_register_keyword, 0xffe8c9ff } // path alu_rcl, rd
,{ &alu_sal_keyword, &rd_register_keyword, 0x7fe8c9ff } // path alu_sal, rd
,{ &alu_sar_keyword, &rd_register_keyword, 0x7fe9c9ff } // path alu_sar, rd
,{ &alu_rol_keyword, &rd_register_keyword, 0xbfe8c9ff } // path alu_rol, rd
,{ &alu_ror_keyword, &rd_register_keyword, 0xbfe9c9ff } // path alu_ror, rd
};
// 查表,判断两个操作数是否匹配。返回0,操作数不完全匹配;返回非0,操作数完全匹配,并且返回值就是操作数在表中的下标。
int match_ops(const char* op1, const char* op2)
{
int i;
for (i = 1; i<sizeof(path_operand_table) / sizeof(path_operand_table[0]); i++)
{
if ((stricmp(op1, *path_operand_table[i].op1) == 0)
&& (stricmp(op2, *path_operand_table[i].op2) == 0))
{
return i;
}
}
return 0;
}
// 汇编产生的机器码
#define MAX_MACHINE_CODE 1024
BYTE machine_code[MAX_MACHINE_CODE];
unsigned long machine_code_address = 0; // 一个地址对应一个字节
unsigned long machine_code_old_address = 0;
const char* micro_file_name = NULL; // 微指令文件路径
const char* target_file_name = NULL; // 目标文件路径
const char* list_file_name = NULL; // 列表文件路径
const char* dbg_file_name = NULL; // 调试信息文件路径
const unsigned long dbg_file_magic = 58;
const unsigned long dbg_file_version = 1;
// 输出汇编过程中发现的语法错误信息
void error_msg(const char* error_msg, int line_num)
{
if (line_num >= 1)
{
printf("%s:%d: error: %s\n", micro_file_name, line_num, error_msg);
}
else
{
printf("%s: error: %s\n", micro_file_name, error_msg);
}
exit(1);
}
char formated_msg[1024]; // 将格式化后的错误信息放在此字符串中。
void error_msg_miss_op(const char* instruction_name, int line_num)
{
sprintf(formated_msg, "%s 指令缺少操作数。", instruction_name);
error_msg(formated_msg, line_num);
}
void error_msg_wrong_op(const char* instruction_name, int line_num)
{
sprintf(formated_msg, "%s 指令不支持这样的操作数。", instruction_name);
error_msg(formated_msg, line_num);
}
// 定义关键字和解析函数的对应关系
typedef void(*PARSE_FUNCTION)(int line_num);
struct KEYWORD_FUNCTION_ENTRY
{
const char** keyword;
PARSE_FUNCTION parse_function;
};
// 指令名称
const char* fetch_instruction_keyword = "fetch";
const char* check_instruction_keyword = "check";
const char* hold_instruction_keyword = "hold";
const char* cli_instruction_keyword = "cli";
const char* sti_instruction_keyword = "sti";
const char* inta_instruction_keyword = "inta";
const char* dup_instruction_keyword = "dup";
const char* null_instruction_keyword = "null";
const char* path_instruction_keyword = "path";
const char* inc_instruction_keyword = "inc";
const char* reset_instruction_keyword = "reset"; // 复位
// 判断是否是立即数。不支持负数。
int is_immediate(const char* token)
{
return isdigit(token[0]);
}
// 根据立即数得到值。不支持负数。
unsigned long get_value_from_immediate(const char* immediate)
{
char* end;
int base = (immediate[0] == '0' && (immediate[1] == 'x' || immediate[1] == 'X')) ? 16 : 10;
return strtoul(immediate, &end, base);
}
// dup n, null
void parse_dup(int line_num)
{
char *op1, *op2;
int i;
unsigned long micro_instruction_count; // 微指令个数
unsigned long micro_code; // 微指令编码
op1 = strtok(NULL, delimit_char_comma);
op2 = strtok(NULL, delimit_char);
if (NULL == op1 || NULL == op2)
{
error_msg_miss_op(dup_instruction_keyword, line_num);
}
// dup微指令的第一个操作数必须是立即数(十进制或十六进制)
if (!is_immediate(op1))
{
error_msg_wrong_op(dup_instruction_keyword, line_num);
}
// 得到微指令个数
micro_instruction_count = get_value_from_immediate(op1);
// 解析第二个操作数
if (is_immediate(op2))
{
micro_code = get_value_from_immediate(op2);
}
else if (0 == stricmp(op2, null_instruction_keyword))
{
micro_code = 0xffffffff;
}
else
{
error_msg_wrong_op(dup_instruction_keyword, line_num);
}
for (i = 0; i < (int)micro_instruction_count; i++)
{
memcpy(&machine_code[machine_code_address], &micro_code, 4);
machine_code_address += 4;
}
}
// fetch
void parse_fetch(int line_num)
{
unsigned long ul = 0xffff47c7;
memcpy(&machine_code[machine_code_address], &ul, 4);
machine_code_address += 4;
}
// check irq
void parse_check(int line_num)
{
unsigned long ul = 0xffffffcb;
memcpy(&machine_code[machine_code_address], &ul, 4);
machine_code_address += 4;
}
// hold DMA
void parse_hold(int line_num)
{
unsigned long ul = 0xffffd5db;
memcpy(&machine_code[machine_code_address], &ul, 4);
machine_code_address += 4;
}
// cli
void parse_cli(int line_num)
{
unsigned long ul = 0xffffffd3;
memcpy(&machine_code[machine_code_address], &ul, 4);
machine_code_address += 4;
}
// sti
void parse_sti(int line_num)
{
unsigned long ul = 0xffffffd7;
memcpy(&machine_code[machine_code_address], &ul, 4);
machine_code_address += 4;
}
// inta
void parse_inta(int line_num)
{
unsigned long ul = 0xffffffcf;
memcpy(&machine_code[machine_code_address], &ul, 4);
machine_code_address += 4;
}
// null
void parse_null(int line_num)
{
unsigned long ul = 0xffffffff;
memcpy(&machine_code[machine_code_address], &ul, 4);
machine_code_address += 4;
}
// path op1, op2
void parse_path(int line_num)
{
char *op1, *op2;
int index;
op1 = strtok(NULL, delimit_char_comma);
op2 = strtok(NULL, delimit_char);
if (NULL == op1 || NULL == op2)
{
error_msg_miss_op(path_instruction_keyword, line_num);
}
index = match_ops(op1, op2);
if (0 == index)
{
error_msg_wrong_op(path_instruction_keyword, line_num);
}
memcpy(&machine_code[machine_code_address], &path_operand_table[index].micro_machine_code, 4);
machine_code_address += 4;
//
// 在代码行数据库中,标记此行是一个指令行
//
line_database[line_count].flag |= LF_INSTRUCTION;
}
// inc
void parse_inc(int line_num)
{
char *op;
int index;
op = strtok(NULL, delimit_char_comma);
if (NULL == op)
{
error_msg_miss_op(inc_instruction_keyword, line_num);
}
index = match_one_operand(op);
if (0 == index)
{
error_msg_wrong_op(inc_instruction_keyword, line_num);
}
memcpy(&machine_code[machine_code_address], &one_operand_table[index].micro_machine_code, 4);
machine_code_address += 4;
//
// 在代码行数据库中,标记此行是一个指令行
//
line_database[line_count].flag |= LF_INSTRUCTION;
}
// reset
void parse_reset(int line_num)
{
char *op;
int index;
op = strtok(NULL, delimit_char_comma);
if (NULL == op)
{
error_msg_miss_op(reset_instruction_keyword, line_num);
}
index = match_one_operand(op);
if (0 == index)
{
error_msg_wrong_op(reset_instruction_keyword, line_num);
}
memcpy(&machine_code[machine_code_address], &one_operand_table[index].micro_machine_code, 4);
machine_code_address += 4;
//
// 在代码行数据库中,标记此行是一个指令行
//
line_database[line_count].flag |= LF_INSTRUCTION;
}
//
// 必须将关键字及其解析函数放在下面的表中。从而可以使用“表驱动”的编程模式。
//
struct KEYWORD_FUNCTION_ENTRY keyword_function_table[] =
{
{ NULL, NULL } // 未用
,{ &fetch_instruction_keyword, parse_fetch }
,{ &check_instruction_keyword, parse_check }
,{ &hold_instruction_keyword, parse_hold }
,{ &dup_instruction_keyword, parse_dup }
,{ &cli_instruction_keyword, parse_cli }
,{ &sti_instruction_keyword, parse_sti }
,{ &inta_instruction_keyword, parse_inta }
,{ &null_instruction_keyword, parse_null }
,{ &path_instruction_keyword, parse_path }
,{ &inc_instruction_keyword, parse_inc }
,{ &reset_instruction_keyword, parse_reset }
};
// 判断是否是一个关键字。返回0,不是关键字;返回非0,是关键字,并且返回值就是关键字在表中的下标。
int match_keyword(const char* token)
{
int i;
for (i = 1; i<sizeof(keyword_function_table) / sizeof(keyword_function_table[0]); i++)
{
if (stricmp(token, *keyword_function_table[i].keyword) == 0)
{
return i;
}
}
return 0;
}
// 输出版本信息
void version_msg()
{
printf(
"8086微指令汇编器 [版本 2.0]\n"
);
}
// 输出帮助信息
void help_msg()
{
printf(
"8086微指令汇编器。\n\n"
"用法:\n\n"
" microasm.exe micro_file_name [options]\n\n"
"选项:\n\n"
" -g debug_file_name\t指定生成的调试信息文件路径。\n"
" -h\t\t\t打印此帮助信息。\n"
" -l list_file_name\t指定生成的列表文件路径。\n"
" -o target_file_name\t指定生成的目标文件路径。若未指定,默认生成 micro.obj 文件。\n"
" -v\t\t\t打印版本信息。\n"
);
printf("\n");
version_msg();
exit(1);
}
void argument_error_msg()
{
printf("命令行参数错误。\n\n");
help_msg();
}
// 处理器用户输入的命令行参数
void process_argument(int argc, char* argv[])
{
int i;
// argv[0] 是 "easm.exe",所以可以忽略。
for (i = 1; i<argc; i++)
{
if (strcmp(argv[i], "-v") == 0)
{
version_msg();
exit(1);
}
else if (strcmp(argv[i], "-h") == 0)
{
help_msg();
}
else if (strcmp(argv[i], "-o") == 0)
{
if (i + 1 < argc)
{
i++;
target_file_name = argv[i];
}
else
{
argument_error_msg();
}
}
else if (strcmp(argv[i], "-l") == 0)
{
if (i + 1 < argc)
{
i++;
list_file_name = argv[i];
}
else
{
argument_error_msg();
}
}
else if (strcmp(argv[i], "-g") == 0)
{
if (i + 1 < argc)
{
i++;
dbg_file_name = argv[i];
}
else
{
argument_error_msg();
}
}
else if (NULL == micro_file_name && argv[i][0] != '-')
{
// 输入的汇编源代码文件路径。
micro_file_name = argv[i];
}
else
{
argument_error_msg();
}
}
//
// 如果命令行参数中没有指定输入的汇编文件,就打印错误信息后退出
//
if (NULL == micro_file_name)
{
printf("命令行参数错误。没有指定微指令源代码文件的路径。\n");
help_msg();
}
}
// 将一个字符串写入二进制文件中。先将字符串长度写入文件,然后将字符串中的
// 每个字符依次写入文件,不包括字符串末尾的 0.
void write_string_to_binary_file(const char* str, FILE* fp)
{
int str_length;
if (str != NULL)
{
str_length = strlen(str);
fwrite(&str_length, 1, sizeof(str_length), fp);
fwrite(str, 1, str_length, fp);
}
else
{
str_length = 0;
fwrite(&str_length, 1, sizeof(str_length), fp);
}
}
int main(int argc, char* argv[])
{
FILE* fp;
char* token;
char line[MAX_LINE_LENGTH];
int i, j;
int line_num = 1; // 行号从第一行开始计数
int keyword_index;
unsigned long micro_code;
//
// 处理命令行参数
//
process_argument(argc, argv);
//
// 打开汇编源代码文件
//
fp = fopen(micro_file_name, "r");
if (NULL == fp)
{
printf("无法打开微指令源代码文件 %s\n", micro_file_name);
return 1;
}
////////////////////////////////////////////////////////////////////////////
//// 扫描
version_msg();
printf("\n正在汇编 %s...\n", micro_file_name);
//
// 一次读取一行文本,同时记录所有的代码行信息
//
while (fgets(line, sizeof(line), fp) != NULL)
{
//
// 将一行代码的信息记录到代码行数据库中
//
strcpy(line_database[line_count].line_string, line);
line_database[line_count].line_num = line_num;
line_database[line_count].address = machine_code_address;
//
// 将代码行中的注释剥离
//
line[strcspn(line, ";")] = 0;
//
// 开始解析代码行
//
token = strtok(line, delimit_char);
if (NULL == token)
{
// 如果是空行,不做任何处理
}
else if ((keyword_index = match_keyword(token)) != 0)
{
// 根据关键字进行相应的处理
keyword_function_table[keyword_index].parse_function(line_num);
}
else if (is_immediate(token))
{
// 将立即数直接作为微指令
micro_code = get_value_from_immediate(token);
memcpy(&machine_code[machine_code_address], &micro_code, 4);
machine_code_address += 4;
}
else
{
error_msg("无法识别的代码行。", line_num);
}
//
// 补充代码行数据库信息
//
line_database[line_count].machine_code_count = machine_code_address - machine_code_old_address;
machine_code_old_address = machine_code_address;
//
// 记录产生了机器码的代码行数量
//
if (line_database[line_count].machine_code_count != 0)
{
machine_code_line_count++;
}
//
// 增加行号
//
line_count++;
line_num++;
if (line_count == MAX_LINE_COUNT)
{
sprintf(formated_msg, "微指令文件中的代码行过多,最多只能有 %d 行代码。", MAX_LINE_COUNT);
error_msg(formated_msg, -1);
}
}
fclose(fp);
////////////////////////////////////////////////////////////////////////////
//// 产生各种输出文件
//
// 将机器码写入二进制文件
//
if (NULL == target_file_name)
{
target_file_name = "micro.obj";
}
fp = fopen(target_file_name, "wb");
if (NULL == fp)
{
printf("无法打开目标文件 %s\n", target_file_name);
return 1;
}
fwrite(machine_code, 1, machine_code_address, fp);
fclose(fp);
printf("\n生成目标文件 %s\n", target_file_name);
//
// 将代码行数据库中的信息写入列表文件
//
if (list_file_name != NULL)
{
fp = fopen(list_file_name, "w");
if (NULL == fp)
{
printf("无法打开列表文件 %s\n", list_file_name);
return 1;
}
for (i = 0; i<line_count; i++)
{
// 行号
fprintf(fp, "%04d ", line_database[i].line_num);
// 地址和机器码
if (line_database[i].machine_code_count > 0)
{
fprintf(fp, "%02X ", line_database[i].address);
for (j = 0; j<4; j++)
{
fprintf(fp, "%02X ", machine_code[line_database[i].address + j]);
}
fprintf(fp, " ");
}
else
{
fprintf(fp, " ");
}
// 源代码
fprintf(fp, line_database[i].line_string);
}
fclose(fp);
printf("生成列表文件 %s\n", list_file_name);
}
//
// 将代码行数据库中的信息写入二进制的调试信息文件。
//
// 调试信息的基本格式为:
// 魔数(4字节),固定不可改变
// 版本号(4字节),固定不可改变
// 源代码文件绝对路径字符串长度(4字节)
// 源代码文件绝对路径字符串(不包括字符串结尾的0)
// 列表文件绝对路径字符串长度(4字节)
// 列表文件绝对路径字符串(不包括字符串结尾的0)
//
// 代码行数据库中元素的数量(4字节)
// 代码行数据库中的所有元素
//
// 符号表元素的数量(4字节)
// 符号表中的所有元素
//
if (dbg_file_name != NULL)
{
fp = fopen(dbg_file_name, "wb");
if (NULL == fp)
{
printf("无法打开调试信息文件 %s\n", dbg_file_name);
return 1;
}
// 魔数
fwrite(&dbg_file_magic, 1, sizeof(dbg_file_magic), fp);
// 版本号
fwrite(&dbg_file_version, 1, sizeof(dbg_file_version), fp);
// 源代码文件路径
write_string_to_binary_file(micro_file_name, fp);
// 列表文件路径
write_string_to_binary_file(list_file_name, fp);
// 代码行数据库中的所有元素
fwrite(&machine_code_line_count, 1, sizeof(machine_code_line_count), fp);
for (i = 0; i<line_count; i++)
{
// 跳过没有产生机器码的代码行
if (0 == line_database[i].machine_code_count)
{
continue;
}
fwrite(&line_database[i].line_num, 1, sizeof(unsigned long), fp);
fwrite(&line_database[i].address, 1, sizeof(unsigned long), fp);
fwrite(&line_database[i].machine_code_count, 1, sizeof(int), fp);
fwrite(&line_database[i].flag, 1, sizeof(unsigned long), fp);
}
// 没有符号表。但是为了确保调试信息的格式能够被正确读取,必须写入符号表数量为 0
i = 0;
fwrite(&i, 1, sizeof(i), fp);
fclose(fp);
printf("生成调试信息文件 %s\n", dbg_file_name);
}
return 0;
}
添加文件
@echo off
microasm.exe rom.masm -o rom.rxm -l rom.lst -g rom.dbg
pause
\ No newline at end of file
添加文件
0001
0002
0003 ; 每一条汇编指令,即8086指令对应一段微程序,每一段微程序分配的空间总是8的倍数
0004 ; 若一条指令对应微指令的条数少于8的倍数,那么使用占位微指令填充
0005 ; 因此,所有指令的第一条微指令地址必须是8的倍数
0006 ; 取指微指令,所有指令的第一步均为取指操作,都要执行该条微指令
0007
0008
0009 ;===========================================================================
0010 ;0.取指指令
0011 00 C7 47 FF FF fetch instruction
0012 04 FF FF FF FF dup 7, null ; 7条占位微指令,本身没有意义,只起占位作用
0013
0014
0015 ;===========================================================================
0016 ;1.mov reg, imm 将立即数imm传送到寄存器reg中
0017 20 FD FF FF FF inc pc ; pc加1
0018 24 FF 47 EF FF path [pc], ir ; 将pc指定存储单元的字节传送到指令寄存器ir中
0019 28 FD FF FF FF inc pc
0020 2C FF 47 E9 FF path [pc], rd ; 将pc指定存储单元的字节传送到目的寄存器中,目的寄存器由指令寄存器ir中的低4位指定
0021 30 FD FF FF FF inc pc
0022
0023 34 CB FF FF FF check irq ; 查询8086的硬中断请求输入INTR,若INTR为高电平,表示有中断请求,
0024 ; 那么uPC转去执行固定的硬中断处理微程序,完成断点入栈并加载中断服务程序入口地址到PC,
0025 ; 运行中断服务程序
0026
0027 38 C3 FF FF FF reset upc ; 地址0传送到uPC寄存器输入端,下个时钟上升沿到来时,uPC写入0
0028 ; 微程序存储器ROM输出0地址处的微指令,即fetch instruction取指微指令,
0029 ; 在该微指令控制下,下个时钟上升沿到来时,取出PC指向的指令
0030
0031 3C FF FF FF FF dup 1, null
0032
0033
0034 ;===========================================================================
0035 ;2.mov rd, rs 将源寄存器rs的内容传送到目的寄存器rd中
0036 40 FD FF FF FF inc pc
0037 44 FF 47 EF FF path [pc], ir
0038
0039 48 FF C1 E9 FF path rs, rd ; 将rs的内容传送到rd中,指令寄存器ir中的低四位表示目的寄存器rd,
0040 ; 高四位表示源寄存器rs
0041
0042 4C FD FF FF FF inc pc
0043 50 CB FF FF FF check irq
0044 54 C3 FF FF FF reset upc
0045
0046 58 FF FF FF FF dup 2, null
0047
0048
0049 ;===========================================================================
0050 ;3.mov reg, symbol 将标号symbol指定存储单元的内容传送到寄存器中
0051 60 FD FF FF FF inc pc
0052 64 FF 47 EF FF path [pc], ir
0053 68 FD FF FF FF inc pc
0054 6C FF 47 E5 FF path [pc], mar ; 把pc指定单元的数据(源操作数地址symbol)传送到地址寄存器mar中
0055 70 FF 87 E9 FF path [mar], rd ; 把mar指定存储单元的数据传送到目的寄存器rd中
0056 74 FD FF FF FF inc pc
0057 78 CB FF FF FF check irq
0058 7C C3 FF FF FF reset upc
0059
0060
0061 ;===========================================================================
0062 ;4.mov rd, [rs] 将源地址寄存器rs指定存储单元的数据传送到目的寄存器rd中
0063 80 FD FF FF FF inc pc
0064 84 FF 47 EF FF path [pc], ir
0065 88 FF C1 E5 FF path rs, mar ; 将源寄存器rs保存的地址转移到地址寄存器mar中
0066 8C FF 87 E9 FF path [mar], rd
0067 90 FD FF FF FF inc pc
0068 94 CB FF FF FF check irq
0069 98 C3 FF FF FF reset upc
0070
0071 9C FF FF FF FF dup 1, null
0072
0073
0074 ;===========================================================================
0075 ;5.mov [rd], rs 将源寄存器rs的数据传送到目的地址寄存器rd指定的存储单元中
0076 A0 FD FF FF FF inc pc
0077 A4 FF 47 EF FF path [pc], ir
0078 A8 BF C1 E5 FF path rd, mar ; 将目的寄存器rd保存的地址转移到地址寄存器mar中
0079 AC FF 81 E7 FF path rs, [mar] ; 将源寄存器rs的数据传送到地址寄存器mar指定存储单元
0080 B0 FD FF FF FF inc pc
0081 B4 CB FF FF FF check irq
0082 B8 C3 FF FF FF reset upc
0083
0084 BC FF FF FF FF dup 1, null
0085
0086
0087 ;===========================================================================
0088 ;6.mov [rd], imm 将立即数传送到目的寄存器rd指定存储单元中
0089 C0 FD FF FF FF inc pc
0090 C4 FF 47 EF FF path [pc], ir
0091 C8 FD FF FF FF inc pc
0092 CC FF 47 E9 FF path [pc], rd
0093 D0 FD FF FF FF inc pc
0094 D4 CB FF FF FF check irq
0095 D8 C3 FF FF FF reset upc
0096
0097 DC FF FF FF FF dup 1, null
0098
0099
0100 ;===========================================================================
0101 ;7. mov symbol, rs 将源寄存器rs的数据传送到标号symbol指定存储单元中
0102 E0 FD FF FF FF inc pc
0103 E4 FF 47 EF FF path [pc], ir
0104 E8 FD FF FF FF inc pc
0105 EC FF 47 E5 FF path [pc], mar
0106 F0 FF 81 E7 FF path rs, [mar]
0107 F4 FD FF FF FF inc pc
0108 F8 CB FF FF FF check irq
0109 FC C3 FF FF FF reset upc
0110
0111
0112 ;===========================================================================
0113 ;8. add rd, rs 源寄存器rs与目的寄存器rd相加,无进位加法,结果写回rd中
0114 100 FD FF FF FF inc pc
0115 104 FF 47 EF FF path [pc], ir
0116 108 BF C1 E1 FF path rd, a ; 将目的寄存器rd的数据传送到累加器a中
0117 10C FF C1 E3 FF path rs, w ; 将源寄存器rs的数据传送到工作寄存器w中,
0118 ; a和w均为alu运算单元中的操作数寄存器
0119
0120 110 FF D1 E9 D9 path alu_add, rd ; 将累加器a与工作寄存器w相加的结果写回目的寄存器rd中
0121 114 FF CB EB FF path al_flag, flag ; 将运算标志位写入标志寄存器flag中
0122 118 FD FF FF FF inc pc
0123 11C CB FF FF FF check irq
0124 120 C3 FF FF FF reset upc
0125
0126 124 FF FF FF FF dup 7, null
0127
0128
0129 ;===========================================================================
0130 ;10. add rd, [rs] 源寄存器rs指定存储单元的数据与目的寄存器rd相加,结果写回rd中
0131 140 FD FF FF FF inc pc
0132 144 FF 47 EF FF path [pc], ir
0133 148 FF C1 E5 FF path rs, mar ; 把源寄存器rs的内容作为地址传送到mar中
0134 14C FF 87 E3 FF path [mar], w ; 将mar指定存储单元的数据传送到alu的工作寄存器w中
0135 150 BF C1 E1 FF path rd, a ; 把目的寄存器rd的数据传送到alu的累加器a中
0136 154 FF D1 E9 D9 path alu_add, rd
0137 158 FF CB EB FF path al_flag, flag
0138 15C FD FF FF FF inc pc
0139 160 CB FF FF FF check irq
0140 164 C3 FF FF FF reset upc
0141
0142 168 FF FF FF FF dup 6, null
0143
0144
0145 ;===========================================================================
0146 ;12. add rd, symbol 将标号symbol指定存储单元的数据传送到目的寄存器rd中
0147 180 FD FF FF FF inc pc
0148 184 FF 47 EF FF path [pc], ir
0149 188 FD FF FF FF inc pc
0150 18C FF 47 E5 FF path [pc], mar
0151 190 FF 87 E3 FF path [mar], w
0152 194 BF C1 E1 FF path rd, a
0153 198 FF D1 E9 D9 path alu_add, rd
0154 19C FF CB EB FF path al_flag, flag
0155 1A0 FD FF FF FF inc pc
0156 1A4 CB FF FF FF check irq
0157 1A8 C3 FF FF FF reset upc
0158
0159 1AC FF FF FF FF dup 5, null
0160
0161
0162 ;===========================================================================
0163 ;14. add rd, imm 将立即数imm传送到目的寄存器rd中
0164 1C0 FD FF FF FF inc pc
0165 1C4 FF 47 EF FF path [pc], ir
0166 1C8 FD FF FF FF inc pc
0167 1CC FF 47 E3 FF path [pc], w
0168 1D0 BF C1 E1 FF path rd, a
0169 1D4 FF D1 E9 D9 path alu_add, rd
0170 1D8 FF CB EB FF path al_flag, flag
0171 1DC FD FF FF FF inc pc
0172 1E0 CB FF FF FF check irq
0173 1E4 C3 FF FF FF reset upc
0174
0175 1E8 FF FF FF FF dup 6, null
0176
0177
0178 ;===========================================================================
0179 ;16. adc rd, rs rs与rd进行带进位的加法,结果写回目的寄存器rd中
0180 200 FD FF FF FF inc pc
0181 204 FF 47 EF FF path [pc], ir
0182 208 BF C1 E1 FF path rd, a
0183 20C FF C1 E3 FF path rs, w
0184 210 FF D1 E9 C9 path alu_adc, rd ; 将alu的累加器a与工作寄存器w进行无进位加法所得结果写回rd
0185 214 FF CB EB FF path al_flag, flag
0186 218 FD FF FF FF inc pc
0187 21C CB FF FF FF check irq
0188 220 C3 FF FF FF reset upc
0189
0190 224 FF FF FF FF dup 7, null
0191
0192
0193 ;===========================================================================
0194 ;18. adc rd, [rs]
0195 240 FD FF FF FF inc pc
0196 244 FF 47 EF FF path [pc], ir
0197 248 FF C1 E5 FF path rs, mar
0198 24C FF 87 E3 FF path [mar], w
0199 250 BF C1 E1 FF path rd, a
0200 254 FF D1 E9 C9 path alu_adc, rd
0201 258 FF CB EB FF path al_flag, flag
0202 25C FD FF FF FF inc pc
0203 260 CB FF FF FF check irq
0204 264 C3 FF FF FF reset upc
0205
0206 268 FF FF FF FF dup 6, null
0207
0208
0209 ;===========================================================================
0210 ;20. adc rd, symbol
0211 280 FD FF FF FF inc pc
0212 284 FF 47 EF FF path [pc], ir
0213 288 FD FF FF FF inc pc
0214 28C FF 47 E5 FF path [pc], mar
0215 290 FF 87 E3 FF path [mar], w
0216 294 BF C1 E1 FF path rd, a
0217 298 FF D1 E9 C9 path alu_adc, rd
0218 29C FF CB EB FF path al_flag, flag
0219 2A0 FD FF FF FF inc pc
0220 2A4 CB FF FF FF check irq
0221 2A8 C3 FF FF FF reset upc
0222
0223 2AC FF FF FF FF dup 5, null
0224
0225
0226 ;===========================================================================
0227 ;22. adc rd, imm
0228 2C0 FD FF FF FF inc pc
0229 2C4 FF 47 EF FF path [pc], ir
0230 2C8 FD FF FF FF inc pc
0231 2CC FF 47 E3 FF path [pc], w
0232 2D0 BF C1 E1 FF path rd, a
0233 2D4 FF D1 E9 C9 path alu_adc, rd
0234 2D8 FF CB EB FF path al_flag, flag
0235 2DC FD FF FF FF inc pc
0236 2E0 CB FF FF FF check irq
0237 2E4 C3 FF FF FF reset upc
0238
0239 2E8 FF FF FF FF dup 6, null
0240
0241
0242 ;===========================================================================
0243 ;24. sub rd, rs 将目的寄存器rd减去源寄存器rs,所得结果写回rd
0244 300 FD FF FF FF inc pc
0245 304 FF 47 EF FF path [pc], ir
0246 308 BF C1 E1 FF path rd, a
0247 30C FF C1 E3 FF path rs, w
0248 310 FF D1 E9 D6 path alu_sub, rd ; 无进位的减法,rd = rd - rs
0249 314 FF CB EB FF path al_flag, flag
0250 318 FD FF FF FF inc pc
0251 31C CB FF FF FF check irq
0252 320 C3 FF FF FF reset upc
0253
0254 324 FF FF FF FF dup 7, null
0255
0256
0257 ;===========================================================================
0258 ;26. sub rd, [rs]
0259 340 FD FF FF FF inc pc
0260 344 FF 47 EF FF path [pc], ir
0261 348 FF C1 E5 FF path rs, mar
0262 34C FF 87 E3 FF path [mar], w
0263 350 BF C1 E1 FF path rd, a
0264 354 FF D1 E9 D6 path alu_sub, rd
0265 358 FF CB EB FF path al_flag, flag
0266 35C FD FF FF FF inc pc
0267 360 CB FF FF FF check irq
0268 364 C3 FF FF FF reset upc
0269
0270 368 FF FF FF FF dup 6, null
0271
0272
0273 ;===========================================================================
0274 ;28. sub rd, symbol
0275 380 FD FF FF FF inc pc
0276 384 FF 47 EF FF path [pc], ir
0277 388 FD FF FF FF inc pc
0278 38C FF 47 E5 FF path [pc], mar
0279 390 FF 87 E3 FF path [mar], w ; 将mar指定存储单元的数据传送到alu的工作寄存器w中
0280 394 BF C1 E1 FF path rd, a
0281 398 FF D1 E9 D6 path alu_sub, rd
0282 39C FF CB EB FF path al_flag, flag
0283 3A0 FD FF FF FF inc pc
0284 3A4 CB FF FF FF check irq
0285 3A8 C3 FF FF FF reset upc
0286
0287 3AC FF FF FF FF dup 5, null
0288
0289
0290 ;===========================================================================
0291 ;30. sub rd, imm
0292 3C0 FD FF FF FF inc pc
0293 3C4 FF 47 EF FF path [pc], ir
0294 3C8 FD FF FF FF inc pc
0295 3CC FF 47 E3 FF path [pc], w
0296 3D0 BF C1 E1 FF path rd, a
0297 3D4 FF D1 E9 D6 path alu_sub, rd
0298 3D8 FF CB EB FF path al_flag, flag
0299 3DC FD FF FF FF inc pc
0300 3E0 CB FF FF FF check irq
0301 3E4 C3 FF FF FF reset upc
0302
0303 3E8 FF FF FF FF dup 6, null
0304
0305
0306 ;===========================================================================
0307 ;32. sbb rd, rs 带进位的减法
0308 400 FD FF FF FF inc pc
0309 404 FF 47 EF FF path [pc], ir
0310 408 BF C1 E1 FF path rd, a
0311 40C FF C1 E3 FF path rs, w
0312
0313 410 FF D1 E9 C6 path alu_sbb, rd ; alu中的累加器a减去工作寄存器w,再减去低位的借位,
0314 ; 所得结果写回目的寄存器rd中
0315 414 FF CB EB FF path al_flag, flag
0316 418 FD FF FF FF inc pc
0317 41C CB FF FF FF check irq
0318 420 C3 FF FF FF reset upc
0319
0320 424 FF FF FF FF dup 7, null
0321
0322
0323 ;===========================================================================
0324 ;34. sbb rd, [rs]
0325 440 FD FF FF FF inc pc
0326 444 FF 47 EF FF path [pc], ir
0327 448 FF C1 E5 FF path rs, mar
0328 44C FF 87 E3 FF path [mar], w
0329 450 BF C1 E1 FF path rd, a
0330 454 FF D1 E9 C6 path alu_sbb, rd
0331 458 FF CB EB FF path al_flag, flag
0332 45C FD FF FF FF inc pc
0333 460 CB FF FF FF check irq
0334 464 C3 FF FF FF reset upc
0335
0336 468 FF FF FF FF dup 6, null
0337
0338
0339 ;===========================================================================
0340 ;36. sbb rd, symbol
0341 480 FD FF FF FF inc pc
0342 484 FF 47 EF FF path [pc], ir
0343 488 FD FF FF FF inc pc
0344 48C FF 47 E5 FF path [pc], mar
0345 490 FF 87 E3 FF path [mar], w
0346 494 BF C1 E1 FF path rd, a
0347 498 FF D1 E9 C6 path alu_sbb, rd
0348 49C FF CB EB FF path al_flag, flag
0349 4A0 FD FF FF FF inc pc
0350 4A4 CB FF FF FF check irq
0351 4A8 C3 FF FF FF reset upc
0352
0353 4AC FF FF FF FF dup 5, null
0354
0355
0356 ;===========================================================================
0357 ;38. sbb a, imm
0358 4C0 FD FF FF FF inc pc
0359 4C4 FF 47 EF FF path [pc], ir
0360 4C8 FD FF FF FF inc pc
0361 4CC FF 47 E3 FF path [pc], w
0362 4D0 BF C1 E1 FF path rd, a
0363 4D4 FF D1 E9 C6 path alu_sbb, rd
0364 4D8 FF CB EB FF path al_flag, flag
0365 4DC FD FF FF FF inc pc
0366 4E0 CB FF FF FF check irq
0367 4E4 C3 FF FF FF reset upc
0368
0369 4E8 FF FF FF FF dup 6, null
0370
0371
0372 ;===========================================================================
0373 ;40.空指令
0374 500 FF FF FF FF dup 8, null
0375
0376 ;41.空指令
0377 520 FF FF FF FF dup 8, null
0378
0379
0380 ;===========================================================================
0381 ;42. and rd, rs
0382 540 FD FF FF FF inc pc
0383 544 FF 47 EF FF path [pc], ir
0384 548 BF C1 E1 FF path rd, a
0385 54C FF C1 E3 FF path rs, w
0386 550 FF D1 E9 FB path alu_and, rd ; alu中的累加器a与工作寄存器w进行按位与运算,结果写回rd中
0387 554 FF CB EB FF path al_flag, flag
0388 558 FD FF FF FF inc pc
0389 55C CB FF FF FF check irq
0390 560 C3 FF FF FF reset upc
0391
0392 564 FF FF FF FF dup 7, null
0393
0394
0395 ;===========================================================================
0396 ;44. and rd, [rs]
0397 580 FD FF FF FF inc pc
0398 584 FF 47 EF FF path [pc], ir
0399 588 FF C1 E5 FF path rs, mar
0400 58C FF 87 E3 FF path [mar], w
0401 590 BF C1 E1 FF path rd, a
0402 594 FF D1 E9 FB path alu_and, rd
0403 598 FF CB EB FF path al_flag, flag
0404 59C FD FF FF FF inc pc
0405 5A0 CB FF FF FF check irq
0406 5A4 C3 FF FF FF reset upc
0407
0408 5A8 FF FF FF FF dup 6, null
0409
0410
0411 ;===========================================================================
0412 ;46. and rd, symbol
0413 5C0 FD FF FF FF inc pc
0414 5C4 FF 47 EF FF path [pc], ir
0415 5C8 FD FF FF FF inc pc
0416 5CC FF 47 E5 FF path [pc], mar
0417 5D0 FF 87 E3 FF path [mar], w
0418 5D4 BF C1 E1 FF path rd, a
0419 5D8 FF D1 E9 FB path alu_and, rd
0420 5DC FF CB EB FF path al_flag, flag
0421 5E0 FD FF FF FF inc pc
0422 5E4 CB FF FF FF check irq
0423 5E8 C3 FF FF FF reset upc
0424
0425 5EC FF FF FF FF dup 5, null
0426
0427
0428 ;===========================================================================
0429 ;48. and rd, imm
0430 600 FD FF FF FF inc pc
0431 604 FF 47 EF FF path [pc], ir
0432 608 FD FF FF FF inc pc
0433 60C FF 47 E3 FF path [pc], w
0434 610 BF C1 E1 FF path rd, a
0435 614 FF D1 E9 FB path alu_and, rd
0436 618 FF CB EB FF path al_flag, flag
0437 61C FD FF FF FF inc pc
0438 620 CB FF FF FF check irq
0439 624 C3 FF FF FF reset upc
0440
0441 628 FF FF FF FF dup 6, null
0442
0443
0444 ;===========================================================================
0445 ;50. or rd, rs
0446 640 FD FF FF FF inc pc
0447 644 FF 47 EF FF path [pc], ir
0448 648 BF C1 E1 FF path rd, a
0449 64C FF C1 E3 FF path rs, w
0450 650 FF D1 E9 FE path alu_or, rd ; 将alu中的累加器a与工作寄存器w进行按位或运算,结果写回rd中
0451 654 FF CB EB FF path al_flag, flag
0452 658 FD FF FF FF inc pc
0453 65C CB FF FF FF check irq
0454 660 C3 FF FF FF reset upc
0455
0456 664 FF FF FF FF dup 7, null
0457
0458
0459 ;===========================================================================
0460 ;52. or rd, [rs]
0461 680 FD FF FF FF inc pc
0462 684 FF 47 EF FF path [pc], ir
0463 688 FF C1 E5 FF path rs, mar
0464 68C FF 87 E3 FF path [mar], w
0465 690 BF C1 E1 FF path rd, a
0466 694 FF D1 E9 FE path alu_or, rd
0467 698 FF CB EB FF path al_flag, flag
0468 69C FD FF FF FF inc pc
0469 6A0 CB FF FF FF check irq
0470 6A4 C3 FF FF FF reset upc
0471
0472 6A8 FF FF FF FF dup 6, null
0473
0474
0475 ;===========================================================================
0476 ;54. or rd, symbol
0477 6C0 FD FF FF FF inc pc
0478 6C4 FF 47 EF FF path [pc], ir
0479 6C8 FD FF FF FF inc pc
0480 6CC FF 47 E5 FF path [pc], mar
0481 6D0 FF 87 E3 FF path [mar], w
0482 6D4 BF C1 E1 FF path rd, a
0483 6D8 FF D1 E9 FE path alu_or, rd
0484 6DC FF CB EB FF path al_flag, flag
0485 6E0 FD FF FF FF inc pc
0486 6E4 CB FF FF FF check irq
0487 6E8 C3 FF FF FF reset upc
0488
0489 6EC FF FF FF FF dup 5, null
0490
0491
0492 ;===========================================================================
0493 ;56. or rd, imm
0494 700 FD FF FF FF inc pc
0495 704 FF 47 EF FF path [pc], ir
0496 708 FD FF FF FF inc pc
0497 70C FF 47 E3 FF path [pc], w
0498 710 BF C1 E1 FF path rd, a
0499 714 FF D1 E9 FE path alu_or, rd
0500 718 FF CB EB FF path al_flag, flag
0501 71C FD FF FF FF inc pc
0502 720 CB FF FF FF check irq
0503 724 C3 FF FF FF reset upc
0504
0505 728 FF FF FF FF dup 6, null
0506
0507
0508 ;===========================================================================
0509 ;58. xor rd, rs rs与rd进行异或运算,结果写回rd
0510 740 FD FF FF FF inc pc
0511 744 FF 47 EF FF path [pc], ir
0512 748 BF C1 E1 FF path rd, a
0513 74C FF C1 E3 FF path rs, w
0514 750 FF D1 E9 F6 path alu_xor, rd ; 将累加器a与工作寄存器w进行按位异或运算的结果写回rd
0515 754 FF CB EB FF path al_flag, flag
0516 758 FD FF FF FF inc pc
0517 75C CB FF FF FF check irq
0518 760 C3 FF FF FF reset upc
0519
0520 764 FF FF FF FF dup 7, null
0521
0522
0523 ;===========================================================================
0524 ;60. xor rd, [reg]
0525 780 FD FF FF FF inc pc
0526 784 FF 47 EF FF path [pc], ir
0527 788 FF C1 E5 FF path rs, mar
0528 78C FF 87 E3 FF path [mar], w
0529 790 BF C1 E1 FF path rd, a
0530 794 FF D1 E9 F6 path alu_xor, rd
0531 798 FF CB EB FF path al_flag, flag
0532 79C FD FF FF FF inc pc
0533 7A0 CB FF FF FF check irq
0534 7A4 C3 FF FF FF reset upc
0535
0536 7A8 FF FF FF FF dup 6, null
0537
0538
0539 ;===========================================================================
0540 ;62. xor rd, symbol
0541 7C0 FD FF FF FF inc pc
0542 7C4 FF 47 EF FF path [pc], ir
0543 7C8 FD FF FF FF inc pc
0544 7CC FF 47 E5 FF path [pc], mar
0545 7D0 FF 87 E3 FF path [mar], w
0546 7D4 BF C1 E1 FF path rd, a
0547 7D8 FF D1 E9 F6 path alu_xor, rd
0548 7DC FF CB EB FF path al_flag, flag
0549 7E0 FD FF FF FF inc pc
0550 7E4 CB FF FF FF check irq
0551 7E8 C3 FF FF FF reset upc
0552
0553 7EC FF FF FF FF dup 5, null
0554
0555
0556 ;===========================================================================
0557 ;64. xor rd, imm
0558 800 FD FF FF FF inc pc
0559 804 FF 47 EF FF path [pc], ir
0560 808 FD FF FF FF inc pc
0561 80C FF 47 E3 FF path [pc], w
0562 810 BF C1 E1 FF path rd, a
0563 814 FF D1 E9 F6 path alu_xor, rd
0564 818 FF CB EB FF path al_flag, flag
0565 81C FD FF FF FF inc pc
0566 820 CB FF FF FF check irq
0567 824 C3 FF FF FF reset upc
0568
0569 828 FF FF FF FF dup 6, null
0570
0571
0572 ;===========================================================================
0573 ;66. push rs 将rs寄存器的内容入栈保存
0574 ; 更新栈顶
0575 840 BF C1 E1 FF path sp, a ; 将栈寄存器sp传送到累加器a中
0576 844 FF D1 E9 DF path alu_dec, sp ; sp = sp -1,入栈时,sp做减法,向低地址空间生长
0577
0578 ; 入栈
0579 848 BF C1 E5 FF path sp, mar ; 把新的栈指针sp传送到地址寄存器mar中
0580 84C FF 81 E7 FF path rs, [mar] ; 把rs寄存器的内容传送到mar指定存储单元,完成入栈保存
0581 850 FD FF FF FF inc pc
0582 854 CB FF FF FF check irq
0583 858 C3 FF FF FF reset upc
0584
0585 85C FF FF FF FF dup 1, null
0586
0587
0588 ;===========================================================================
0589 ;67. pop rd 将栈寄存器sp指定存储单元内容出栈,并写入目的寄存器rd中
0590 ; 出栈
0591 860 BF C1 E5 FF path sp, mar ; 把栈寄存器sp传送到地址寄存器mar中
0592 864 FF 87 E9 FF path [mar], rd ; 把mar指定存储单元内容传送到目的寄存器rd中,完成出栈
0593
0594 ; 出栈后需要更新栈顶
0595 868 BF C1 E1 FF path sp, a ; 把sp传送到a
0596 86C FF D1 E9 D0 path alu_inc, sp ; 出栈时,栈顶向高地址空间生长,因此将sp加1
0597 870 FD FF FF FF inc pc
0598 874 CB FF FF FF check irq
0599 878 C3 FF FF FF reset upc
0600
0601 87C FF FF FF FF dup 1, null
0602
0603
0604 ;===========================================================================
0605 ;68. not reg 按位取反运算,reg既是源操作数也是目的操作数
0606 880 FD FF FF FF inc pc
0607 884 FF 47 EF FF path [pc], ir
0608 888 BF C1 E1 FF path rd, a ; 把reg作为源操作数传送到a中
0609 88C FF D1 E9 F0 path alu_not, rd ; 将a取反运算的结果写回目的寄存器rd
0610 890 FF CB EB FF path al_flag, flag
0611 894 FD FF FF FF inc pc
0612 898 CB FF FF FF check irq
0613 89C C3 FF FF FF reset upc
0614
0615
0616 ;===========================================================================
0617 ; test指令主要影响ZF标志
0618 ;69. test reg, imm
0619 8A0 FD FF FF FF inc pc
0620 8A4 FF 47 EF FF path [pc], ir
0621 8A8 BF C1 E1 FF path rd, a
0622 8AC FD FF FF FF inc pc
0623 8B0 FF 47 E3 FF path [pc], w
0624 8B4 FF CB EB FF path al_flag, flag
0625 8B8 FD FF FF FF inc pc
0626 8BC CB FF FF FF check irq
0627 8C0 C3 FF FF FF reset upc
0628
0629 8C4 FF FF FF FF dup 7, null
0630
0631
0632 ;===========================================================================
0633 ;71. cmp reg, immediate 比较寄存器reg与立即数的大小,修改标志寄存器
0634 8E0 FD FF FF FF inc pc
0635 8E4 FF 47 EF FF path [pc], ir
0636 8E8 BF C1 E1 FF path rd, a ; 把比较寄存器的内容传送到累加器a中
0637 8EC FD FF FF FF inc pc ; PC加1,指向立即数字节
0638 8F0 FF 47 E3 FF path [pc], w ; 把立即数传送到工作寄存器w中
0639 8F4 FF D1 E1 D6 path alu_sub, a ; 寄存器减去立即数的结果写回a中
0640 8F8 FF CB EB FF path al_flag, flag ; 把相减后的标志写入标志寄存器中
0641 8FC FD FF FF FF inc pc
0642 900 DB D5 FF FF hold DMA ; 查询DMA请求,若有DMA请求,则停止运行,cpu让出总线给8237控制器使用
0643 ; DMA传送结束后,从该处继续运行微程序
0644 904 CB FF FF FF check irq
0645 908 C3 FF FF FF reset upc
0646
0647 90C FF FF FF FF dup 5, null
0648
0649
0650 ;===========================================================================
0651 ;73. cmp reg, reg
0652 920 FD FF FF FF inc pc
0653 924 FF 47 EF FF path [pc], ir
0654 928 BF C1 E1 FF path rd, a
0655 92C FF C1 E3 FF path rs, w
0656 930 FF D1 E1 D6 path alu_sub, a
0657 934 FF CB EB FF path al_flag, flag
0658 938 FD FF FF FF inc pc
0659 93C CB FF FF FF check irq
0660 940 C3 FF FF FF reset upc
0661
0662 944 FF FF FF FF dup 7, null
0663
0664
0665 ;===========================================================================
0666 ;75. in al, imm 把立即数imm指定的外设端口数据读入cpu内部寄存器al中
0667 960 FD FF FF FF inc pc
0668 964 FF 47 EF FF path [pc], ir
0669 968 FD FF FF FF inc pc
0670 96C FF 47 E5 FF path [pc], mar
0671 970 FE 87 E9 FF path <mar>, rd ; 把mar指定的外设端口寄存器的数据传送到目的寄存器rd中
0672 974 FD FF FF FF inc pc
0673 978 C3 FF FF FF reset upc
0674
0675 97C FF FF FF FF dup 1, null
0676
0677
0678 ;===========================================================================
0679 ;76. in al, dl
0680 980 FD FF FF FF inc pc
0681 984 FF 47 EF FF path [pc], ir
0682 988 FF C1 E5 FF path rs, mar
0683 98C FE 87 E9 FF path <mar>, rd
0684 990 FD FF FF FF inc pc
0685 994 C3 FF FF FF reset upc
0686
0687 998 FF FF FF FF dup 2, null
0688
0689
0690 ;===========================================================================
0691 ;77. out dl, al
0692 9A0 FD FF FF FF inc pc
0693 9A4 FF 47 EF FF path [pc], ir
0694 9A8 BF C1 E5 FF path rd, mar
0695 9AC FE 81 E7 FF path rs, <mar>
0696 9B0 FD FF FF FF inc pc
0697 9B4 C3 FF FF FF reset upc
0698
0699 9B8 FF FF FF FF dup 2, null
0700
0701
0702 ;===========================================================================
0703 ;78. out imm, al 把al的数据传送到imm指定的外设端口
0704 9C0 FD FF FF FF inc pc
0705 9C4 FF 47 EF FF path [pc], ir
0706 9C8 FD FF FF FF inc pc
0707 9CC FF 47 E5 FF path [pc], mar
0708 9D0 FE 81 E7 FF path rs, <mar> ; 把源寄存器rs的内容传送到mar指定的外设端口
0709 9D4 FD FF FF FF inc pc
0710 9D8 C3 FF FF FF reset upc
0711
0712 9DC FF FF FF FF dup 1, null
0713
0714
0715 ;===========================================================================
0716 ;79. lea rd, symbol 把标号symbol表示的地址传送到寄存器rd中
0717 9E0 FD FF FF FF inc pc
0718 9E4 FF 47 EF FF path [pc], ir
0719 9E8 FD FF FF FF inc pc
0720 9EC FF 47 E9 FF path [pc], rd
0721 9F0 FD FF FF FF inc pc
0722 9F4 CB FF FF FF check irq
0723 9F8 C3 FF FF FF reset upc
0724
0725 9FC FF FF FF FF dup 1, null
0726
0727
0728 ;=====================================================================
0729 ;80. ja symbol
0730 A00 CB FF FF FF check irq
0731 A04 FD FF FF FF inc pc
0732 A08 FF C5 E5 FF path pc, mar ;将PC值传送到地址寄存器mar中
0733
0734 ;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
0735 ;若转移条件不成立,则PC加1,指向下一条指令
0736 A0C FD 86 7F FF path ja[mar], pc
0737 A10 C3 FF FF FF reset upc
0738
0739 A14 FF FF FF FF dup 3, null
0740
0741 ;=====================================================================
0742 ;81. jb symbol
0743 A20 CB FF FF FF check irq
0744 A24 FD FF FF FF inc pc
0745 A28 FF C5 E5 FF path pc, mar
0746
0747 ;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
0748 ;若转移条件不成立,则PC加1,指向下一条指令
0749 A2C FD 86 9F FF path jb[mar], pc
0750 A30 C3 FF FF FF reset upc
0751
0752 A34 FF FF FF FF dup 3, null
0753
0754 ;=====================================================================
0755 ;82. jg symbol
0756 A40 CB FF FF FF check irq
0757 A44 FD FF FF FF inc pc
0758 A48 FF C5 E5 FF path pc, mar
0759
0760 ;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
0761 ;若转移条件不成立,则PC加1,指向下一条指令
0762 A4C FD 86 BF FF path jg[mar], pc
0763 A50 C3 FF FF FF reset upc
0764
0765 A54 FF FF FF FF dup 3, null
0766
0767 ;=====================================================================
0768 ;83. jl symbol
0769 A60 CB FF FF FF check irq
0770 A64 FD FF FF FF inc pc
0771 A68 FF C5 E5 FF path pc, mar
0772
0773 ;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
0774 ;若转移条件不成立,则PC加1,指向下一条指令
0775 A6C FD 86 DF FF path jl[mar], pc
0776 A70 C3 FF FF FF reset upc
0777
0778 A74 FF FF FF FF dup 3, null
0779
0780 ;=====================================================================
0781 ;84. je symbol
0782 A80 CB FF FF FF check irq
0783 A84 FD FF FF FF inc pc
0784 A88 FF C5 E5 FF path pc, mar
0785
0786 ;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
0787 ;若转移条件不成立,则PC加1,指向下一条指令
0788 A8C FD 86 1F FF path jz[mar], pc
0789 A90 C3 FF FF FF reset upc
0790
0791 A94 FF FF FF FF dup 3, null
0792
0793 ;=====================================================================
0794 ;85. jne symbol
0795 AA0 CB FF FF FF check irq
0796 AA4 FD FF FF FF inc pc
0797 AA8 FF C5 E5 FF path pc, mar
0798
0799 ;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
0800 ;若转移条件不成立,则PC加1,指向下一条指令
0801 AAC FD 86 3F FF path jnz[mar], pc
0802 AB0 C3 FF FF FF reset upc
0803
0804 AB4 FF FF FF FF dup 3, null
0805
0806 ;=====================================================================
0807 ;86. jc symbol
0808 AC0 CB FF FF FF check irq
0809 AC4 FD FF FF FF inc pc
0810 AC8 FF C5 E5 FF path pc, mar
0811
0812 ;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
0813 ;若转移条件不成立,则PC加1,指向下一条指令
0814 ACC FD 86 5F FF path jc[mar], pc
0815 AD0 C3 FF FF FF reset upc
0816
0817 AD4 FF FF FF FF dup 3, null
0818
0819 ;=====================================================================
0820 ;87. jmp symbol
0821 AE0 CB FF FF FF check irq
0822 AE4 FD FF FF FF inc pc
0823 AE8 FF C5 E5 FF path pc, mar
0824
0825 ;将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中,无条件跳转
0826 AEC FD 86 FF FF path jmp[mar], pc
0827 AF0 C3 FF FF FF reset upc
0828
0829 AF4 FF FF FF FF dup 3, null
0830
0831 ;=====================================================================
0832 ;88. loop symbol 将cl作为目的操作数减1,改变零标志,若zf = 1,则跳转
0833 B00 FD FF FF FF inc pc
0834 B04 FF 47 EF FF path [pc], ir
0835 B08 BF C1 E1 FF path rd, a
0836 B0C FF D1 E9 DF path alu_dec, rd
0837 B10 FF CB EB FF path al_flag, flag
0838 B14 FD FF FF FF inc pc
0839 B18 FF C5 E5 FF path pc, mar
0840 B1C FD 86 FF FF path jmp[mar], pc
0841 B20 CB FF FF FF check irq
0842 B24 C3 FF FF FF reset upc
0843
0844 B28 FF FF FF FF dup 6, null
0845
0846 ;====================================================================================================
0847
0848 ; 软中断,首先将标志寄存器入栈,清除中断标志IF,并将当前程序断点的地址入栈保护,从
0849 ; 中断向量表中获取中断入口地址,CPU转向中断入口地址去执行相应的中断服务程序。
0850 ; 中断向量表段地址保存在ES寄存器中
0851 ;90. int immediate
0852 ; 将标志寄存器入栈
0853 B40 FD FF FF FF inc pc
0854 B44 FF 47 EF FF path [pc], ir
0855 B48 BF C1 E1 FF path sp, a
0856 B4C BF C1 E3 FF path sp, w
0857 B50 FF D1 E9 DF path alu_dec, sp
0858 B54 BF C1 E5 FF path sp, mar
0859 B58 FF 83 E7 FF path flag, [mar]
0860
0861 ; 更新栈顶
0862 B5C BF C1 E1 FF path sp, a
0863 B60 BF C1 E3 FF path sp, w
0864 B64 FF D1 E9 DF path alu_dec, sp
0865
0866 ; 计算中断服务程序入口地址
0867 B68 FD FF FF FF inc pc
0868 B6C FF 47 E5 FF path [pc], mar
0869
0870 B70 FD FF FF FF inc pc ;下一条指令地址(中断返回地址)暂存到a
0871 B74 FF C5 E1 FF path pc, a
0872
0873 ; 将中断服务程序入口地址置入pc,准备执行服务程序
0874 B78 FF 86 FF FF path [mar], pc
0875
0876 ; 将a中的返回地址入栈
0877 B7C BF C1 E5 FF path sp, mar
0878 B80 FF 91 E7 FF path a, [mar]
0879 B84 C3 FF FF FF reset upc
0880
0881 B88 FF FF FF FF dup 6, null
0882
0883
0884
0885 ;====================================================================================================
0886 ; 中断返回指令,执行出栈操作,后进先出
0887 ;93. iret
0888 BA0 FD FF FF FF inc pc
0889 BA4 FF 47 EF FF path [pc], ir
0890
0891 ; 恢复中断返回地址,即中断返回地址出栈
0892 BA8 BF C1 E5 FF path sp, mar
0893 BAC FF 86 FF FF path [mar], pc
0894
0895 ; 出栈后栈顶指针寄存器sp加1,指向先于返回地址入栈的对象
0896 BB0 BF C1 E1 FF path sp, a
0897 BB4 FF D1 E9 D0 path alu_inc, sp
0898
0899 ; 恢复标志寄存器内容,即标志寄存器FLAG出栈
0900 BB8 BF C1 E5 FF path sp, mar
0901 BBC FF 87 EB FF path [mar], flag
0902
0903 ; 出栈后栈顶指针寄存器sp加1,指向先于标志寄存器入栈的对象
0904 BC0 BF C1 E1 FF path sp, a
0905 BC4 FF D1 E9 D0 path alu_inc, sp
0906
0907 ; 查询中断请求,若存在,则继续处理中断
0908 BC8 CB FF FF FF check irq
0909 BCC C3 FF FF FF reset upc
0910
0911 BD0 FF FF FF FF dup 4, null
0912
0913
0914 ;====================================================================================================
0915
0916 ;95. sal rd, rs 算术左移指令
0917 BE0 FD FF FF FF inc pc
0918 BE4 FF 47 EF FF path [pc], ir
0919 BE8 FF C1 E3 FF path rs, w
0920 BEC BF C1 E1 FF path rd, a
0921 BF0 FF C9 E8 7F path alu_sal, rd
0922 BF4 FF D3 EB FF path shift_flag, flag
0923 BF8 FD FF FF FF inc pc
0924 BFC CB FF FF FF check irq
0925 C00 C3 FF FF FF reset upc
0926
0927 C04 FF FF FF FF dup 7, null
0928
0929
0930 ;===========================================================================
0931 ;97. sar rd, rs 算术右移指令
0932 C20 FD FF FF FF inc pc
0933 C24 FF 47 EF FF path [pc], ir
0934 C28 FF C1 E3 FF path rs, w
0935 C2C BF C1 E1 FF path rd, a
0936 C30 FF C9 E9 7F path alu_sar, rd
0937 C34 FF D3 EB FF path shift_flag, flag
0938 C38 FD FF FF FF inc pc
0939 C3C CB FF FF FF check irq
0940 C40 C3 FF FF FF reset upc
0941
0942 C44 FF FF FF FF dup 7, null
0943
0944
0945 ;===========================================================================
0946 ;99. shl rd, rs 逻辑左移指令
0947 C60 FD FF FF FF inc pc
0948 C64 FF 47 EF FF path [pc], ir
0949 C68 FF C1 E3 FF path rs, w
0950 C6C BF C1 E1 FF path rd, a
0951 C70 FF C9 E8 3F path alu_shl, rd
0952 C74 FF D3 EB FF path shift_flag, flag
0953 C78 FD FF FF FF inc pc
0954 C7C CB FF FF FF check irq
0955 C80 C3 FF FF FF reset upc
0956
0957 C84 FF FF FF FF dup 7, null
0958
0959
0960 ;===========================================================================
0961 ;101. shr rd, rs 逻辑右移指令
0962 CA0 FD FF FF FF inc pc
0963 CA4 FF 47 EF FF path [pc], ir
0964 CA8 FF C1 E3 FF path rs, w
0965 CAC BF C1 E1 FF path rd, a
0966 CB0 FF C9 E9 3F path alu_shr, rd
0967 CB4 FF D3 EB FF path shift_flag, flag
0968 CB8 FD FF FF FF inc pc
0969 CBC CB FF FF FF check irq
0970 CC0 C3 FF FF FF reset upc
0971
0972 CC4 FF FF FF FF dup 7, null
0973
0974
0975 ;===========================================================================
0976 ;103. rol rd, rs 不带进位的循环左移指令
0977 CE0 FD FF FF FF inc pc
0978 CE4 FF 47 EF FF path [pc], ir
0979 CE8 FF C1 E3 FF path rs, w
0980 CEC BF C1 E1 FF path rd, a
0981 CF0 FF C9 E8 BF path alu_rol, rd
0982 CF4 FF D3 EB FF path shift_flag, flag
0983 CF8 FD FF FF FF inc pc
0984 CFC CB FF FF FF check irq
0985 D00 C3 FF FF FF reset upc
0986
0987 D04 FF FF FF FF dup 7, null
0988
0989
0990 ;===========================================================================
0991 ;105. ror rd, rs 不带进位的循环右移指令
0992 D20 FD FF FF FF inc pc
0993 D24 FF 47 EF FF path [pc], ir
0994 D28 FF C1 E3 FF path rs, w
0995 D2C BF C1 E1 FF path rd, a
0996 D30 FF C9 E9 BF path alu_ror, rd
0997 D34 FF D3 EB FF path shift_flag, flag
0998 D38 FD FF FF FF inc pc
0999 D3C CB FF FF FF check irq
1000 D40 C3 FF FF FF reset upc
1001
1002 D44 FF FF FF FF dup 7, null
1003
1004
1005 ;===========================================================================
1006 ;107. rcl rd, rs 带进位的循环左移指令
1007 D60 FD FF FF FF inc pc
1008 D64 FF 47 EF FF path [pc], ir
1009 D68 FF C1 E3 FF path rs, w
1010 D6C BF C1 E1 FF path rd, a
1011 D70 FF C9 E8 FF path alu_rcl, rd
1012 D74 FF D3 EB FF path shift_flag, flag
1013 D78 FD FF FF FF inc pc
1014 D7C CB FF FF FF check irq
1015 D80 C3 FF FF FF reset upc
1016
1017 D84 FF FF FF FF dup 7, null
1018
1019
1020 ;===========================================================================
1021 ;109. rcr rd, rs 带进位的循环右移指令
1022 DA0 FD FF FF FF inc pc
1023 DA4 FF 47 EF FF path [pc], ir
1024 DA8 FF C1 E3 FF path rs, w
1025 DAC BF C1 E1 FF path rd, a
1026 DB0 FF C9 E9 FF path alu_rcr, rd
1027 DB4 FF D3 EB FF path shift_flag, flag
1028 DB8 FD FF FF FF inc pc
1029 DBC CB FF FF FF check irq
1030 DC0 C3 FF FF FF reset upc
1031
1032 DC4 FF FF FF FF dup 7, null
1033
1034 ;===========================================================================
1035 ;111. nop 空指令
1036 DE0 FD FF FF FF inc pc
1037 DE4 C3 FF FF FF reset upc
1038
1039 DE8 FF FF FF FF dup 6, null
1040
1041 ;===========================================================================
1042 ;112. hlt 停机
1043 E00 C3 FF FF FF reset upc
1044 E04 FF FF FF FF dup 7, null
1045
1046
1047 ;===========================================================================
1048 ;113. call symbol
1049 ; 入栈时,栈顶向低地址方向生长,sp-1,为入栈对象分配新的存储空间
1050 E20 BF C1 E1 FF path sp, a
1051 E24 BF C1 E3 FF path sp, w
1052 E28 FF D1 E9 DF path alu_dec, sp ; sp = sp - 1
1053 E2C BF C1 E5 FF path sp, mar ; 将sp转移到mar中,为返回地址入栈做准备
1054
1055 ; 读出标号指定的跳转地址并暂存到寄存器a中
1056 E30 FD FF FF FF inc pc
1057 E34 FF 47 E1 FF path [pc], a
1058
1059 ; 将下一条指令地址(返回地址)入栈
1060 E38 FD FF FF FF inc pc
1061 E3C FF 85 E7 FF path pc, [mar]
1062
1063 ; 将a中暂存的跳转地址置入pc,实现子程序调用
1064 E40 FF D0 FF FF path a, pc
1065 E44 CB FF FF FF check irq
1066 E48 C3 FF FF FF reset upc
1067
1068 E4C FF FF FF FF dup 5, null
1069
1070 ;===========================================================================
1071 ;115. ret 子程序调用返回指令
1072 E60 BF C1 E5 FF path sp, mar
1073 E64 FF 86 FF FF path [mar], pc ; 首先读出栈指针sp指向存储单元的内容,即返回地址,
1074 ; 将其加载到PC中,实现调用返回
1075
1076 E68 BF C1 E1 FF path sp, a
1077 E6C FF D1 E9 D0 path alu_inc, sp ; 然后将sp加1,sp指向新的栈顶,即出栈
1078 ; 出栈时,栈顶向高地址空间生长
1079 E70 C3 FF FF FF reset upc
1080
1081 E74 FF FF FF FF dup 3, null
1082
1083
1084 ;===========================================================================
1085 ;116. cli 关中断指令
1086 E80 D3 FF FF FF cli ; 清零中断标志允许位IF=0,禁止硬中断请求
1087 E84 FD FF FF FF inc pc
1088 E88 C3 FF FF FF reset upc
1089
1090 E8C FF FF FF FF dup 5, null
1091
1092 ;===========================================================================
1093 ;117. sti 开中断指令
1094 EA0 D7 FF FF FF sti ; 设置中断允许标志位IF=1,允许硬中断请求
1095 EA4 FD FF FF FF inc pc
1096 EA8 C3 FF FF FF reset upc
1097
1098 EAC FF FF FF FF dup 5, null
1099
1100
1101 ;===========================================================================
1102 ;118. 硬中断处理微指令程序
1103 ; 标志寄存器和断点地址入栈
1104 EC0 BF C1 E1 FF path sp, a
1105 EC4 BF C1 E3 FF path sp, w
1106 EC8 FF D1 E9 DF path alu_dec, sp ; sp减1,指向新的栈顶,为标志寄存器入栈做准备
1107 ECC BF C1 E5 FF path sp, mar
1108 ED0 FF 83 E7 FF path flag, [mar] ; 将标志寄存器入栈,入栈时,栈向低地址空间生长
1109 ED4 BF C1 E1 FF path sp, a
1110 ED8 FF D1 E9 DF path alu_dec, sp ; sp减1,为返回地址入栈做准备
1111 EDC BF C1 E5 FF path sp, mar
1112 EE0 FF 85 E7 FF path pc, [mar] ; 当前PC指向下一条指令,正是返回地址,将其入栈
1113
1114
1115 ; 从8259读取中断号,依据中断号得到对应中断向量
1116 EE4 CF FF FF FF inta ; cpu 发出第一个中断应答信号INTA
1117 EE8 FF FF FF FF dup 1, null ; 插入空闲周期,其目的是分开前后两次发出的中断应答信号,便于8259进行识别
1118 ; 使得INTA信号的变化情况为 低电平--高电平--低电平,其中低电平表示应答信号有效
1119 EEC CE C7 E5 FF path inta, mar ; cpu发出第二个中断应答信号INTA,读取中断向量并送入地址寄存器中
1120
1121
1122 ; 转移到中断服务程序执行
1123 EF0 FF 86 FF FF path [mar], pc ; 将mar中的中断向量指向存储单元的内容传送到PC中,
1124 ; 中断向量指向的存储单元实际存储的就是该中断服务程序的入口地址(首条指令地址)
1125 ; 于是,PC转去执行中断服务程序
1126 EF4 C3 FF FF FF reset upc
1127
1128 EF8 FF FF FF FF dup 2, null
1129
1130
1131 ;===========================================================================
1132 ;120. inc rd 自增
1133 F00 FD FF FF FF inc pc
1134 F04 FF 47 EF FF path [pc], ir
1135 F08 BF C1 E1 FF path rd, a
1136 F0C FF D1 E9 D0 path alu_inc, rd ; 将累加器a加1的结果写入目的寄存器rd中
1137 F10 FF CB EB FF path al_flag, flag
1138 F14 FD FF FF FF inc pc
1139 F18 CB FF FF FF check irq
1140 F1C C3 FF FF FF reset upc
1141
1142
1143 ;===========================================================================
1144 ;121. dec rd 自减
1145 F20 FD FF FF FF inc pc
1146 F24 FF 47 EF FF path [pc], ir
1147 F28 BF C1 E1 FF path rd, a
1148 F2C BF C1 E3 FF path rd, w
1149 F30 FF D1 E9 DF path alu_dec, rd ; 将累加器a减1的结果写入目的寄存器rd中
1150 F34 FF CB EB FF path al_flag, flag
1151 F38 FD FF FF FF inc pc
1152 F3C CB FF FF FF check irq
1153 F40 C3 FF FF FF reset upc
1154
1155 F44 FF FF FF FF dup 7, null
\ No newline at end of file
; 每一条汇编指令,即8086指令对应一段微程序,每一段微程序分配的空间总是8的倍数
; 若一条指令对应微指令的条数少于8的倍数,那么使用占位微指令填充
; 因此,所有指令的第一条微指令地址必须是8的倍数
; 取指微指令,所有指令的第一步均为取指操作,都要执行该条微指令
;===========================================================================
;0.取指指令
fetch instruction
dup 7, null ; 7条占位微指令,本身没有意义,只起占位作用
;===========================================================================
;1.mov reg, imm 将立即数imm传送到寄存器reg中
inc pc ; pc加1
path [pc], ir ; 将pc指定存储单元的字节传送到指令寄存器ir中
inc pc
path [pc], rd ; 将pc指定存储单元的字节传送到目的寄存器中,目的寄存器由指令寄存器ir中的低4位指定
inc pc
check irq ; 查询8086的硬中断请求输入INTR,若INTR为高电平,表示有中断请求,
; 那么uPC转去执行固定的硬中断处理微程序,完成断点入栈并加载中断服务程序入口地址到PC,
; 运行中断服务程序
reset upc ; 地址0传送到uPC寄存器输入端,下个时钟上升沿到来时,uPC写入0
; 微程序存储器ROM输出0地址处的微指令,即fetch instruction取指微指令,
; 在该微指令控制下,下个时钟上升沿到来时,取出PC指向的指令
dup 1, null
;===========================================================================
;2.mov rd, rs 将源寄存器rs的内容传送到目的寄存器rd中
inc pc
path [pc], ir
path rs, rd ; 将rs的内容传送到rd中,指令寄存器ir中的低四位表示目的寄存器rd,
; 高四位表示源寄存器rs
inc pc
check irq
reset upc
dup 2, null
;===========================================================================
;3.mov reg, symbol 将标号symbol指定存储单元的内容传送到寄存器中
inc pc
path [pc], ir
inc pc
path [pc], mar ; 把pc指定单元的数据(源操作数地址symbol)传送到地址寄存器mar中
path [mar], rd ; 把mar指定存储单元的数据传送到目的寄存器rd中
inc pc
check irq
reset upc
;===========================================================================
;4.mov rd, [rs] 将源地址寄存器rs指定存储单元的数据传送到目的寄存器rd中
inc pc
path [pc], ir
path rs, mar ; 将源寄存器rs保存的地址转移到地址寄存器mar中
path [mar], rd
inc pc
check irq
reset upc
dup 1, null
;===========================================================================
;5.mov [rd], rs 将源寄存器rs的数据传送到目的地址寄存器rd指定的存储单元中
inc pc
path [pc], ir
path rd, mar ; 将目的寄存器rd保存的地址转移到地址寄存器mar中
path rs, [mar] ; 将源寄存器rs的数据传送到地址寄存器mar指定存储单元
inc pc
check irq
reset upc
dup 1, null
;===========================================================================
;6.mov [rd], imm 将立即数传送到目的寄存器rd指定存储单元中
inc pc
path [pc], ir
inc pc
path [pc], rd
inc pc
check irq
reset upc
dup 1, null
;===========================================================================
;7. mov symbol, rs 将源寄存器rs的数据传送到标号symbol指定存储单元中
inc pc
path [pc], ir
inc pc
path [pc], mar
path rs, [mar]
inc pc
check irq
reset upc
;===========================================================================
;8. add rd, rs 源寄存器rs与目的寄存器rd相加,无进位加法,结果写回rd中
inc pc
path [pc], ir
path rd, a ; 将目的寄存器rd的数据传送到累加器a中
path rs, w ; 将源寄存器rs的数据传送到工作寄存器w中,
; a和w均为alu运算单元中的操作数寄存器
path alu_add, rd ; 将累加器a与工作寄存器w相加的结果写回目的寄存器rd中
path al_flag, flag ; 将运算标志位写入标志寄存器flag中
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;10. add rd, [rs] 源寄存器rs指定存储单元的数据与目的寄存器rd相加,结果写回rd中
inc pc
path [pc], ir
path rs, mar ; 把源寄存器rs的内容作为地址传送到mar中
path [mar], w ; 将mar指定存储单元的数据传送到alu的工作寄存器w中
path rd, a ; 把目的寄存器rd的数据传送到alu的累加器a中
path alu_add, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;12. add rd, symbol 将标号symbol指定存储单元的数据传送到目的寄存器rd中
inc pc
path [pc], ir
inc pc
path [pc], mar
path [mar], w
path rd, a
path alu_add, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 5, null
;===========================================================================
;14. add rd, imm 将立即数imm传送到目的寄存器rd中
inc pc
path [pc], ir
inc pc
path [pc], w
path rd, a
path alu_add, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;16. adc rd, rs rs与rd进行带进位的加法,结果写回目的寄存器rd中
inc pc
path [pc], ir
path rd, a
path rs, w
path alu_adc, rd ; 将alu的累加器a与工作寄存器w进行无进位加法所得结果写回rd
path al_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;18. adc rd, [rs]
inc pc
path [pc], ir
path rs, mar
path [mar], w
path rd, a
path alu_adc, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;20. adc rd, symbol
inc pc
path [pc], ir
inc pc
path [pc], mar
path [mar], w
path rd, a
path alu_adc, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 5, null
;===========================================================================
;22. adc rd, imm
inc pc
path [pc], ir
inc pc
path [pc], w
path rd, a
path alu_adc, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;24. sub rd, rs 将目的寄存器rd减去源寄存器rs,所得结果写回rd
inc pc
path [pc], ir
path rd, a
path rs, w
path alu_sub, rd ; 无进位的减法,rd = rd - rs
path al_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;26. sub rd, [rs]
inc pc
path [pc], ir
path rs, mar
path [mar], w
path rd, a
path alu_sub, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;28. sub rd, symbol
inc pc
path [pc], ir
inc pc
path [pc], mar
path [mar], w ; 将mar指定存储单元的数据传送到alu的工作寄存器w中
path rd, a
path alu_sub, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 5, null
;===========================================================================
;30. sub rd, imm
inc pc
path [pc], ir
inc pc
path [pc], w
path rd, a
path alu_sub, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;32. sbb rd, rs 带进位的减法
inc pc
path [pc], ir
path rd, a
path rs, w
path alu_sbb, rd ; alu中的累加器a减去工作寄存器w,再减去低位的借位,
; 所得结果写回目的寄存器rd中
path al_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;34. sbb rd, [rs]
inc pc
path [pc], ir
path rs, mar
path [mar], w
path rd, a
path alu_sbb, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;36. sbb rd, symbol
inc pc
path [pc], ir
inc pc
path [pc], mar
path [mar], w
path rd, a
path alu_sbb, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 5, null
;===========================================================================
;38. sbb a, imm
inc pc
path [pc], ir
inc pc
path [pc], w
path rd, a
path alu_sbb, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;40.空指令
dup 8, null
;41.空指令
dup 8, null
;===========================================================================
;42. and rd, rs
inc pc
path [pc], ir
path rd, a
path rs, w
path alu_and, rd ; alu中的累加器a与工作寄存器w进行按位与运算,结果写回rd中
path al_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;44. and rd, [rs]
inc pc
path [pc], ir
path rs, mar
path [mar], w
path rd, a
path alu_and, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;46. and rd, symbol
inc pc
path [pc], ir
inc pc
path [pc], mar
path [mar], w
path rd, a
path alu_and, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 5, null
;===========================================================================
;48. and rd, imm
inc pc
path [pc], ir
inc pc
path [pc], w
path rd, a
path alu_and, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;50. or rd, rs
inc pc
path [pc], ir
path rd, a
path rs, w
path alu_or, rd ; 将alu中的累加器a与工作寄存器w进行按位或运算,结果写回rd中
path al_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;52. or rd, [rs]
inc pc
path [pc], ir
path rs, mar
path [mar], w
path rd, a
path alu_or, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;54. or rd, symbol
inc pc
path [pc], ir
inc pc
path [pc], mar
path [mar], w
path rd, a
path alu_or, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 5, null
;===========================================================================
;56. or rd, imm
inc pc
path [pc], ir
inc pc
path [pc], w
path rd, a
path alu_or, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;58. xor rd, rs rs与rd进行异或运算,结果写回rd
inc pc
path [pc], ir
path rd, a
path rs, w
path alu_xor, rd ; 将累加器a与工作寄存器w进行按位异或运算的结果写回rd
path al_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;60. xor rd, [reg]
inc pc
path [pc], ir
path rs, mar
path [mar], w
path rd, a
path alu_xor, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;62. xor rd, symbol
inc pc
path [pc], ir
inc pc
path [pc], mar
path [mar], w
path rd, a
path alu_xor, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 5, null
;===========================================================================
;64. xor rd, imm
inc pc
path [pc], ir
inc pc
path [pc], w
path rd, a
path alu_xor, rd
path al_flag, flag
inc pc
check irq
reset upc
dup 6, null
;===========================================================================
;66. push rs 将rs寄存器的内容入栈保存
; 更新栈顶
path sp, a ; 将栈寄存器sp传送到累加器a中
path alu_dec, sp ; sp = sp -1,入栈时,sp做减法,向低地址空间生长
; 入栈
path sp, mar ; 把新的栈指针sp传送到地址寄存器mar中
path rs, [mar] ; 把rs寄存器的内容传送到mar指定存储单元,完成入栈保存
inc pc
check irq
reset upc
dup 1, null
;===========================================================================
;67. pop rd 将栈寄存器sp指定存储单元内容出栈,并写入目的寄存器rd中
; 出栈
path sp, mar ; 把栈寄存器sp传送到地址寄存器mar中
path [mar], rd ; 把mar指定存储单元内容传送到目的寄存器rd中,完成出栈
; 出栈后需要更新栈顶
path sp, a ; 把sp传送到a
path alu_inc, sp ; 出栈时,栈顶向高地址空间生长,因此将sp加1
inc pc
check irq
reset upc
dup 1, null
;===========================================================================
;68. not reg 按位取反运算,reg既是源操作数也是目的操作数
inc pc
path [pc], ir
path rd, a ; 把reg作为源操作数传送到a中
path alu_not, rd ; 将a取反运算的结果写回目的寄存器rd
path al_flag, flag
inc pc
check irq
reset upc
;===========================================================================
; test指令主要影响ZF标志
;69. test reg, imm
inc pc
path [pc], ir
path rd, a
inc pc
path [pc], w
path al_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;71. cmp reg, immediate 比较寄存器reg与立即数的大小,修改标志寄存器
inc pc
path [pc], ir
path rd, a ; 把比较寄存器的内容传送到累加器a中
inc pc ; PC加1,指向立即数字节
path [pc], w ; 把立即数传送到工作寄存器w中
path alu_sub, a ; 寄存器减去立即数的结果写回a中
path al_flag, flag ; 把相减后的标志写入标志寄存器中
inc pc
hold DMA ; 查询DMA请求,若有DMA请求,则停止运行,cpu让出总线给8237控制器使用
; DMA传送结束后,从该处继续运行微程序
check irq
reset upc
dup 5, null
;===========================================================================
;73. cmp reg, reg
inc pc
path [pc], ir
path rd, a
path rs, w
path alu_sub, a
path al_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;75. in al, imm 把立即数imm指定的外设端口数据读入cpu内部寄存器al中
inc pc
path [pc], ir
inc pc
path [pc], mar
path <mar>, rd ; 把mar指定的外设端口寄存器的数据传送到目的寄存器rd中
inc pc
reset upc
dup 1, null
;===========================================================================
;76. in al, dl
inc pc
path [pc], ir
path rs, mar
path <mar>, rd
inc pc
reset upc
dup 2, null
;===========================================================================
;77. out dl, al
inc pc
path [pc], ir
path rd, mar
path rs, <mar>
inc pc
reset upc
dup 2, null
;===========================================================================
;78. out imm, al 把al的数据传送到imm指定的外设端口
inc pc
path [pc], ir
inc pc
path [pc], mar
path rs, <mar> ; 把源寄存器rs的内容传送到mar指定的外设端口
inc pc
reset upc
dup 1, null
;===========================================================================
;79. lea rd, symbol 把标号symbol表示的地址传送到寄存器rd中
inc pc
path [pc], ir
inc pc
path [pc], rd
inc pc
check irq
reset upc
dup 1, null
;=====================================================================
;80. ja symbol
check irq
inc pc
path pc, mar ;将PC值传送到地址寄存器mar中
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path ja[mar], pc
reset upc
dup 3, null
;=====================================================================
;81. jb symbol
check irq
inc pc
path pc, mar
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path jb[mar], pc
reset upc
dup 3, null
;=====================================================================
;82. jg symbol
check irq
inc pc
path pc, mar
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path jg[mar], pc
reset upc
dup 3, null
;=====================================================================
;83. jl symbol
check irq
inc pc
path pc, mar
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path jl[mar], pc
reset upc
dup 3, null
;=====================================================================
;84. je symbol
check irq
inc pc
path pc, mar
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path jz[mar], pc
reset upc
dup 3, null
;=====================================================================
;85. jne symbol
check irq
inc pc
path pc, mar
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path jnz[mar], pc
reset upc
dup 3, null
;=====================================================================
;86. jc symbol
check irq
inc pc
path pc, mar
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path jc[mar], pc
reset upc
dup 3, null
;=====================================================================
;87. jmp symbol
check irq
inc pc
path pc, mar
;将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中,无条件跳转
path jmp[mar], pc
reset upc
dup 3, null
;=====================================================================
;88. loop symbol 将cl作为目的操作数减1,改变零标志,若zf = 1,则跳转
inc pc
path [pc], ir
path rd, a
path alu_dec, rd
path al_flag, flag
inc pc
path pc, mar
path jmp[mar], pc
check irq
reset upc
dup 6, null
;====================================================================================================
; 软中断,首先将标志寄存器入栈,清除中断标志IF,并将当前程序断点的地址入栈保护,从
; 中断向量表中获取中断入口地址,CPU转向中断入口地址去执行相应的中断服务程序。
; 中断向量表段地址保存在ES寄存器中
;90. int immediate
; 将标志寄存器入栈
inc pc
path [pc], ir
path sp, a
path sp, w
path alu_dec, sp
path sp, mar
path flag, [mar]
; 更新栈顶
path sp, a
path sp, w
path alu_dec, sp
; 计算中断服务程序入口地址
inc pc
path [pc], mar
inc pc ;下一条指令地址(中断返回地址)暂存到a
path pc, a
; 将中断服务程序入口地址置入pc,准备执行服务程序
path [mar], pc
; 将a中的返回地址入栈
path sp, mar
path a, [mar]
reset upc
dup 6, null
;====================================================================================================
; 中断返回指令,执行出栈操作,后进先出
;93. iret
inc pc
path [pc], ir
; 恢复中断返回地址,即中断返回地址出栈
path sp, mar
path [mar], pc
; 出栈后栈顶指针寄存器sp加1,指向先于返回地址入栈的对象
path sp, a
path alu_inc, sp
; 恢复标志寄存器内容,即标志寄存器FLAG出栈
path sp, mar
path [mar], flag
; 出栈后栈顶指针寄存器sp加1,指向先于标志寄存器入栈的对象
path sp, a
path alu_inc, sp
; 查询中断请求,若存在,则继续处理中断
check irq
reset upc
dup 4, null
;====================================================================================================
;95. sal rd, rs 算术左移指令
inc pc
path [pc], ir
path rs, w
path rd, a
path alu_sal, rd
path shift_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;97. sar rd, rs 算术右移指令
inc pc
path [pc], ir
path rs, w
path rd, a
path alu_sar, rd
path shift_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;99. shl rd, rs 逻辑左移指令
inc pc
path [pc], ir
path rs, w
path rd, a
path alu_shl, rd
path shift_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;101. shr rd, rs 逻辑右移指令
inc pc
path [pc], ir
path rs, w
path rd, a
path alu_shr, rd
path shift_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;103. rol rd, rs 不带进位的循环左移指令
inc pc
path [pc], ir
path rs, w
path rd, a
path alu_rol, rd
path shift_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;105. ror rd, rs 不带进位的循环右移指令
inc pc
path [pc], ir
path rs, w
path rd, a
path alu_ror, rd
path shift_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;107. rcl rd, rs 带进位的循环左移指令
inc pc
path [pc], ir
path rs, w
path rd, a
path alu_rcl, rd
path shift_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;109. rcr rd, rs 带进位的循环右移指令
inc pc
path [pc], ir
path rs, w
path rd, a
path alu_rcr, rd
path shift_flag, flag
inc pc
check irq
reset upc
dup 7, null
;===========================================================================
;111. nop 空指令
inc pc
reset upc
dup 6, null
;===========================================================================
;112. hlt 停机
reset upc
dup 7, null
;===========================================================================
;113. call symbol
; 入栈时,栈顶向低地址方向生长,sp-1,为入栈对象分配新的存储空间
path sp, a
path sp, w
path alu_dec, sp ; sp = sp - 1
path sp, mar ; 将sp转移到mar中,为返回地址入栈做准备
; 读出标号指定的跳转地址并暂存到寄存器a中
inc pc
path [pc], a
; 将下一条指令地址(返回地址)入栈
inc pc
path pc, [mar]
; 将a中暂存的跳转地址置入pc,实现子程序调用
path a, pc
check irq
reset upc
dup 5, null
;===========================================================================
;115. ret 子程序调用返回指令
path sp, mar
path [mar], pc ; 首先读出栈指针sp指向存储单元的内容,即返回地址,
; 将其加载到PC中,实现调用返回
path sp, a
path alu_inc, sp ; 然后将sp加1,sp指向新的栈顶,即出栈
; 出栈时,栈顶向高地址空间生长
reset upc
dup 3, null
;===========================================================================
;116. cli 关中断指令
cli ; 清零中断标志允许位IF=0,禁止硬中断请求
inc pc
reset upc
dup 5, null
;===========================================================================
;117. sti 开中断指令
sti ; 设置中断允许标志位IF=1,允许硬中断请求
inc pc
reset upc
dup 5, null
;===========================================================================
;118. 硬中断处理微指令程序
; 标志寄存器和断点地址入栈
path sp, a
path sp, w
path alu_dec, sp ; sp减1,指向新的栈顶,为标志寄存器入栈做准备
path sp, mar
path flag, [mar] ; 将标志寄存器入栈,入栈时,栈向低地址空间生长
path sp, a
path alu_dec, sp ; sp减1,为返回地址入栈做准备
path sp, mar
path pc, [mar] ; 当前PC指向下一条指令,正是返回地址,将其入栈
; 从8259读取中断号,依据中断号得到对应中断向量
inta ; cpu 发出第一个中断应答信号INTA
dup 1, null ; 插入空闲周期,其目的是分开前后两次发出的中断应答信号,便于8259进行识别
; 使得INTA信号的变化情况为 低电平--高电平--低电平,其中低电平表示应答信号有效
path inta, mar ; cpu发出第二个中断应答信号INTA,读取中断向量并送入地址寄存器中
; 转移到中断服务程序执行
path [mar], pc ; 将mar中的中断向量指向存储单元的内容传送到PC中,
; 中断向量指向的存储单元实际存储的就是该中断服务程序的入口地址(首条指令地址)
; 于是,PC转去执行中断服务程序
reset upc
dup 2, null
;===========================================================================
;120. inc rd 自增
inc pc
path [pc], ir
path rd, a
path alu_inc, rd ; 将累加器a加1的结果写入目的寄存器rd中
path al_flag, flag
inc pc
check irq
reset upc
;===========================================================================
;121. dec rd 自减
inc pc
path [pc], ir
path rd, a
path rd, w
path alu_dec, rd ; 将累加器a减1的结果写入目的寄存器rd中
path al_flag, flag
inc pc
check irq
reset upc
dup 7, null
\ No newline at end of file
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG߿GGGGGGGGGGGGGG?_GG߿GGпGGG?G?GGGG߿G߿߿GG
\ No newline at end of file
添加文件
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<svg height="3889" version="1.1" width="3292" xmlns="http://www.w3.org/2000/svg">
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="748" y2="748"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="748">^A0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1508" y="748">2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="778" y2="778"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="778">^A1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1521" y="778">23</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="808" y2="808"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="808">^A2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1521" y="808">21</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="838" y2="838"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="838">^A3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1521" y="838">19</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="898" y2="898"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="898">^B0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1508" y="896">1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="928" y2="928"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="928">^B1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1522" y="927">22</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="958" y2="958"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="958">^B2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1522" y="957">20</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="988" y2="988"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="988">^B3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1522" y="987">18</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="1058" y2="1058"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="1058">S0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="1056">6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="1088" y2="1088"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="1088">S1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="1087">5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="1118" y2="1118"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="1118">S2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="1117">4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="1148" y2="1148"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="1148">S3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="1147">3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="1208" y2="1208"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="1208">CN</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="1209">7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="1238" y2="1238"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1572" y="1238">M</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="1239">8</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="1018" y2="1018"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="1018">^G</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="1018">17</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="988" y2="988"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="988">^P</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="988">15</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1689" x2="1739" y1="928" y2="928"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="928">AEQB</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="928">14</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1689" x2="1739" y1="898" y2="898"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="898">CN4</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="898">16</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="838" y2="838"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="838">^F3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="838">13</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="808" y2="808"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="808">^F2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="808">11</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="778" y2="778"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="778">^F1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="778">10</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="748" y2="748"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="748">^F0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1717" y="747">9</text>
<circle cx="1534" cy="988" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="808" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="898" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="838" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="777" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1534" cy="958" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1534" cy="748" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="928" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="749" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1694" cy="779" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1694" cy="808" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="838" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="988" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="1019" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<rect fill="#ffffff" fill-opacity="0.5" height="550" stroke="#000000" stroke-width="5" width="150" x="1539" y="708"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1606" y="688">U1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1549" y="1304">74LS181</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="1448" y2="1448"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="1448">^A0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1508" y="1448">2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="1478" y2="1478"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="1478">^A1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1521" y="1478">23</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="1508" y2="1508"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="1508">^A2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1521" y="1508">21</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="1538" y2="1538"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="1538">^A3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1521" y="1538">19</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="1598" y2="1598"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="1598">^B0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1508" y="1596">1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="1628" y2="1628"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="1628">^B1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1522" y="1627">22</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="1658" y2="1658"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="1658">^B2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1522" y="1657">20</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="1688" y2="1688"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="1688">^B3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1522" y="1687">18</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="1758" y2="1758"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="1758">S0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="1756">6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="1788" y2="1788"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="1788">S1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="1787">5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="1818" y2="1818"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="1818">S2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="1817">4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="1848" y2="1848"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="1848">S3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="1847">3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="1908" y2="1908"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="1908">CN</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="1909">7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="1938" y2="1938"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1572" y="1938">M</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="1939">8</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="1718" y2="1718"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="1718">^G</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="1718">17</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="1688" y2="1688"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="1688">^P</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="1688">15</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1689" x2="1739" y1="1628" y2="1628"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="1628">AEQB</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="1628">14</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1689" x2="1739" y1="1598" y2="1598"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="1598">CN4</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="1598">16</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="1538" y2="1538"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="1538">^F3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="1538">13</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="1508" y2="1508"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="1508">^F2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="1508">11</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="1478" y2="1478"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="1478">^F1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="1478">10</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="1448" y2="1448"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="1448">^F0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1717" y="1447">9</text>
<circle cx="1534" cy="1688" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="1508" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="1598" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="1538" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="1477" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1534" cy="1658" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1534" cy="1448" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="1628" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="1449" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1694" cy="1479" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1694" cy="1508" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="1538" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="1688" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="1719" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<rect fill="#ffffff" fill-opacity="0.5" height="550" stroke="#000000" stroke-width="5" width="150" x="1539" y="1408"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1606" y="1388">U2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1549" y="2004">74LS181</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="2188" y2="2188"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="2188">^A0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1508" y="2188">2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="2218" y2="2218"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="2218">^A1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1521" y="2218">23</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="2248" y2="2248"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="2248">^A2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1521" y="2248">21</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="2278" y2="2278"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="2278">^A3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1521" y="2278">19</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="2338" y2="2338"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="2338">^B0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1508" y="2336">1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="2368" y2="2368"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="2368">^B1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1522" y="2367">22</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="2398" y2="2398"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="2398">^B2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1522" y="2397">20</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="2428" y2="2428"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="2428">^B3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1522" y="2427">18</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="2498" y2="2498"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="2498">S0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="2496">6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="2528" y2="2528"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="2528">S1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="2527">5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="2558" y2="2558"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="2558">S2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="2557">4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="2588" y2="2588"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="2588">S3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="2587">3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="2648" y2="2648"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="2648">CN</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="2649">7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="2678" y2="2678"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1572" y="2678">M</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="2679">8</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="2458" y2="2458"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="2458">^G</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="2458">17</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="2428" y2="2428"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="2428">^P</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="2428">15</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1689" x2="1739" y1="2368" y2="2368"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="2368">AEQB</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="2368">14</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1689" x2="1739" y1="2338" y2="2338"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="2338">CN4</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="2338">16</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="2278" y2="2278"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="2278">^F3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="2278">13</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="2248" y2="2248"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="2248">^F2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="2248">11</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="2218" y2="2218"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="2218">^F1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="2218">10</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="2188" y2="2188"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="2188">^F0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1717" y="2187">9</text>
<circle cx="1534" cy="2428" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="2248" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="2338" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="2278" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="2217" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1534" cy="2398" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1534" cy="2188" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="2368" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="2189" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1694" cy="2219" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1694" cy="2248" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="2278" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="2428" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="2459" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<rect fill="#ffffff" fill-opacity="0.5" height="550" stroke="#000000" stroke-width="5" width="150" x="1539" y="2148"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1606" y="2128">U3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1549" y="2744">74LS181</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="2978" y2="2978"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="2978">^A0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1508" y="2978">2</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="3008" y2="3008"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="3008">^A1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1521" y="3008">23</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="3038" y2="3038"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="3038">^A2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1521" y="3038">21</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="3068" y2="3068"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="3068">^A3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1521" y="3068">19</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="3128" y2="3128"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="3128">^B0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1508" y="3126">1</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="3158" y2="3158"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="3158">^B1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1522" y="3157">22</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="3188" y2="3188"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="3188">^B2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1522" y="3187">20</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1529" x2="1489" y1="3218" y2="3218"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1592" y="3218">^B3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1522" y="3217">18</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="3288" y2="3288"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="3288">S0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="3286">6</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="3318" y2="3318"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="3318">S1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="3317">5</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="3348" y2="3348"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="3348">S2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="3347">4</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="3378" y2="3378"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="3378">S3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="3377">3</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="3438" y2="3438"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1582" y="3438">CN</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="3439">7</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1539" x2="1489" y1="3468" y2="3468"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1572" y="3468">M</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="end" x="1509" y="3469">8</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="3248" y2="3248"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="3248">^G</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="3248">17</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="3218" y2="3218"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="3218">^P</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="3218">15</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1689" x2="1739" y1="3158" y2="3158"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="3158">AEQB</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="3158">14</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1689" x2="1739" y1="3128" y2="3128"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="3128">CN4</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="3128">16</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="3068" y2="3068"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="3068">^F3</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="3068">13</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="3038" y2="3038"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="3038">^F2</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="3038">11</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="3008" y2="3008"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="3008">^F1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1704" y="3008">10</text>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="1699" x2="1739" y1="2978" y2="2978"/>
<text alignment-baseline="central" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="middle" x="1656" y="2978">^F0</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Courier New" font-size="17" font-weight="400" text-anchor="start" x="1717" y="2977">9</text>
<circle cx="1534" cy="3218" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="3038" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="3128" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="3068" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="3007" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1534" cy="3188" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1534" cy="2978" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1533" cy="3158" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="2979" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1694" cy="3009" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1694" cy="3038" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="3068" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="3218" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<circle cx="1693" cy="3249" fill="#ffffff" fill-opacity="0.5" r="4" stroke="#000000" stroke-width="5"/>
<rect fill="#ffffff" fill-opacity="0.5" height="550" stroke="#000000" stroke-width="5" width="150" x="1539" y="2938"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1606" y="2918">U4</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1549" y="3534">74LS181</text>
<polyline fill="none" points="1489 748, 1389 748, 1389 708, 1389 358, 439 358" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 778, 1369 778, 1369 708, 1369 378, 439 378" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 808, 1349 808, 1349 708, 1349 398, 439 398" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 838, 1329 838, 1329 708, 1329 418, 439 418" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 1448, 1309 1448, 1309 708, 1309 438, 439 438" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 1478, 1289 1478, 1289 708, 1289 458, 439 458" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 1508, 1269 1508, 1269 708, 1269 478, 439 478" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 1538, 1249 1538, 1249 708, 1249 498, 439 498" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 2188, 1229 2188, 1229 708, 1229 518, 439 518" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 2218, 1209 2218, 1209 708, 1209 538, 439 538" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 2248, 1189 2248, 1189 708, 1189 558, 439 558" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 2278, 1169 2278, 1169 708, 1169 578, 439 578" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 2978, 1149 2978, 1149 708, 1149 598, 439 598" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 3008, 1129 3008, 1129 708, 1129 618, 439 618" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 3038, 1109 3038, 1109 708, 1109 638, 439 638" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 3068, 1089 3068, 1089 708, 1089 658, 439 658" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 3218, 1149 3218, 1149 3558, 1149 3858, 439 3858" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 3188, 1129 3188, 1129 3558, 1129 3838, 439 3838" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 3158, 1109 3158, 1109 3558, 1109 3818, 439 3818" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 3128, 1089 3128, 1089 3558, 1089 3798, 439 3798" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 2428, 1069 2428, 1069 3558, 1069 3778, 439 3778" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 2398, 1049 2398, 1049 3558, 1049 3758, 439 3758" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 2368, 1029 2368, 1029 3558, 1029 3738, 439 3738" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 2338, 1009 2338, 1009 3558, 1009 3718, 439 3718" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 1688, 989 1688, 989 3558, 989 3698, 439 3698" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 1658, 969 1658, 969 3558, 969 3678, 439 3678" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 1628, 949 1628, 949 3558, 949 3658, 439 3658" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 1598, 929 1598, 929 3558, 929 3638, 439 3638" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 988, 909 988, 909 3558, 909 3618, 439 3618" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 928, 869 928, 869 3558, 869 3578, 439 3578" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 898, 849 898, 849 3558, 439 3558" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="708" y2="658"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="688" y2="638"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="668" y2="618"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="648" y2="598"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="628" y2="578"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="608" y2="558"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="588" y2="538"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="568" y2="518"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="548" y2="498"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="528" y2="478"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="508" y2="458"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="488" y2="438"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="468" y2="418"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="448" y2="398"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="428" y2="378"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="389" x2="439" y1="408" y2="358"/>
<polygon fill="#ffff80" points="39 358, 39 333, 214 333, 239 358, 214 383, 39 383, 39 358" 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="39" y="358">uPC[15..0]</text>
<polyline fill="none" points="1739 898, 1789 898, 1789 1348, 1439 1348, 1439 1908, 1489 1908" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 1598, 1789 1598, 1789 2078, 1439 2078, 1439 2648, 1489 2648" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 2338, 1789 2338, 1789 2828, 1439 2828, 1439 3438, 1489 3438" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="109" x2="109" y1="998" y2="1048"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="109 998, 159 948, 59 948, 109 998" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Times New Roman" font-size="30" font-weight="700" text-anchor="start" x="99" y="988">1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="99" y="918">U5</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="19" y="948">CONSTANT1</text>
<polyline fill="none" points="1489 1058, 1399 1058, 1399 3378, 1489 3378" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 3288, 1399 3288" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 2588, 1399 2588" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 2498, 1399 2498" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 1848, 1399 1848" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 1758, 1399 1758" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 1148, 1399 1148" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 1538, 2039 1538, 2039 1958, 2639 1958" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 1508, 2059 1508, 2059 1938, 2639 1938" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 1478, 2079 1478, 2079 1918, 2639 1918" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 1448, 2099 1448, 2099 1898, 2629 1898, 2639 1898" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 838, 2119 838, 2119 1878, 2639 1878" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 808, 2139 808, 2139 1858, 2639 1858" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 778, 2159 778, 2159 1838, 2639 1838" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 748, 2179 748, 2179 1818, 2639 1818" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 2188, 2039 2188, 2039 1978, 2639 1978" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 2218, 2059 2218, 2059 1998, 2639 1998" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 2248, 2079 2248, 2079 2018, 2639 2018" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 2278, 2099 2278, 2099 2038, 2639 2038" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 2978, 2119 2978, 2119 2058, 2639 2058" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 3008, 2139 3008, 2139 2078, 2639 2078" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 3038, 2159 3038, 2159 2098, 2639 2098" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1739 3068, 2179 3068, 2179 2118, 2639 2118" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="1818" y2="1768"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="1838" y2="1788"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="1858" y2="1808"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="1878" y2="1828"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="1898" y2="1848"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="1918" y2="1868"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="1938" y2="1888"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="1958" y2="1908"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="1978" y2="1928"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="1998" y2="1948"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="2018" y2="1968"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="2038" y2="1988"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="2058" y2="2008"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="2078" y2="2028"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="2098" y2="2048"/>
<line stroke="#000080" stroke-linecap="round" stroke-width="5" x1="2639" x2="2689" y1="2118" y2="2068"/>
<polyline fill="none" points="239 358, 389 358, 389 708" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<polyline fill="none" points="2789 1708, 2689 1708, 2689 2068" stroke="#000080" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="358">uPC0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="378">uPC1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="398">uPC2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="418">uPC3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="438">uPC4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="458">uPC5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="478">uPC6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="498">uPC7</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="518">uPC8</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="538">uPC9</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="558">uPC10</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="578">uPC11</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="598">uPC12</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="618">uPC13</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="638">uPC14</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="709" y="658">uPC15</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3558">B0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3578">B1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3598">B2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3618">B3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3638">B4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3658">B5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3678">B6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3698">B7</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3718">B8</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3738">B9</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3758">B10</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3778">B11</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3798">B12</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3818">B13</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3838">B14</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="609" y="3858">B15</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="1818">uPC_Next0</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="1838">uPC_Next1</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="1858">uPC_Next2</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="1878">uPC_Next3</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="1898">uPC_Next4</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="1918">uPC_Next5</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="1938">uPC_Next6</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="1958">uPC_Next7</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="1978">uPC_Next8</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="1998">uPC_Next9</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="2018">uPC_Next10</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="2038">uPC_Next11</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="2058">uPC_Next12</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="2078">uPC_Next13</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="2098">uPC_Next14</text>
<text alignment-baseline="after-edge" fill="#800000" font-family="Times New Roman" font-size="15" font-weight="400" text-anchor="start" x="2309" y="2118">uPC_Next15</text>
<polygon fill="#ffff80" points="2789 1708, 2789 1683, 3014 1683, 3039 1708, 3014 1733, 2789 1733, 2789 1708" 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="2789" y="1708">uPC_Next[15..0]</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="宋体" font-size="90" font-weight="400" text-anchor="start" x="69" y="3758">加数4</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="宋体" font-size="180" font-weight="700" text-anchor="start" x="1719" y="268">uPC_NEXT模块</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="宋体" font-size="90" font-weight="400" text-anchor="start" x="1769" y="548">uPC+4指向下一条微指令</text>
<polyline fill="none" points="1489 1208, 1399 1208" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1399 1058, 609 1058, 109 1058, 109 1048" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<polyline fill="none" points="1489 958, 889 958, 889 3598, 439 3598, 159 3598, 159 3538" stroke="#0000ff" stroke-linecap="round" stroke-linejoin="round" stroke-width="5"/>
<line stroke="#000000" stroke-linecap="round" stroke-width="5" x1="159" x2="159" y1="3488" y2="3538"/>
<polygon fill="#ffffff" fill-opacity="0.5" points="159 3488, 209 3438, 109 3438, 159 3488" stroke="#000000" stroke-width="5"/>
<text alignment-baseline="after-edge" fill="#000000" font-family="Times New Roman" font-size="30" font-weight="700" text-anchor="start" x="149" y="3478">1</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="149" y="3408">U6</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="69" y="3438">CONSTANT1</text>
<text alignment-baseline="after-edge" fill="#000080" font-family="宋体" font-size="35" font-weight="400" text-anchor="start" x="149" y="1028">运算方式控制信号:无进位加法</text>
<circle cx="1399" cy="1058" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1399" cy="1208" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1399" cy="1148" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1399" cy="1758" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1399" cy="1848" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1399" cy="2498" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1399" cy="2588" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
<circle cx="1399" cy="3288" fill="#0000ff" r="8" stroke="#0000ff" stroke-width="5"/>
</svg>
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论