提交 401adf5a 创建 作者: 赵鹏翀's avatar 赵鹏翀

Initial commit

上级
*.cir
*.xml
*.bak
/.vs
\ No newline at end of file
[submodule "8086"]
path = 8086
url = https://zpc@www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/8086.git
[submodule "8237"]
path = 8237
url = https://zpc@www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/8237.git
8086 @ 0646239b
Subproject commit 0646239b4d1645f6a0da63d7f4bb3142942e567c
8237 @ fb47c3ef
Subproject commit fb47c3efb29bd715b996ce0f01c1c9a69c9796e3
添加文件
差异被折叠。
# 说明
IO接口芯片地址译码模块
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<project id="3407fe40-bd78-42b5-914a-e269ea66b67f" name="Lab006" version="1">
<files>
<filefolder id="d7502e9e-b220-4715-a645-2f139d9b4f34" name="MEM">
<file relativepath="MEM\MEM.dlsche"/>
<file relativepath="MEM\ram.asm"/>
<file relativepath="MEM\ram.bat"/>
<file relativepath="MEM\ram.rxm"/>
<file relativepath="MEM\README.md"/>
</filefolder>
<filefolder id="c6ec748e-8eff-4fcb-9ff0-d62ba30af439" name="IO">
<file relativepath="IO\IO.dlsche"/>
<file relativepath="IO\README.md"/>
</filefolder>
<filefolder id="300d897d-944e-4657-abc4-81609856ee33" name="8086">
<file relativepath="8086\8086.dlsche"/>
<file relativepath="8086\8086.pdf"/>
<file relativepath="8086\ALU.dlsche"/>
<file relativepath="8086\BRANCH.dlsche"/>
<file relativepath="8086\CU.dlsche"/>
<file relativepath="8086\FLAG.dlsche"/>
<file relativepath="8086\PC.dlsche"/>
<file relativepath="8086\README.md"/>
<file relativepath="8086\REGS.dlsche"/>
<file relativepath="8086\rom.bat"/>
<file relativepath="8086\rom.masm"/>
<file relativepath="8086\rom.rxm"/>
<file relativepath="8086\uPC_NEXT.dlsche"/>
</filefolder>
<filefolder id="d264e703-cbab-470c-921a-c1b658371265" name="8237">
<file relativepath="8237\8237A.dlsche"/>
<file relativepath="8237\8237A.pdf"/>
<file relativepath="8237\channel.dlsche"/>
<file relativepath="8237\fsm.dlsche"/>
<file relativepath="8237\README.md"/>
<file relativepath="8237\regs.dlsche"/>
<file relativepath="8237\write_read.dlsche"/>
</filefolder>
<file relativepath="README.md"/>
<file relativepath="top.dlsche"/>
</files>
</project>
添加文件
差异被折叠。
# 说明
8086 微机系统的MEM主存储器,存储指令和数据
\ No newline at end of file
差异被折叠。
添加文件
;DMA存储器到存储器的传送测试程序
.text
;8237初始化,在执行cmp指令时,通过DMA传送,将block2程序块传送到block1处,传送完成后,
;将执行block2程序块,而不是block1
mov al,0xcc
out 0x8b, al ;写通道0的工作方式控制寄存器,地址递增
mov al, 0x3D
out 0x80, al ;将传送起始源地址写入通道0的当前地址计数器中
mov al, 0xcd
out 0x8b, al ;写通道1的工作方式控制寄存器,地址递增
mov al, 0x37
out 0x82, al ;将传送起始目的地址写入通道1的当前地址计数器中
mov al, 5 ;传送6个字节,字节数从5到0
out 0x83, al ;将传送字节数写入通道1的当前字节计数器中
mov al, 1
out 0x88, al ;写操作方式命令字寄存器,允许存储器到存储器之间的传送并启动数据传送
BEGIN: ;主程序开始
cmp al, 0x15 ;在此条指令的微指令中会查询 DMA 请求
block1:
mov bl, 0
add bl, 20
block2:
sub al, 3
adc al, 2
jmp BEGIN
@echo off
dmasm.exe ram.asm -o ram.rxm -l ram.lst -g ram.dbg
pause
添加文件
0001 ;DMA存储器到存储器的传送测试程序
0002 .text
0003
0004 ;8237初始化,在执行cmp指令时,通过DMA传送,将block2程序块传送到block1处,传送完成后,
0005 ;将执行block2程序块,而不是block1
0006
0007 10 01 00 CC mov al,0xcc
0008 13 4E 00 8B out 0x8b, al ;写通道0的工作方式控制寄存器,地址递增
0009
0010 16 01 00 3D mov al, 0x3D
0011 19 4E 00 80 out 0x80, al ;将传送起始源地址写入通道0的当前地址计数器中
0012
0013 1C 01 00 CD mov al, 0xcd
0014 1F 4E 00 8B out 0x8b, al ;写通道1的工作方式控制寄存器,地址递增
0015
0016 22 01 00 37 mov al, 0x37
0017 25 4E 00 82 out 0x82, al ;将传送起始目的地址写入通道1的当前地址计数器中
0018
0019 28 01 00 05 mov al, 5 ;传送6个字节,字节数从5到0
0020 2B 4E 00 83 out 0x83, al ;将传送字节数写入通道1的当前字节计数器中
0021
0022 2E 01 00 01 mov al, 1
0023 31 4E 00 88 out 0x88, al ;写操作方式命令字寄存器,允许存储器到存储器之间的传送并启动数据传送
0024
0025 BEGIN: ;主程序开始
0026 34 47 00 15 cmp al, 0x15 ;在此条指令的微指令中会查询 DMA 请求
0027
0028 block1:
0029 37 01 01 00 mov bl, 0
0030 3A 0E 01 14 add bl, 20
0031
0032 block2:
0033 3D 1E 00 03 sub al, 3
0034 40 16 00 02 adc al, 2
0035 43 57 34 jmp BEGIN
0036
0037
0038
添加文件
# 说明
DMA传送实验
# 原理图
![raw svg](top.dlsche.svg)
\ No newline at end of file
添加文件
差异被折叠。
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论