Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
Hardware-IRQ
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸时代
Dream Logic Group
实验项目模板
计算机组成原理
Hardware-IRQ
提交
d98e0c12
提交
d98e0c12
12月 10, 2018
创建
作者:
赵鹏翀
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
layout net
上级
6f4cccaf
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
22 行增加
和
25 行删除
+22
-25
Hardware-IRQ.dlsche
Hardware-IRQ.dlsche
+0
-0
Hardware-IRQ.dlsche.svg
Hardware-IRQ.dlsche.svg
+0
-0
REG.dlsche
REG.dlsche
+0
-0
REG.dlsche.svg
REG.dlsche.svg
+0
-0
microasm.c
microasm.c
+2
-2
ram.asm
ram.asm
+1
-1
ram.lst
ram.lst
+1
-1
rom.dbg
rom.dbg
+0
-0
rom.lst
rom.lst
+10
-9
rom.masm
rom.masm
+6
-10
rom.rxm
rom.rxm
+2
-2
没有找到文件。
Hardware-IRQ.dlsche
浏览文件 @
d98e0c12
没有这种文件类型的预览
Hardware-IRQ.dlsche.svg
浏览文件 @
d98e0c12
这个 源代码变更 因为 太大 而不能显示。 你可以
浏览blob
。
REG.dlsche
浏览文件 @
d98e0c12
没有这种文件类型的预览
REG.dlsche.svg
浏览文件 @
d98e0c12
这个 源代码变更 因为 太大 而不能显示。 你可以
浏览blob
。
microasm.c
浏览文件 @
d98e0c12
...
...
@@ -194,8 +194,8 @@ struct PATH_INSTRUCTION_OPERAND_ENTRY path_operand_table[] =
,{
&
csp_counter_keyword
,
&
mar_register_keyword
,
0xfff8f7ef
}
// path csp, mar
,{
&
csp_counter_keyword
,
&
sp_register_keyword
,
0xfff8feef
}
// path csp, sp
,{
&
sp_inc_keyword
,
&
csp_counter_keyword
,
0xffffffe7
}
// path sp_
add
, csp
,{
&
sp_dec_keyword
,
&
csp_counter_keyword
,
0xffffffef
}
// path sp_
minus
, csp
,{
&
sp_inc_keyword
,
&
csp_counter_keyword
,
0xffffffe7
}
// path sp_
inc
, csp
,{
&
sp_dec_keyword
,
&
csp_counter_keyword
,
0xffffffef
}
// path sp_
dec
, csp
,{
&
pc_register_keyword
,
&
mar_main_memory_keyword
,
0xfff3fbed
}
// path pc, [mar] 将pc值写入mar指向的内存
,{
&
asr_register_keyword
,
&
pc_register_keyword
,
0xfff7efef
}
// path asr, pc
...
...
ram.asm
浏览文件 @
d98e0c12
...
...
@@ -2,7 +2,7 @@
.
text
mov
sp
,
0xf8
;初始化
堆栈指针寄存器
mov
sp
,
0xf8
;初始化
栈指针寄存器
;=======================================================
;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。
...
...
ram.lst
浏览文件 @
d98e0c12
...
...
@@ -2,7 +2,7 @@
0002
0003 .text
0004
0005 00 9C F8 mov sp, 0xf8 ;初始化
堆栈指针寄存器
0005 00 9C F8 mov sp, 0xf8 ;初始化
栈指针寄存器
0006
0007 ;=======================================================
0008 ;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。
...
...
rom.dbg
浏览文件 @
d98e0c12
没有这种文件类型的预览
rom.lst
浏览文件 @
d98e0c12
...
...
@@ -503,8 +503,8 @@
0503 ; 硬中断处理微指令程序。
0504 ;硬中断处理就是入栈过程,将下一条指令的地址(中断返回地址)入栈,入栈过程就是将返回地址写入sp加1后指向的存储单元中
0505 ;然后将硬中断服务程序入口地址加载到PC,转去执行服务程序。
0506 780 EF FF 72 FF path sp, csp ;将堆栈指针寄存器sp的值传送到cs
t计数器
0507 784 EF FF FF FF path sp_dec, csp ;计数器cs
t减1
0506 780 EF FF 72 FF path sp, csp ;将堆栈指针寄存器sp的值传送到cs
p计数器
0507 784 EF FF FF FF path sp_dec, csp ;计数器cs
p减1
0508 788 EF FE F8 FF path csp, sp ;将减计数结果写回sp,完成堆栈指针sp-1操作,为返回地址入栈做准备
0509 78C EF F7 F2 FF path sp, mar ;sp堆栈指针寄存器内容传送到地址寄存器mar
0510 790 ED FB F3 FF path pc, [mar] ;将返回地址PC入栈
...
...
@@ -526,14 +526,15 @@
0526 ;与此同时,sp加1,指向新的栈顶
0527 ; iret
0528 7C0 EF F7 F2 FF path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar
0529 7C4 EF FF 72 FF path sp, csp ;sp传入cs
t计数器
0530 7C8 E7 FF FF FF path sp_inc, csp ;cs
t计数器加1
0531 7CC EF FE F8 FF path csp, sp ;将cs
t减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
0529 7C4 EF FF 72 FF path sp, csp ;sp传入cs
p计数器
0530 7C8 E7 FF FF FF path sp_inc, csp ;cs
p计数器加1
0531 7CC EF FE F8 FF path csp, sp ;将cs
p减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
0532 7D0 EF EB F9 FF path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回
0533 7D4 EF FF FD FF eoi ;清除已经服务完的硬中断标志
0534 7D8
CF FF FF FF reset upc
0535
0536
7DC FF FF FF FF dup 1, null
0537
0534 7D8
AF FF FF FF ask_for_int
0535
7DC CF FF FF FF reset upc
0536
0537
;dup 1, null
0538
0539
0540
rom.masm
浏览文件 @
d98e0c12
...
...
@@ -503,8 +503,8 @@ dup 5, null
; 硬中断处理微指令程序。
;硬中断处理就是入栈过程,将下一条指令的地址(中断返回地址)入栈,入栈过程就是将返回地址写入sp加1后指向的存储单元中
;然后将硬中断服务程序入口地址加载到PC,转去执行服务程序。
path sp, csp ;将堆栈指针寄存器sp的值传送到cs
t计数器
path sp_dec, csp ;计数器cs
t减1
path sp, csp ;将堆栈指针寄存器sp的值传送到cs
p计数器
path sp_dec, csp ;计数器cs
p减1
path csp, sp ;将减计数结果写回sp,完成堆栈指针sp-1操作,为返回地址入栈做准备
path sp, mar ;sp堆栈指针寄存器内容传送到地址寄存器mar
path pc, [mar] ;将返回地址PC入栈
...
...
@@ -526,14 +526,10 @@ dup 6, null
;与此同时,sp加1,指向新的栈顶
; iret
path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar
path sp, csp ;sp传入cs
t计数器
path sp_inc, csp ;cs
t计数器加1
path csp, sp ;将cs
t减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
path sp, csp ;sp传入cs
p计数器
path sp_inc, csp ;cs
p计数器加1
path csp, sp ;将cs
p减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回
eoi ;清除已经服务完的硬中断标志
ask_for_int
reset upc
dup 1, null
rom.rxm
浏览文件 @
d98e0c12
没有这种文件类型的预览
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论