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

Merge branch 'lab6' into 'master'

......@@ -2,3 +2,6 @@
path = 8086
url = https://www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/8086.git
branch = master
[submodule "8237"]
path = 8237
url = https://lichuan@www.codecode.net/engintime/Dream-Logic/Intel-classic-chips/8237.git
8237 @ 2cb9d712
Subproject commit 2cb9d7127efb4cb4d91a7b7f91f0954054585c6d
......@@ -28,8 +28,17 @@
<file relativepath="IO\IO.dlsche"/>
<file relativepath="IO\README.md"/>
</filefolder>
<file relativepath="top.dlsche"/>
<filefolder id="f94a044a-c2cb-4ab9-a5d7-fa4fa72823ca" name="8237">
<file relativepath="8237\8237A.dlsche"/>
<file relativepath="8237\8237A.pdf"/>
<file relativepath="8237\channel.dlsche"/>
<file relativepath="8237\fmall.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>
没有这种文件类型的预览
差异被折叠。
;test
;DMA存储器到存储器的传送测试程序
.text
BEGIN:
mov al, 0x1a
;8237初始化,在执行cmp指令时,通过DMA传送,将block2程序块传送到block1处,传送完成后,
;将执行block2程序块,而不是block1
mov al,0xfc
out 0x8b, al ;写通道0模式寄存器,地址递减
mov al, 0x3f
out 0x80, al ;将传送源地址写入通道0的当前地址计数器中
mov al, 0xfd
out 0x8b, al ;写通道1模式寄存器,地址递减
mov al, 0x39
out 0x82, al ;将传送目的地址写入通道1的当前地址计数器中
mov al, 5 ;传送6个字节,字节数从5到0
out 0x83, al ;将传送字节数写入通道1的当前字节计数器中
mov al, 1
out 0x88, al ;启动存储器到存储器之间的数据传送
UP:
out 2, al
inc al
cmp al, 0x84
jnz UP
dec al
DOWN:
out 2, al
dec al
cmp al, 0x19
jnz DOWN
jmp BEGIN
block1:
mov bl, 0
add bl, 20
block2:
mov cl, 1
adc cl, 2
jmp UP
没有这种文件类型的预览
0001 ;test
0001 ;DMA存储器到存储器的传送测试程序
0002 .text
0003
0004 BEGIN:
0005 10 01 00 1A mov al, 0x1a
0004 ;8237初始化,在执行cmp指令时,通过DMA传送,将block2程序块传送到block1处,传送完成后,
0005 ;将执行block2程序块,而不是block1
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
0007 10 01 00 FC mov al,0xfc
0008 13 4E 00 8B out 0x8b, al ;写通道0模式寄存器,地址递减
0009
0010 16 01 00 3F mov al, 0x3f
0011 19 4E 00 80 out 0x80, al ;将传送源地址写入通道0的当前地址计数器中
0012
0013 1C 01 00 FD mov al, 0xfd
0014 1F 4E 00 8B out 0x8b, al ;写通道1模式寄存器,地址递减
0015
0016 22 01 00 39 mov al, 0x39
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
0022 2E 01 00 01 mov al, 1
0023 31 4E 00 88 out 0x88, al ;启动存储器到存储器之间的数据传送
0024
0025 UP:
0026 34 78 00 inc al
0027 36 47 00 84 cmp al, 0x84
0028
0029 block1:
0030 39 01 01 00 mov bl, 0
0031 3C 0E 01 14 add bl, 20
0032
0033 block2:
0034 3F 01 02 01 mov cl, 1
0035 42 16 02 02 adc cl, 2
0036 45 57 34 jmp UP
0037
0038
0039
没有这种文件类型的预览
没有这种文件类型的预览
差异被折叠。
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论