Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
Lab006
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸大学计算机学院
教师群组
赵鹏翀-zpc
Lab006
提交
a07c7257
提交
a07c7257
5月 04, 2020
创建
作者:
赵鹏翀
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix ram.asm
上级
93314ff0
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
78 行增加
和
78 行删除
+78
-78
8086
8086
+1
-1
8237
8237
+1
-1
ram.asm
MEM/ram.asm
+38
-38
ram.lst
MEM/ram.lst
+38
-38
ram.rxm
MEM/ram.rxm
+0
-0
没有找到文件。
8086
@
58d7caeb
Subproject commit
0278cc57b2050c74e10bbda5a0b67fb99b83fd58
Subproject commit
58d7caeb77e6c4c59fba183da1abb7846e3f060a
8237
@
e70e96ac
Subproject commit
2cb9d7127efb4cb4d91a7b7f91f0954054585c6d
Subproject commit
e70e96acee1cccacd1bca18f5ceaf2d33387804a
MEM/ram.asm
浏览文件 @
a07c7257
;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
MEM/ram.lst
浏览文件 @
a07c7257
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
MEM/ram.rxm
浏览文件 @
a07c7257
没有这种文件类型的预览
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论