提交 6f25ab81 创建 作者: 李川's avatar 李川 提交者: 宋海霞

修改实验电路原理图

上级 dd3bd727
...@@ -2,3 +2,7 @@ ...@@ -2,3 +2,7 @@
path = 8086 path = 8086
url = https://www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/8086.git url = https://www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/8086.git
branch = master branch = master
[submodule "8255"]
path = 8255
url = https://lichuan@www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/8255.git
branch = master
8255 @ 24511139
Subproject commit 2451113952f09974ee3bc5bd1e55ae08f016db06
差异被折叠。
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<project id="31f84c0c-d924-412d-bc01-f3df0eae3332" name="8086-system7765" version="1"> <project id="1fe6d24a-a171-4021-af70-f669c3431eba" name="Lab002" version="1">
<files> <files>
<filefolder id="76cb3d2a-f92b-4283-a802-0d5d5fb9ad75" name="8086"> <filefolder id="76cb3d2a-f92b-4283-a802-0d5d5fb9ad75" name="8086">
...@@ -28,7 +28,25 @@ ...@@ -28,7 +28,25 @@
<file relativepath="IO\IO.dlsche"/> <file relativepath="IO\IO.dlsche"/>
<file relativepath="IO\README.md"/> <file relativepath="IO\README.md"/>
</filefolder> </filefolder>
<file relativepath="top.dlsche"/> <filefolder id="5bfdeca8-7eb4-42bb-8f7b-05046a747987" name="8255">
<file relativepath="8255\8255.dlsche"/>
<file relativepath="8255\8255.pdf"/>
<file relativepath="8255\A0.dlsche"/>
<file relativepath="8255\A2.dlsche"/>
<file relativepath="8255\ac.dlsche"/>
<file relativepath="8255\ACh.dlsche"/>
<file relativepath="8255\AIN1.dlsche"/>
<file relativepath="8255\AOUT1.dlsche"/>
<file relativepath="8255\B0.dlsche"/>
<file relativepath="8255\bc.dlsche"/>
<file relativepath="8255\BCl.dlsche"/>
<file relativepath="8255\BIN1.dlsche"/>
<file relativepath="8255\BOUT1.dlsche"/>
<file relativepath="8255\README.md"/>
<file relativepath="8255\wrc.dlsche"/>
</filefolder>
<file relativepath="8255_test.dlsche"/>
<file relativepath="top_demand.dlsche"/>
<file relativepath="README.md"/> <file relativepath="README.md"/>
</files> </files>
......
没有这种文件类型的预览
...@@ -453,7 +453,7 @@ ...@@ -453,7 +453,7 @@
<circle cx="1226" cy="742" fill="none" r="5" stroke="#000000" stroke-width="5"/> <circle cx="1226" cy="742" 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="1231" y="422">MEM_gate</text> <text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1241" y="412">MEM_gate</text>
<text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1231" y="832">BUS_TRANS8</text> <text alignment-baseline="after-edge" fill="#000000" font-family="Arial" font-size="25" font-weight="700" text-anchor="start" x="1231" y="832">BUS_TRANS8</text>
......
;test ; 8255初始化。要求A口设定为输出数据,工作方式为方式0;B口设定为输入数据,工作方式为方式1;C口高四位输入,低四位输出。地址为80H~86H
.text .text
mov dl, 0x83 ; 控制口地址
mov al, 0x8E ; 工作方式控制字
OUT dl, al ; 控制字送到控制口
mov dl, 0x82 ;首先将端口C初始化为0
mov al, 0
out dl, al
mov bl, 2 ;检测IBFB(PC1)信号是否有效(高电平),若有效,表示当前已经有一个新的8位数据(地址)进入端口B的缓冲器中,CPU可以从B口读入数据了。
BEGIN:
mov al, 0x1a
UP: ;在此处即可按下按键A,从C口输入数据
out 2, al testC:
inc al mov dl,0x82 ;从端口C输入一数据
cmp al, 0x84 in al, dl ;读端口C
jnz UP and al, bl ;al与0000 0010按位与,留下al的第二位
dec al sub al, bl ;若AL=BL=2,CPU可以从B口读入数据了
jz INOUT ;
jmp testC
DOWN:
out 2, al
dec al
cmp al, 0x19
jnz DOWN
jmp BEGIN
INOUT: ;从B端口读地址,然后将地址单元内容输出到A端口
mov dl, 0x81 ;从端口B读地址
in al, dl ;将端口B输入数据(地址)读入al中
mov dl, al ;将al中的内容(地址)转移到dl寄存器中
mov al, [dl] ;将dl指定存储单元的内容传送到al中
mov dl, 0x80 ;设置A端口地址
out dl, al ;将al的内容输出到A端口
jmp testC ;检测新的地址
没有这种文件类型的预览
0001 ;test 0001 ; 8255初始化。要求A口设定为输出数据,工作方式为方式0;B口设定为输入数据,工作方式为方式1;C口高四位输入,低四位输出。地址为80H~86H
0002 .text 0002
0003 0003 .text
0004 BEGIN: 0004 10 01 03 83 mov dl, 0x83 ; 控制口地址
0005 10 01 00 1A mov al, 0x1a 0005 13 01 00 8E mov al, 0x8E ; 工作方式控制字
0006 0006 16 4D 03 OUT dl, al ; 控制字送到控制口
0007 UP: 0007
0008 13 4E 00 02 out 2, al 0008
0009 16 78 00 inc al 0009 18 01 03 82 mov dl, 0x82 ;首先将端口C初始化为0
0010 18 47 00 84 cmp al, 0x84 0010 1B 01 00 00 mov al, 0
0011 1B 55 13 jnz UP 0011 1E 4D 03 out dl, al
0012 1D 79 00 dec al 0012
0013 0013 20 01 01 02 mov bl, 2 ;检测IBFB(PC1)信号是否有效(高电平),若有效,表示当前已经有一个新的8位数据(地址)进入端口B的缓冲器中,CPU可以从B口读入数据了。
0014 DOWN: 0014
0015 1F 4E 00 02 out 2, al 0015
0016 22 79 00 dec al 0016 ;在此处即可按下按键A,从C口输入数据
0017 24 47 00 19 cmp al, 0x19 0017 testC:
0018 27 55 1F jnz DOWN 0018 23 01 03 82 mov dl,0x82 ;从端口C输入一数据
0019 29 57 10 jmp BEGIN 0019 26 4C 30 in al, dl ;读端口C
0020 0020 28 2A 10 and al, bl ;al与0000 0010按位与,留下al的第二位
0021 0021 2A 18 10 sub al, bl ;若AL=BL=2,CPU可以从B口读入数据了
0022 0022 2C 54 30 jz INOUT ;
0023 2E 57 23 jmp testC
0024
0025
0026 INOUT: ;从B端口读地址,然后将地址单元内容输出到A端口
0027 30 01 03 81 mov dl, 0x81 ;从端口B读地址
0028 33 4C 30 in al, dl ;将端口B输入数据(地址)读入al中
0029 35 02 03 mov dl, al ;将al中的内容(地址)转移到dl寄存器中
0030 37 04 30 mov al, [dl] ;将dl指定存储单元的内容传送到al中
0031 39 01 03 80 mov dl, 0x80 ;设置A端口地址
0032 3C 4D 03 out dl, al ;将al的内容输出到A端口
0033 3E 57 23 jmp testC ;检测新的地址
0034
0035
没有这种文件类型的预览
差异被折叠。
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论