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

修改实验电路原理图

上级 dd3bd727
......@@ -2,3 +2,7 @@
path = 8086
url = https://www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/8086.git
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" ?>
<project id="31f84c0c-d924-412d-bc01-f3df0eae3332" name="8086-system7765" version="1">
<project id="1fe6d24a-a171-4021-af70-f669c3431eba" name="Lab002" version="1">
<files>
<filefolder id="76cb3d2a-f92b-4283-a802-0d5d5fb9ad75" name="8086">
......@@ -28,7 +28,25 @@
<file relativepath="IO\IO.dlsche"/>
<file relativepath="IO\README.md"/>
</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"/>
</files>
......
没有这种文件类型的预览
......@@ -453,7 +453,7 @@
<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>
......
;test
; 8255初始化。要求A口设定为输出数据,工作方式为方式0;B口设定为输入数据,工作方式为方式1;C口高四位输入,低四位输出。地址为80H~86H
.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:
out 2, al
inc al
cmp al, 0x84
jnz UP
dec al
;在此处即可按下按键A,从C口输入数据
testC:
mov dl,0x82 ;从端口C输入一数据
in al, dl ;读端口C
and al, bl ;al与0000 0010按位与,留下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
0002 .text
0003
0004 BEGIN:
0005 10 01 00 1A mov al, 0x1a
0006
0007 UP:
0008 13 4E 00 02 out 2, al
0009 16 78 00 inc al
0010 18 47 00 84 cmp al, 0x84
0011 1B 55 13 jnz UP
0012 1D 79 00 dec al
0013
0014 DOWN:
0015 1F 4E 00 02 out 2, al
0016 22 79 00 dec al
0017 24 47 00 19 cmp al, 0x19
0018 27 55 1F jnz DOWN
0019 29 57 10 jmp BEGIN
0020
0021
0022
0001 ; 8255初始化。要求A口设定为输出数据,工作方式为方式0;B口设定为输入数据,工作方式为方式1;C口高四位输入,低四位输出。地址为80H~86H
0002
0003 .text
0004 10 01 03 83 mov dl, 0x83 ; 控制口地址
0005 13 01 00 8E mov al, 0x8E ; 工作方式控制字
0006 16 4D 03 OUT dl, al ; 控制字送到控制口
0007
0008
0009 18 01 03 82 mov dl, 0x82 ;首先将端口C初始化为0
0010 1B 01 00 00 mov al, 0
0011 1E 4D 03 out dl, al
0012
0013 20 01 01 02 mov bl, 2 ;检测IBFB(PC1)信号是否有效(高电平),若有效,表示当前已经有一个新的8位数据(地址)进入端口B的缓冲器中,CPU可以从B口读入数据了。
0014
0015
0016 ;在此处即可按下按键A,从C口输入数据
0017 testC:
0018 23 01 03 82 mov dl,0x82 ;从端口C输入一数据
0019 26 4C 30 in al, dl ;读端口C
0020 28 2A 10 and al, bl ;al与0000 0010按位与,留下al的第二位
0021 2A 18 10 sub al, bl ;若AL=BL=2,CPU可以从B口读入数据了
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论