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

fix ram.asm

上级 93314ff0
Subproject commit 0278cc57b2050c74e10bbda5a0b67fb99b83fd58
Subproject commit 58d7caeb77e6c4c59fba183da1abb7846e3f060a
8237 @ e70e96ac
Subproject commit 2cb9d7127efb4cb4d91a7b7f91f0954054585c6d
Subproject commit e70e96acee1cccacd1bca18f5ceaf2d33387804a
;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: ;主程序开始
mov al, 0x15
block1:
mov bl, 0
add bl, 20
block2:
sub al, 3
adc al, 2
jmp BEGIN
;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
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 01 00 15 mov al, 0x15
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
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
没有这种文件类型的预览
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论