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 个修改的文件
包含
1209 行增加
和
1212 行删除
+1209
-1212
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
+65
-65
ram.lst
ram.lst
+65
-65
rom.dbg
rom.dbg
+0
-0
rom.lst
rom.lst
+540
-539
rom.masm
rom.masm
+535
-539
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[] =
...
@@ -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
,
&
mar_register_keyword
,
0xfff8f7ef
}
// path csp, mar
,{
&
csp_counter_keyword
,
&
sp_register_keyword
,
0xfff8feef
}
// path csp, sp
,{
&
csp_counter_keyword
,
&
sp_register_keyword
,
0xfff8feef
}
// path csp, sp
,{
&
sp_inc_keyword
,
&
csp_counter_keyword
,
0xffffffe7
}
// path sp_
add
, csp
,{
&
sp_inc_keyword
,
&
csp_counter_keyword
,
0xffffffe7
}
// path sp_
inc
, csp
,{
&
sp_dec_keyword
,
&
csp_counter_keyword
,
0xffffffef
}
// path sp_
minus
, 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指向的内存
,{
&
pc_register_keyword
,
&
mar_main_memory_keyword
,
0xfff3fbed
}
// path pc, [mar] 将pc值写入mar指向的内存
,{
&
asr_register_keyword
,
&
pc_register_keyword
,
0xfff7efef
}
// path asr, pc
,{
&
asr_register_keyword
,
&
pc_register_keyword
,
0xfff7efef
}
// path asr, pc
...
...
ram.asm
浏览文件 @
d98e0c12
; 示例程序
; 示例程序
.
text
.
text
mov
sp
,
0xf8
;初始化
堆栈指针寄存器
mov
sp
,
0xf8
;初始化
栈指针寄存器
;=======================================================
;=======================================================
;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。
;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。
;中断向量本身是一个地址,它指向一个存储单元,该存储单元保存的就是某个中断服务程序的入口地址(起始地址)
;中断向量本身是一个地址,它指向一个存储单元,该存储单元保存的就是某个中断服务程序的入口地址(起始地址)
;设中断向量列表的首地址为0xf8,即第一个中断向量是存储单元0xf8
;设中断向量列表的首地址为0xf8,即第一个中断向量是存储单元0xf8
;安装0号中断向量0xf8,0xf8中保存0号中断服务程序的入口地址
;安装0号中断向量0xf8,0xf8中保存0号中断服务程序的入口地址
lea
a
,
int_0
lea
a
,
int_0
mov
r0
,
0xf8
mov
r0
,
0xf8
mov
[r0],
a
mov
[r0],
a
;安装3号中断向量0xfb,0xfb中保存3号中断服务程序的入口地址
;安装3号中断向量0xfb,0xfb中保存3号中断服务程序的入口地址
lea
a
,
int_3
lea
a
,
int_3
mov
r0
,
0xfb
mov
r0
,
0xfb
mov
[r0],
a
mov
[r0],
a
;安装5号中断向量0xfd,0xfd中保存5号中断服务程序的入口地址
;安装5号中断向量0xfd,0xfd中保存5号中断服务程序的入口地址
lea
a
,
int_5
lea
a
,
int_5
mov
r0
,
0xfd
mov
r0
,
0xfd
mov
[r0],
a
mov
[r0],
a
;=======================================================
;=======================================================
;主程序代码
;主程序代码
mov
a
,
-
1
mov
a
,
-
1
LOOPC
:
LOOPC
:
mov
r0
,
1
mov
r0
,
1
add
a
,
r0
add
a
,
r0
jmp
LOOPC
jmp
LOOPC
;=======================================================
;=======================================================
;中断服务程序
;中断服务程序
;0号中断的服务程序
;0号中断的服务程序
int_0
:
int_0
:
mov
a
,
0x10
mov
a
,
0x10
adc
a
,
-
1
adc
a
,
-
1
iret
iret
;3号中断的服务程序
;3号中断的服务程序
int_3
:
int_3
:
mov
a
,
0x13
mov
a
,
0x13
or
a
,
[r0]
or
a
,
[r0]
sbb
a
,
-
1
sbb
a
,
-
1
iret
iret
;5号中断的服务程序
;5号中断的服务程序
int_5
:
int_5
:
mov
r2
,
3
mov
r2
,
3
mov
a
,
1
mov
a
,
1
and
a
,
r2
and
a
,
r2
iret
iret
ram.lst
浏览文件 @
d98e0c12
0001 ; 示例程序
0001 ; 示例程序
0002
0002
0003 .text
0003 .text
0004
0004
0005 00 9C F8 mov sp, 0xf8 ;初始化
堆栈指针寄存器
0005 00 9C F8 mov sp, 0xf8 ;初始化
栈指针寄存器
0006
0006
0007 ;=======================================================
0007 ;=======================================================
0008 ;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。
0008 ;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。
0009 ;中断向量本身是一个地址,它指向一个存储单元,该存储单元保存的就是某个中断服务程序的入口地址(起始地址)
0009 ;中断向量本身是一个地址,它指向一个存储单元,该存储单元保存的就是某个中断服务程序的入口地址(起始地址)
0010 ;设中断向量列表的首地址为0xf8,即第一个中断向量是存储单元0xf8
0010 ;设中断向量列表的首地址为0xf8,即第一个中断向量是存储单元0xf8
0011
0011
0012 ;安装0号中断向量0xf8,0xf8中保存0号中断服务程序的入口地址
0012 ;安装0号中断向量0xf8,0xf8中保存0号中断服务程序的入口地址
0013 02 98 18 lea a, int_0
0013 02 98 18 lea a, int_0
0014 04 8C F8 mov r0, 0xf8
0014 04 8C F8 mov r0, 0xf8
0015 06 84 mov [r0], a
0015 06 84 mov [r0], a
0016
0016
0017
0017
0018 ;安装3号中断向量0xfb,0xfb中保存3号中断服务程序的入口地址
0018 ;安装3号中断向量0xfb,0xfb中保存3号中断服务程序的入口地址
0019 07 98 1D lea a, int_3
0019 07 98 1D lea a, int_3
0020 09 8C FB mov r0, 0xfb
0020 09 8C FB mov r0, 0xfb
0021 0B 84 mov [r0], a
0021 0B 84 mov [r0], a
0022
0022
0023
0023
0024 ;安装5号中断向量0xfd,0xfd中保存5号中断服务程序的入口地址
0024 ;安装5号中断向量0xfd,0xfd中保存5号中断服务程序的入口地址
0025 0C 98 23 lea a, int_5
0025 0C 98 23 lea a, int_5
0026 0E 8C FD mov r0, 0xfd
0026 0E 8C FD mov r0, 0xfd
0027 10 84 mov [r0], a
0027 10 84 mov [r0], a
0028
0028
0029
0029
0030 ;=======================================================
0030 ;=======================================================
0031 ;主程序代码
0031 ;主程序代码
0032
0032
0033 11 7C FF mov a, -1
0033 11 7C FF mov a, -1
0034
0034
0035 LOOPC:
0035 LOOPC:
0036 13 8C 01 mov r0, 1
0036 13 8C 01 mov r0, 1
0037 15 10 add a, r0
0037 15 10 add a, r0
0038
0038
0039 16 AC 13 jmp LOOPC
0039 16 AC 13 jmp LOOPC
0040
0040
0041
0041
0042 ;=======================================================
0042 ;=======================================================
0043 ;中断服务程序
0043 ;中断服务程序
0044 ;0号中断的服务程序
0044 ;0号中断的服务程序
0045 int_0:
0045 int_0:
0046 18 7C 10 mov a, 0x10
0046 18 7C 10 mov a, 0x10
0047 1A 2C FF adc a, -1
0047 1A 2C FF adc a, -1
0048 1C F8 iret
0048 1C F8 iret
0049
0049
0050
0050
0051 ;3号中断的服务程序
0051 ;3号中断的服务程序
0052 int_3:
0052 int_3:
0053 1D 7C 13 mov a, 0x13
0053 1D 7C 13 mov a, 0x13
0054 1F 64 or a, [r0]
0054 1F 64 or a, [r0]
0055 20 4C FF sbb a, -1
0055 20 4C FF sbb a, -1
0056 22 F8 iret
0056 22 F8 iret
0057
0057
0058
0058
0059 ;5号中断的服务程序
0059 ;5号中断的服务程序
0060 int_5:
0060 int_5:
0061 23 8E 03 mov r2, 3
0061 23 8E 03 mov r2, 3
0062 25 7C 01 mov a, 1
0062 25 7C 01 mov a, 1
0063 27 52 and a, r2
0063 27 52 and a, r2
0064 28 F8 iret
0064 28 F8 iret
0065
0065
rom.dbg
浏览文件 @
d98e0c12
没有这种文件类型的预览
rom.lst
浏览文件 @
d98e0c12
0001 ; (C) 2008-2018 北京英真时代科技有限公司。保留所有权利。
0001 ; (C) 2008-2018 北京英真时代科技有限公司。保留所有权利。
0002
0002
0003 ; 所有指令的第一条微指令地址必须是8的倍数
0003 ; 所有指令的第一条微指令地址必须是8的倍数
0004 ; 取指微指令,所有指令的第一步均为取指操作,都要执行该条微指令
0004 ; 取指微指令,所有指令的第一步均为取指操作,都要执行该条微指令
0005 00 EF 3F F9 FF path [pc], ir
0005 00 EF 3F F9 FF path [pc], ir
0006
0006
0007 ; 填充空白指令 01-1f
0007 ; 填充空白指令 01-1f
0008 04 FF FF FF FF dup 31, null
0008 04 FF FF FF FF dup 31, null
0009
0009
0010 ; add a, rx
0010 ; add a, rx
0011 80 EF FF FA 7F path rx, w
0011 80 EF FF FA 7F path rx, w
0012 84 EF FF E4 99 path alu_add, a
0012 84 EF FF E4 99 path alu_add, a
0013 88 FF FF FF FF inc pc
0013 88 FF FF FF FF inc pc
0014
0014
0015 ;查询硬中断请求,将低3位中断号与高5位中断向量基地址组合,得到8位中断向量(8位地址)
0015 ;查询硬中断请求,将低3位中断号与高5位中断向量基地址组合,得到8位中断向量(8位地址)
0016 ;该中断向量指向一个存储单元,该存储单元保存的就是中断服务程序的入口地址
0016 ;该中断向量指向一个存储单元,该存储单元保存的就是中断服务程序的入口地址
0017 ;若允许中断且有中断请求,则微程序跳转到硬中断处理处执行
0017 ;若允许中断且有中断请求,则微程序跳转到硬中断处理处执行
0018 8C AF FF FF FF ask_for_int
0018 8C AF FF FF FF ask_for_int
0019 90 CF FF FF FF reset upc
0019 90 CF FF FF FF reset upc
0020
0020
0021 94 FF FF FF FF dup 3, null
0021 94 FF FF FF FF dup 3, null
0022
0022
0023 ; add a, [rx]
0023 ; add a, [rx]
0024 A0 EF F7 FA FF path rx, mar
0024 A0 EF F7 FA FF path rx, mar
0025 A4 EF FB F9 7F path [mar], w
0025 A4 EF FB F9 7F path [mar], w
0026 A8 EF FF E4 99 path alu_add, a
0026 A8 EF FF E4 99 path alu_add, a
0027 AC FF FF FF FF inc pc
0027 AC FF FF FF FF inc pc
0028 B0 AF FF FF FF ask_for_int
0028 B0 AF FF FF FF ask_for_int
0029 B4 CF FF FF FF reset upc
0029 B4 CF FF FF FF reset upc
0030
0030
0031 B8 FF FF FF FF dup 2, null
0031 B8 FF FF FF FF dup 2, null
0032
0032
0033 ; add a, symbol
0033 ; add a, symbol
0034 C0 FF FF FF FF inc pc
0034 C0 FF FF FF FF inc pc
0035 C4 EF 77 F9 FF path [pc], mar
0035 C4 EF 77 F9 FF path [pc], mar
0036 C8 EF FB F9 7F path [mar], w
0036 C8 EF FB F9 7F path [mar], w
0037 CC EF FF E4 99 path alu_add, a
0037 CC EF FF E4 99 path alu_add, a
0038 D0 FF FF FF FF inc pc
0038 D0 FF FF FF FF inc pc
0039 D4 AF FF FF FF ask_for_int
0039 D4 AF FF FF FF ask_for_int
0040 D8 CF FF FF FF reset upc
0040 D8 CF FF FF FF reset upc
0041
0041
0042 DC FF FF FF FF dup 1, null
0042 DC FF FF FF FF dup 1, null
0043
0043
0044 ; add a, immediate
0044 ; add a, immediate
0045 E0 FF FF FF FF inc pc
0045 E0 FF FF FF FF inc pc
0046 E4 EF 7F F9 7F path [pc], w
0046 E4 EF 7F F9 7F path [pc], w
0047 E8 EF FF E4 99 path alu_add, a
0047 E8 EF FF E4 99 path alu_add, a
0048 EC FF FF FF FF inc pc
0048 EC FF FF FF FF inc pc
0049 F0 AF FF FF FF ask_for_int ;查询硬中断请求,若有请求,则转去执行硬中断预处理微程序
0049 F0 AF FF FF FF ask_for_int ;查询硬中断请求,若有请求,则转去执行硬中断预处理微程序
0050 F4 CF FF FF FF reset upc
0050 F4 CF FF FF FF reset upc
0051
0051
0052 F8 FF FF FF FF dup 2, null
0052 F8 FF FF FF FF dup 2, null
0053
0053
0054 ; adc a, rx
0054 ; adc a, rx
0055 100 EF FF FA 7F path rx, w
0055 100 EF FF FA 7F path rx, w
0056 104 EF FF E4 89 path alu_adc, a
0056 104 EF FF E4 89 path alu_adc, a
0057 108 FF FF FF FF inc pc
0057 108 FF FF FF FF inc pc
0058 10C AF FF FF FF ask_for_int
0058 10C AF FF FF FF ask_for_int
0059 110 CF FF FF FF reset upc
0059 110 CF FF FF FF reset upc
0060
0060
0061 114 FF FF FF FF dup 3, null
0061 114 FF FF FF FF dup 3, null
0062
0062
0063 ; adc a, [rx]
0063 ; adc a, [rx]
0064 120 EF F7 FA FF path rx, mar
0064 120 EF F7 FA FF path rx, mar
0065 124 EF FB F9 7F path [mar], w
0065 124 EF FB F9 7F path [mar], w
0066 128 EF FF E4 89 path alu_adc, a
0066 128 EF FF E4 89 path alu_adc, a
0067 12C FF FF FF FF inc pc
0067 12C FF FF FF FF inc pc
0068 130 AF FF FF FF ask_for_int
0068 130 AF FF FF FF ask_for_int
0069 134 CF FF FF FF reset upc
0069 134 CF FF FF FF reset upc
0070
0070
0071 138 FF FF FF FF dup 2, null
0071 138 FF FF FF FF dup 2, null
0072
0072
0073 ; adc a, symbol
0073 ; adc a, symbol
0074 140 FF FF FF FF inc pc
0074 140 FF FF FF FF inc pc
0075 144 EF 77 F9 FF path [pc], mar
0075 144 EF 77 F9 FF path [pc], mar
0076 148 EF FB F9 7F path [mar], w
0076 148 EF FB F9 7F path [mar], w
0077 14C EF FF E4 89 path alu_adc, a
0077 14C EF FF E4 89 path alu_adc, a
0078 150 FF FF FF FF inc pc
0078 150 FF FF FF FF inc pc
0079 154 AF FF FF FF ask_for_int
0079 154 AF FF FF FF ask_for_int
0080 158 CF FF FF FF reset upc
0080 158 CF FF FF FF reset upc
0081
0081
0082 15C FF FF FF FF dup 1, null
0082 15C FF FF FF FF dup 1, null
0083
0083
0084 ; adc a, immediate
0084 ; adc a, immediate
0085 160 FF FF FF FF inc pc
0085 160 FF FF FF FF inc pc
0086 164 EF 7F F9 7F path [pc], w
0086 164 EF 7F F9 7F path [pc], w
0087 168 EF FF E4 89 path alu_adc, a
0087 168 EF FF E4 89 path alu_adc, a
0088 16C FF FF FF FF inc pc
0088 16C FF FF FF FF inc pc
0089 170 AF FF FF FF ask_for_int
0089 170 AF FF FF FF ask_for_int
0090 174 CF FF FF FF reset upc
0090 174 CF FF FF FF reset upc
0091
0091
0092 178 FF FF FF FF dup 2, null
0092 178 FF FF FF FF dup 2, null
0093
0093
0094 ; sub a, rx
0094 ; sub a, rx
0095 180 EF FF FA 7F path rx, w
0095 180 EF FF FA 7F path rx, w
0096 184 EF FF E4 86 path alu_sub, a
0096 184 EF FF E4 86 path alu_sub, a
0097 188 FF FF FF FF inc pc
0097 188 FF FF FF FF inc pc
0098 18C AF FF FF FF ask_for_int
0098 18C AF FF FF FF ask_for_int
0099 190 CF FF FF FF reset upc
0099 190 CF FF FF FF reset upc
0100
0100
0101 194 FF FF FF FF dup 3, null
0101 194 FF FF FF FF dup 3, null
0102
0102
0103 ; sub a, [rx]
0103 ; sub a, [rx]
0104 1A0 EF F7 FA FF path rx, mar
0104 1A0 EF F7 FA FF path rx, mar
0105 1A4 EF FB F9 7F path [mar], w
0105 1A4 EF FB F9 7F path [mar], w
0106 1A8 EF FF E4 86 path alu_sub, a
0106 1A8 EF FF E4 86 path alu_sub, a
0107 1AC FF FF FF FF inc pc
0107 1AC FF FF FF FF inc pc
0108 1B0 AF FF FF FF ask_for_int
0108 1B0 AF FF FF FF ask_for_int
0109 1B4 CF FF FF FF reset upc
0109 1B4 CF FF FF FF reset upc
0110
0110
0111 1B8 FF FF FF FF dup 2, null
0111 1B8 FF FF FF FF dup 2, null
0112
0112
0113 ; sub a, symbol
0113 ; sub a, symbol
0114 1C0 FF FF FF FF inc pc
0114 1C0 FF FF FF FF inc pc
0115 1C4 EF 77 F9 FF path [pc], mar
0115 1C4 EF 77 F9 FF path [pc], mar
0116 1C8 EF FB F9 7F path [mar], w
0116 1C8 EF FB F9 7F path [mar], w
0117 1CC EF FF E4 86 path alu_sub, a
0117 1CC EF FF E4 86 path alu_sub, a
0118 1D0 FF FF FF FF inc pc
0118 1D0 FF FF FF FF inc pc
0119 1D4 AF FF FF FF ask_for_int
0119 1D4 AF FF FF FF ask_for_int
0120 1D8 CF FF FF FF reset upc
0120 1D8 CF FF FF FF reset upc
0121
0121
0122 1DC FF FF FF FF dup 1, null
0122 1DC FF FF FF FF dup 1, null
0123
0123
0124 ; sub a, immediate
0124 ; sub a, immediate
0125 1E0 FF FF FF FF inc pc
0125 1E0 FF FF FF FF inc pc
0126 1E4 EF 7F F9 7F path [pc], w
0126 1E4 EF 7F F9 7F path [pc], w
0127 1E8 EF FF E4 86 path alu_sub, a
0127 1E8 EF FF E4 86 path alu_sub, a
0128 1EC FF FF FF FF inc pc
0128 1EC FF FF FF FF inc pc
0129 1F0 AF FF FF FF ask_for_int
0129 1F0 AF FF FF FF ask_for_int
0130 1F4 CF FF FF FF reset upc
0130 1F4 CF FF FF FF reset upc
0131
0131
0132 1F8 FF FF FF FF dup 2, null
0132 1F8 FF FF FF FF dup 2, null
0133
0133
0134 ; sbb a, rx
0134 ; sbb a, rx
0135 200 EF FF FA 7F path rx, w
0135 200 EF FF FA 7F path rx, w
0136 204 EF FF E4 96 path alu_sbb, a
0136 204 EF FF E4 96 path alu_sbb, a
0137 208 FF FF FF FF inc pc
0137 208 FF FF FF FF inc pc
0138 20C AF FF FF FF ask_for_int
0138 20C AF FF FF FF ask_for_int
0139 210 CF FF FF FF reset upc
0139 210 CF FF FF FF reset upc
0140
0140
0141 214 FF FF FF FF dup 3, null
0141 214 FF FF FF FF dup 3, null
0142
0142
0143 ; sbb a, [rx]
0143 ; sbb a, [rx]
0144 220 EF F7 FA FF path rx, mar
0144 220 EF F7 FA FF path rx, mar
0145 224 EF FB F9 7F path [mar], w
0145 224 EF FB F9 7F path [mar], w
0146 228 EF FF E4 96 path alu_sbb, a
0146 228 EF FF E4 96 path alu_sbb, a
0147 22C FF FF FF FF inc pc
0147 22C FF FF FF FF inc pc
0148 230 AF FF FF FF ask_for_int
0148 230 AF FF FF FF ask_for_int
0149 234 CF FF FF FF reset upc
0149 234 CF FF FF FF reset upc
0150
0150
0151 238 FF FF FF FF dup 2, null
0151 238 FF FF FF FF dup 2, null
0152
0152
0153 ; sbb a, symbol
0153 ; sbb a, symbol
0154 240 FF FF FF FF inc pc
0154 240 FF FF FF FF inc pc
0155 244 EF 77 F9 FF path [pc], mar
0155 244 EF 77 F9 FF path [pc], mar
0156 248 EF FB F9 7F path [mar], w
0156 248 EF FB F9 7F path [mar], w
0157 24C EF FF E4 96 path alu_sbb, a
0157 24C EF FF E4 96 path alu_sbb, a
0158 250 FF FF FF FF inc pc
0158 250 FF FF FF FF inc pc
0159 254 AF FF FF FF ask_for_int
0159 254 AF FF FF FF ask_for_int
0160 258 CF FF FF FF reset upc
0160 258 CF FF FF FF reset upc
0161
0161
0162 25C FF FF FF FF dup 1, null
0162 25C FF FF FF FF dup 1, null
0163
0163
0164 ; sbb a, immediate
0164 ; sbb a, immediate
0165 260 FF FF FF FF inc pc
0165 260 FF FF FF FF inc pc
0166 264 EF 7F F9 7F path [pc], w
0166 264 EF 7F F9 7F path [pc], w
0167 268 EF FF E4 96 path alu_sbb, a
0167 268 EF FF E4 96 path alu_sbb, a
0168 26C FF FF FF FF inc pc
0168 26C FF FF FF FF inc pc
0169 270 AF FF FF FF ask_for_int
0169 270 AF FF FF FF ask_for_int
0170 274 CF FF FF FF reset upc
0170 274 CF FF FF FF reset upc
0171
0171
0172 278 FF FF FF FF dup 2, null
0172 278 FF FF FF FF dup 2, null
0173
0173
0174 ; and a, rx
0174 ; and a, rx
0175 280 EF FF FA 7F path rx, w
0175 280 EF FF FA 7F path rx, w
0176 284 EF FF E4 BB path alu_and a
0176 284 EF FF E4 BB path alu_and a
0177 288 FF FF FF FF inc pc
0177 288 FF FF FF FF inc pc
0178 28C AF FF FF FF ask_for_int
0178 28C AF FF FF FF ask_for_int
0179 290 CF FF FF FF reset upc
0179 290 CF FF FF FF reset upc
0180
0180
0181 294 FF FF FF FF dup 3, null
0181 294 FF FF FF FF dup 3, null
0182
0182
0183 ; and a, [rx]
0183 ; and a, [rx]
0184 2A0 EF F7 FA FF path rx, mar
0184 2A0 EF F7 FA FF path rx, mar
0185 2A4 EF FB F9 7F path [mar], w
0185 2A4 EF FB F9 7F path [mar], w
0186 2A8 EF FF E4 BB path alu_and, a
0186 2A8 EF FF E4 BB path alu_and, a
0187 2AC FF FF FF FF inc pc
0187 2AC FF FF FF FF inc pc
0188 2B0 AF FF FF FF ask_for_int
0188 2B0 AF FF FF FF ask_for_int
0189 2B4 CF FF FF FF reset upc
0189 2B4 CF FF FF FF reset upc
0190
0190
0191 2B8 FF FF FF FF dup 2, null
0191 2B8 FF FF FF FF dup 2, null
0192
0192
0193 ; and a, symbol
0193 ; and a, symbol
0194 2C0 FF FF FF FF inc pc
0194 2C0 FF FF FF FF inc pc
0195 2C4 EF 77 F9 FF path [pc], mar
0195 2C4 EF 77 F9 FF path [pc], mar
0196 2C8 EF FB F9 7F path [mar], w
0196 2C8 EF FB F9 7F path [mar], w
0197 2CC EF FF E4 BB path alu_and, a
0197 2CC EF FF E4 BB path alu_and, a
0198 2D0 FF FF FF FF inc pc
0198 2D0 FF FF FF FF inc pc
0199 2D4 AF FF FF FF ask_for_int
0199 2D4 AF FF FF FF ask_for_int
0200 2D8 CF FF FF FF reset upc
0200 2D8 CF FF FF FF reset upc
0201
0201
0202 2DC FF FF FF FF dup 1, null
0202 2DC FF FF FF FF dup 1, null
0203
0203
0204 ; and a, immediate
0204 ; and a, immediate
0205 2E0 FF FF FF FF inc pc
0205 2E0 FF FF FF FF inc pc
0206 2E4 EF 7F F9 7F path [pc], w
0206 2E4 EF 7F F9 7F path [pc], w
0207 2E8 EF FF E4 BB path alu_and, a
0207 2E8 EF FF E4 BB path alu_and, a
0208 2EC FF FF FF FF inc pc
0208 2EC FF FF FF FF inc pc
0209 2F0 AF FF FF FF ask_for_int
0209 2F0 AF FF FF FF ask_for_int
0210 2F4 CF FF FF FF reset upc
0210 2F4 CF FF FF FF reset upc
0211
0211
0212 2F8 FF FF FF FF dup 2, null
0212 2F8 FF FF FF FF dup 2, null
0213
0213
0214 ; or a, rx
0214 ; or a, rx
0215 300 EF FF FA 7F path rx, w
0215 300 EF FF FA 7F path rx, w
0216 304 EF FF E4 BE path alu_or a
0216 304 EF FF E4 BE path alu_or a
0217 308 FF FF FF FF inc pc
0217 308 FF FF FF FF inc pc
0218 30C AF FF FF FF ask_for_int
0218 30C AF FF FF FF ask_for_int
0219 310 CF FF FF FF reset upc
0219 310 CF FF FF FF reset upc
0220
0220
0221 314 FF FF FF FF dup 3, null
0221 314 FF FF FF FF dup 3, null
0222
0222
0223 ; or a, [rx]
0223 ; or a, [rx]
0224 320 EF F7 FA FF path rx, mar
0224 320 EF F7 FA FF path rx, mar
0225 324 EF FB F9 7F path [mar], w
0225 324 EF FB F9 7F path [mar], w
0226 328 EF FF E4 BE path alu_or, a
0226 328 EF FF E4 BE path alu_or, a
0227 32C FF FF FF FF inc pc
0227 32C FF FF FF FF inc pc
0228 330 AF FF FF FF ask_for_int
0228 330 AF FF FF FF ask_for_int
0229 334 CF FF FF FF reset upc
0229 334 CF FF FF FF reset upc
0230
0230
0231 338 FF FF FF FF dup 2, null
0231 338 FF FF FF FF dup 2, null
0232
0232
0233 ; or a, symbol
0233 ; or a, symbol
0234 340 FF FF FF FF inc pc
0234 340 FF FF FF FF inc pc
0235 344 EF 77 F9 FF path [pc], mar
0235 344 EF 77 F9 FF path [pc], mar
0236 348 EF FB F9 7F path [mar], w
0236 348 EF FB F9 7F path [mar], w
0237 34C EF FF E4 BE path alu_or, a
0237 34C EF FF E4 BE path alu_or, a
0238 350 FF FF FF FF inc pc
0238 350 FF FF FF FF inc pc
0239 354 AF FF FF FF ask_for_int
0239 354 AF FF FF FF ask_for_int
0240 358 CF FF FF FF reset upc
0240 358 CF FF FF FF reset upc
0241
0241
0242 35C FF FF FF FF dup 1, null
0242 35C FF FF FF FF dup 1, null
0243
0243
0244 ; or a, immediate
0244 ; or a, immediate
0245 360 FF FF FF FF inc pc
0245 360 FF FF FF FF inc pc
0246 364 EF 7F F9 7F path [pc], w
0246 364 EF 7F F9 7F path [pc], w
0247 368 EF FF E4 BE path alu_or, a
0247 368 EF FF E4 BE path alu_or, a
0248 36C FF FF FF FF inc pc
0248 36C FF FF FF FF inc pc
0249 370 AF FF FF FF ask_for_int
0249 370 AF FF FF FF ask_for_int
0250 374 CF FF FF FF reset upc
0250 374 CF FF FF FF reset upc
0251
0251
0252 378 FF FF FF FF dup 2, null
0252 378 FF FF FF FF dup 2, null
0253
0253
0254 ; mov a, rx
0254 ; mov a, rx
0255 380 EF FF FA BF path rx, a
0255 380 EF FF FA BF path rx, a
0256 384 FF FF FF FF inc pc
0256 384 FF FF FF FF inc pc
0257 388 AF FF FF FF ask_for_int
0257 388 AF FF FF FF ask_for_int
0258 38C CF FF FF FF reset upc
0258 38C CF FF FF FF reset upc
0259
0259
0260 390 FF FF FF FF dup 4, null
0260 390 FF FF FF FF dup 4, null
0261
0261
0262 ; mov a, [rx]
0262 ; mov a, [rx]
0263 3A0 EF F7 FA FF path rx, mar
0263 3A0 EF F7 FA FF path rx, mar
0264 3A4 EF FB F9 BF path [mar], a
0264 3A4 EF FB F9 BF path [mar], a
0265 3A8 FF FF FF FF inc pc
0265 3A8 FF FF FF FF inc pc
0266 3AC AF FF FF FF ask_for_int
0266 3AC AF FF FF FF ask_for_int
0267 3B0 CF FF FF FF reset upc
0267 3B0 CF FF FF FF reset upc
0268
0268
0269 3B4 FF FF FF FF dup 3, null
0269 3B4 FF FF FF FF dup 3, null
0270
0270
0271 ; mov a, symbol
0271 ; mov a, symbol
0272 3C0 FF FF FF FF inc pc
0272 3C0 FF FF FF FF inc pc
0273 3C4 EF 77 F9 FF path [pc], mar
0273 3C4 EF 77 F9 FF path [pc], mar
0274 3C8 EF FB F9 BF path [mar], a
0274 3C8 EF FB F9 BF path [mar], a
0275 3CC FF FF FF FF inc pc
0275 3CC FF FF FF FF inc pc
0276 3D0 AF FF FF FF ask_for_int
0276 3D0 AF FF FF FF ask_for_int
0277 3D4 CF FF FF FF reset upc
0277 3D4 CF FF FF FF reset upc
0278
0278
0279 3D8 FF FF FF FF dup 2, null
0279 3D8 FF FF FF FF dup 2, null
0280
0280
0281 ; mov a, immediate
0281 ; mov a, immediate
0282 3E0 FF FF FF FF inc pc
0282 3E0 FF FF FF FF inc pc
0283 3E4 EF 7F F9 BF path [pc], a
0283 3E4 EF 7F F9 BF path [pc], a
0284 3E8 FF FF FF FF inc pc
0284 3E8 FF FF FF FF inc pc
0285 3EC AF FF FF FF ask_for_int
0285 3EC AF FF FF FF ask_for_int
0286 3F0 CF FF FF FF reset upc
0286 3F0 CF FF FF FF reset upc
0287
0287
0288 3F4 FF FF FF FF dup 3, null
0288 3F4 FF FF FF FF dup 3, null
0289
0289
0290 ; mov rx, a
0290 ; mov rx, a
0291 400 EF FF B4 D0 path a, rx
0291 400 EF FF B4 D0 path a, rx
0292 404 FF FF FF FF inc pc
0292 404 FF FF FF FF inc pc
0293 408 AF FF FF FF ask_for_int
0293 408 AF FF FF FF ask_for_int
0294 40C CF FF FF FF reset upc
0294 40C CF FF FF FF reset upc
0295
0295
0296 410 FF FF FF FF dup 4, null
0296 410 FF FF FF FF dup 4, null
0297
0297
0298 ; mov [rx], a
0298 ; mov [rx], a
0299 420 EF F7 FA FF path rx, mar
0299 420 EF F7 FA FF path rx, mar
0300 424 ED FB F4 D0 path a, [mar]
0300 424 ED FB F4 D0 path a, [mar]
0301 428 FF FF FF FF inc pc
0301 428 FF FF FF FF inc pc
0302 42C AF FF FF FF ask_for_int
0302 42C AF FF FF FF ask_for_int
0303 430 CF FF FF FF reset upc
0303 430 CF FF FF FF reset upc
0304
0304
0305 434 FF FF FF FF dup 3, null
0305 434 FF FF FF FF dup 3, null
0306
0306
0307 ; mov symbol, a
0307 ; mov symbol, a
0308 440 FF FF FF FF inc pc
0308 440 FF FF FF FF inc pc
0309 444 EF 77 F9 FF path [pc], mar
0309 444 EF 77 F9 FF path [pc], mar
0310 448 ED FB F4 D0 path a, [mar]
0310 448 ED FB F4 D0 path a, [mar]
0311 44C FF FF FF FF inc pc
0311 44C FF FF FF FF inc pc
0312 450 AF FF FF FF ask_for_int
0312 450 AF FF FF FF ask_for_int
0313 454 CF FF FF FF reset upc
0313 454 CF FF FF FF reset upc
0314
0314
0315 458 FF FF FF FF dup 2, null
0315 458 FF FF FF FF dup 2, null
0316
0316
0317 ; mov rx, immediate
0317 ; mov rx, immediate
0318 460 FF FF FF FF inc pc
0318 460 FF FF FF FF inc pc
0319 464 EF 7F B9 FF path [pc], rx
0319 464 EF 7F B9 FF path [pc], rx
0320 468 FF FF FF FF inc pc
0320 468 FF FF FF FF inc pc
0321 46C AF FF FF FF ask_for_int
0321 46C AF FF FF FF ask_for_int
0322 470 CF FF FF FF reset upc
0322 470 CF FF FF FF reset upc
0323
0323
0324 474 FF FF FF FF dup 3, null
0324 474 FF FF FF FF dup 3, null
0325
0325
0326 ; read a, symbol
0326 ; read a, symbol
0327 480 FF FF FF FF inc pc
0327 480 FF FF FF FF inc pc
0328 484 EF 77 F9 FF path [pc], mar
0328 484 EF 77 F9 FF path [pc], mar
0329 488 EF 7F F9 BF path <mar>, a
0329 488 EF 7F F9 BF path <mar>, a
0330 48C FF FF FF FF inc pc
0330 48C FF FF FF FF inc pc
0331 490 AF FF FF FF ask_for_int
0331 490 AF FF FF FF ask_for_int
0332 494 CF FF FF FF reset upc
0332 494 CF FF FF FF reset upc
0333
0333
0334 498 FF FF FF FF dup 2, null
0334 498 FF FF FF FF dup 2, null
0335
0335
0336 ; write symbol, a
0336 ; write symbol, a
0337 4A0 FF FF FF FF inc pc
0337 4A0 FF FF FF FF inc pc
0338 4A4 EF 77 F9 FF path [pc], mar
0338 4A4 EF 77 F9 FF path [pc], mar
0339 4A8 EC FB F4 D0 path alu_aout, [mar]
0339 4A8 EC FB F4 D0 path alu_aout, [mar]
0340 4AC FF FF FF FF inc pc
0340 4AC FF FF FF FF inc pc
0341 4B0 AF FF FF FF ask_for_int
0341 4B0 AF FF FF FF ask_for_int
0342 4B4 CF FF FF FF reset upc
0342 4B4 CF FF FF FF reset upc
0343
0343
0344 4B8 FF FF FF FF dup 2, null
0344 4B8 FF FF FF FF dup 2, null
0345
0345
0346 ; lea a, symbol
0346 ; lea a, symbol
0347 4C0 FF FF FF FF inc pc
0347 4C0 FF FF FF FF inc pc
0348 4C4 EF 7F F9 BF path [pc], a
0348 4C4 EF 7F F9 BF path [pc], a
0349 4C8 FF FF FF FF inc pc
0349 4C8 FF FF FF FF inc pc
0350 4CC AF FF FF FF ask_for_int
0350 4CC AF FF FF FF ask_for_int
0351 4D0 CF FF FF FF reset upc
0351 4D0 CF FF FF FF reset upc
0352
0352
0353 4D4 FF FF FF FF dup 3, null
0353 4D4 FF FF FF FF dup 3, null
0354
0354
0355 ;mov sp, immediate
0355 ;mov sp, immediate
0356 4E0 FF FF FF FF inc pc
0356 4E0 FF FF FF FF inc pc
0357 4E4 EF 7E F9 FF path [pc], sp
0357 4E4 EF 7E F9 FF path [pc], sp
0358 4E8 FF FF FF FF inc pc
0358 4E8 FF FF FF FF inc pc
0359 4EC AF FF FF FF ask_for_int
0359 4EC AF FF FF FF ask_for_int
0360 4F0 CF FF FF FF reset upc
0360 4F0 CF FF FF FF reset upc
0361
0361
0362 4F4 FF FF FF FF dup 3, null
0362 4F4 FF FF FF FF dup 3, null
0363
0363
0364 ; jc symbol
0364 ; jc symbol
0365 500 FF FF FF FF inc pc
0365 500 FF FF FF FF inc pc
0366 504 EF 6F F9 FF path [pc], pc
0366 504 EF 6F F9 FF path [pc], pc
0367 508 AF FF FF FF ask_for_int
0367 508 AF FF FF FF ask_for_int
0368 50C CF FF FF FF reset upc
0368 50C CF FF FF FF reset upc
0369
0369
0370 510 FF FF FF FF dup 4, null
0370 510 FF FF FF FF dup 4, null
0371
0371
0372 ; jz symbol
0372 ; jz symbol
0373 520 FF FF FF FF inc pc
0373 520 FF FF FF FF inc pc
0374 524 EF 6F F9 FF path [pc], pc
0374 524 EF 6F F9 FF path [pc], pc
0375 528 AF FF FF FF ask_for_int
0375 528 AF FF FF FF ask_for_int
0376 52C CF FF FF FF reset upc
0376 52C CF FF FF FF reset upc
0377
0377
0378 530 FF FF FF FF dup 4, null
0378 530 FF FF FF FF dup 4, null
0379
0379
0380 ; 填充空白指令
0380 ; 填充空白指令
0381 540 FF FF FF FF dup 8, null
0381 540 FF FF FF FF dup 8, null
0382
0382
0383 ; jmp symbol
0383 ; jmp symbol
0384 560 FF FF FF FF inc pc
0384 560 FF FF FF FF inc pc
0385 564 EF 6F F9 FF path [pc], pc
0385 564 EF 6F F9 FF path [pc], pc
0386 568 AF FF FF FF ask_for_int
0386 568 AF FF FF FF ask_for_int
0387 56C CF FF FF FF reset upc
0387 56C CF FF FF FF reset upc
0388
0388
0389 570 FF FF FF FF dup 4, null
0389 570 FF FF FF FF dup 4, null
0390
0390
0391 ; in
0391 ; in
0392 580 EF FF F0 BF path rin, a
0392 580 EF FF F0 BF path rin, a
0393 584 FF FF FF FF inc pc
0393 584 FF FF FF FF inc pc
0394 588 AF FF FF FF ask_for_int
0394 588 AF FF FF FF ask_for_int
0395 58C CF FF FF FF reset upc
0395 58C CF FF FF FF reset upc
0396
0396
0397 590 FF FF FF FF dup 4, null
0397 590 FF FF FF FF dup 4, null
0398
0398
0399 ; out
0399 ; out
0400 5A0 EE FF F4 D0 path a, rout
0400 5A0 EE FF F4 D0 path a, rout
0401 5A4 FF FF FF FF inc pc
0401 5A4 FF FF FF FF inc pc
0402 5A8 AF FF FF FF ask_for_int
0402 5A8 AF FF FF FF ask_for_int
0403 5AC CF FF FF FF reset upc
0403 5AC CF FF FF FF reset upc
0404
0404
0405 5B0 FF FF FF FF dup 4, null
0405 5B0 FF FF FF FF dup 4, null
0406
0406
0407 ; int immediate
0407 ; int immediate
0408 5C0 FF FF FF FF inc pc
0408 5C0 FF FF FF FF inc pc
0409 5C4 EB 7F F9 FF path [pc], ia
0409 5C4 EB 7F F9 FF path [pc], ia
0410 5C8 EF FF 72 FF path sp, csp
0410 5C8 EF FF 72 FF path sp, csp
0411 5CC E7 FF FF FF path sp_inc, csp
0411 5CC E7 FF FF FF path sp_inc, csp
0412 5D0 EF FE F8 FF path csp, sp
0412 5D0 EF FE F8 FF path csp, sp
0413 5D4 EF F7 F2 FF path sp, mar
0413 5D4 EF F7 F2 FF path sp, mar
0414 5D8 FF FF FF FF inc pc
0414 5D8 FF FF FF FF inc pc
0415 5DC ED FB F3 FF path pc, [mar]
0415 5DC ED FB F3 FF path pc, [mar]
0416 5E0 EF F7 F1 FF path ia, mar
0416 5E0 EF F7 F1 FF path ia, mar
0417 5E4 EF EB F9 FF path [mar], pc
0417 5E4 EF EB F9 FF path [mar], pc
0418 5E8 CF FF FF FF reset upc
0418 5E8 CF FF FF FF reset upc
0419
0419
0420 5EC FF FF FF FF dup 5, null
0420 5EC FF FF FF FF dup 5, null
0421
0421
0422 ;
0422 ;
0423 600 FF FF FF FF dup 16, null
0423 600 FF FF FF FF dup 16, null
0424
0424
0425 ;=====================================================================
0425 ;=====================================================================
0426 ;子程序调用返回指令
0426 ;子程序调用返回指令
0427 ; ret
0427 ; ret
0428 640 EF F7 F2 FF path sp, mar ;将堆栈指针(栈顶地址)传送到 MAR
0428 640 EF F7 F2 FF path sp, mar ;将堆栈指针(栈顶地址)传送到 MAR
0429 644 EF FF 72 FF path sp, csp ;
0429 644 EF FF 72 FF path sp, csp ;
0430 648 E7 FF FF FF path sp_inc, csp ;
0430 648 E7 FF FF FF path sp_inc, csp ;
0431 64C EF FE F8 FF path csp, sp ;SP = SP + 1,出栈,更新栈顶
0431 64C EF FE F8 FF path csp, sp ;SP = SP + 1,出栈,更新栈顶
0432 650 EF EB F9 FF path [mar], pc ;将调用返回地址加载到PC,转移到调用处的下一条指令继续执行
0432 650 EF EB F9 FF path [mar], pc ;将调用返回地址加载到PC,转移到调用处的下一条指令继续执行
0433 654 CF FF FF FF reset upc
0433 654 CF FF FF FF reset upc
0434
0434
0435 658 FF FF FF FF dup 2, null
0435 658 FF FF FF FF dup 2, null
0436 ;=====================================================================
0436 ;=====================================================================
0437
0437
0438 ; 填充空白指令
0438 ; 填充空白指令
0439 660 FF FF FF FF dup 8, null
0439 660 FF FF FF FF dup 8, null
0440
0440
0441 ; shr a
0441 ; shr a
0442 680 EF FF D5 90 path alu_shr, a
0442 680 EF FF D5 90 path alu_shr, a
0443 684 FF FF FF FF inc pc
0443 684 FF FF FF FF inc pc
0444 688 AF FF FF FF ask_for_int
0444 688 AF FF FF FF ask_for_int
0445 68C CF FF FF FF reset upc
0445 68C CF FF FF FF reset upc
0446
0446
0447 690 FF FF FF FF dup 4, null
0447 690 FF FF FF FF dup 4, null
0448
0448
0449 ; shl a
0449 ; shl a
0450 6A0 EF FF D6 90 path alu_shl, a
0450 6A0 EF FF D6 90 path alu_shl, a
0451 6A4 FF FF FF FF inc pc
0451 6A4 FF FF FF FF inc pc
0452 6A8 AF FF FF FF ask_for_int
0452 6A8 AF FF FF FF ask_for_int
0453 6AC CF FF FF FF reset upc
0453 6AC CF FF FF FF reset upc
0454
0454
0455 6B0 FF FF FF FF dup 4, null
0455 6B0 FF FF FF FF dup 4, null
0456
0456
0457 ; rcr a
0457 ; rcr a
0458 6C0 EF FF E5 90 path alu_rcr, a
0458 6C0 EF FF E5 90 path alu_rcr, a
0459 6C4 FF FF FF FF inc pc
0459 6C4 FF FF FF FF inc pc
0460 6C8 AF FF FF FF ask_for_int
0460 6C8 AF FF FF FF ask_for_int
0461 6CC CF FF FF FF reset upc
0461 6CC CF FF FF FF reset upc
0462
0462
0463 6D0 FF FF FF FF dup 4, null
0463 6D0 FF FF FF FF dup 4, null
0464
0464
0465 ; rcl a
0465 ; rcl a
0466 6E0 EF FF E6 90 path alu_rcl, a
0466 6E0 EF FF E6 90 path alu_rcl, a
0467 6E4 FF FF FF FF inc pc
0467 6E4 FF FF FF FF inc pc
0468 6E8 AF FF FF FF ask_for_int
0468 6E8 AF FF FF FF ask_for_int
0469 6EC CF FF FF FF reset upc
0469 6EC CF FF FF FF reset upc
0470
0470
0471 6F0 FF FF FF FF dup 4, null
0471 6F0 FF FF FF FF dup 4, null
0472
0472
0473 ; nop
0473 ; nop
0474 700 FF FF FF FF inc pc
0474 700 FF FF FF FF inc pc
0475 704 CF FF FF FF reset upc
0475 704 CF FF FF FF reset upc
0476
0476
0477 708 FF FF FF FF dup 6, null
0477 708 FF FF FF FF dup 6, null
0478
0478
0479 ; not a
0479 ; not a
0480 720 EF FF F4 B0 path alu_not, a
0480 720 EF FF F4 B0 path alu_not, a
0481 724 FF FF FF FF inc pc
0481 724 FF FF FF FF inc pc
0482 728 AF FF FF FF ask_for_int
0482 728 AF FF FF FF ask_for_int
0483 72C CF FF FF FF reset upc
0483 72C CF FF FF FF reset upc
0484
0484
0485 730 FF FF FF FF dup 4, null
0485 730 FF FF FF FF dup 4, null
0486
0486
0487 ; call symbol
0487 ; call symbol
0488 740 FF FF FF FF inc pc
0488 740 FF FF FF FF inc pc
0489 744 EF 7D F9 FF path [pc], asr
0489 744 EF 7D F9 FF path [pc], asr
0490 748 EF FF 72 FF path sp, csp
0490 748 EF FF 72 FF path sp, csp
0491 74C EF FF FF FF path sp_dec, csp
0491 74C EF FF FF FF path sp_dec, csp
0492 750 EF FE F8 FF path csp, sp
0492 750 EF FE F8 FF path csp, sp
0493 754 EF F7 F2 FF path sp, mar
0493 754 EF F7 F2 FF path sp, mar
0494 758 FF FF FF FF inc pc
0494 758 FF FF FF FF inc pc
0495 75C ED FB F3 FF path pc, [mar]
0495 75C ED FB F3 FF path pc, [mar]
0496 760 EF EF F7 FF path asr, pc
0496 760 EF EF F7 FF path asr, pc
0497 764 AF FF FF FF ask_for_int
0497 764 AF FF FF FF ask_for_int
0498 768 CF FF FF FF reset upc
0498 768 CF FF FF FF reset upc
0499
0499
0500 76C FF FF FF FF dup 5, null
0500 76C FF FF FF FF dup 5, null
0501
0501
0502 ;======================================================================
0502 ;======================================================================
0503 ; 硬中断处理微指令程序。
0503 ; 硬中断处理微指令程序。
0504 ;硬中断处理就是入栈过程,将下一条指令的地址(中断返回地址)入栈,入栈过程就是将返回地址写入sp加1后指向的存储单元中
0504 ;硬中断处理就是入栈过程,将下一条指令的地址(中断返回地址)入栈,入栈过程就是将返回地址写入sp加1后指向的存储单元中
0505 ;然后将硬中断服务程序入口地址加载到PC,转去执行服务程序。
0505 ;然后将硬中断服务程序入口地址加载到PC,转去执行服务程序。
0506 780 EF FF 72 FF path sp, csp ;将堆栈指针寄存器sp的值传送到cst计数器
0506 780 EF FF 72 FF path sp, csp ;将堆栈指针寄存器sp的值传送到csp计数器
0507 784 EF FF FF FF path sp_dec, csp ;计数器cst减1
0507 784 EF FF FF FF path sp_dec, csp ;计数器csp减1
0508 788 EF FE F8 FF path csp, sp ;将减计数结果写回sp,完成堆栈指针sp-1操作,为返回地址入栈做准备
0508 788 EF FE F8 FF path csp, sp ;将减计数结果写回sp,完成堆栈指针sp-1操作,为返回地址入栈做准备
0509 78C EF F7 F2 FF path sp, mar ;sp堆栈指针寄存器内容传送到地址寄存器mar
0509 78C EF F7 F2 FF path sp, mar ;sp堆栈指针寄存器内容传送到地址寄存器mar
0510 790 ED FB F3 FF path pc, [mar] ;将返回地址PC入栈
0510 790 ED FB F3 FF path pc, [mar] ;将返回地址PC入栈
0511
0511
0512 ; 根据中断号获取中断服务程序入口地址
0512 ; 根据中断号获取中断服务程序入口地址
0513 794 EF FF FB FF inta1 ;发出第一个中断应答信号,中断控制器保存最高优先级中断请求对应的编号(0~7)
0513 794 EF FF FB FF inta1 ;发出第一个中断应答信号,中断控制器保存最高优先级中断请求对应的编号(0~7)
0514 798 EB FF FC FF inta2 ;发出第二个中断应答信号,将响应中断的终端号读入IA寄存器中,并清除响应的中断请求,避免重复响应
0514 798 EB FF FC FF inta2 ;发出第二个中断应答信号,将响应中断的终端号读入IA寄存器中,并清除响应的中断请求,避免重复响应
0515
0515
0516 79C EF DF F1 FF path int_ia, pc ;将中断向量(ia寄存器的内容)传入PC
0516 79C EF DF F1 FF path int_ia, pc ;将中断向量(ia寄存器的内容)传入PC
0517 7A0 EF 5F F9 FF path [int_pc], pc ;读出中断向量中的内容(中断服务程序首地址),将其加载到PC,执行中断服务程序
0517 7A0 EF 5F F9 FF path [int_pc], pc ;读出中断向量中的内容(中断服务程序首地址),将其加载到PC,执行中断服务程序
0518 7A4 CF FF FF FF reset upc
0518 7A4 CF FF FF FF reset upc
0519
0519
0520 7A8 FF FF FF FF dup 6, null
0520 7A8 FF FF FF FF dup 6, null
0521
0521
0522 ;======================================================================
0522 ;======================================================================
0523 ;中断返回指令
0523 ;中断返回指令
0524 ; iret
0524 ; iret
0525 ;中断返回就是出栈过程,将栈顶指针sp指向的存储单元内的返回地址加载到PC,实现中断返回
0525 ;中断返回就是出栈过程,将栈顶指针sp指向的存储单元内的返回地址加载到PC,实现中断返回
0526 ;与此同时,sp加1,指向新的栈顶
0526 ;与此同时,sp加1,指向新的栈顶
0527 ; iret
0527 ; iret
0528 7C0 EF F7 F2 FF path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar
0528 7C0 EF F7 F2 FF path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar
0529 7C4 EF FF 72 FF path sp, csp ;sp传入cst计数器
0529 7C4 EF FF 72 FF path sp, csp ;sp传入csp计数器
0530 7C8 E7 FF FF FF path sp_inc, csp ;cst计数器加1
0530 7C8 E7 FF FF FF path sp_inc, csp ;csp计数器加1
0531 7CC EF FE F8 FF path csp, sp ;将cst减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
0531 7CC EF FE F8 FF path csp, sp ;将csp减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
0532 7D0 EF EB F9 FF path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回
0532 7D0 EF EB F9 FF path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回
0533 7D4 EF FF FD FF eoi ;清除已经服务完的硬中断标志
0533 7D4 EF FF FD FF eoi ;清除已经服务完的硬中断标志
0534 7D8 CF FF FF FF reset upc
0534 7D8 AF FF FF FF ask_for_int
0535
0535 7DC CF FF FF FF reset upc
0536 7DC FF FF FF FF dup 1, null
0536
0537
0537 ;dup 1, null
0538
0538
0539
0539
0540
rom.masm
浏览文件 @
d98e0c12
; (C) 2008-2018 北京英真时代科技有限公司。保留所有权利。
; (C) 2008-2018 北京英真时代科技有限公司。保留所有权利。
; 所有指令的第一条微指令地址必须是8的倍数
; 所有指令的第一条微指令地址必须是8的倍数
; 取指微指令,所有指令的第一步均为取指操作,都要执行该条微指令
; 取指微指令,所有指令的第一步均为取指操作,都要执行该条微指令
path [pc], ir
path [pc], ir
; 填充空白指令 01-1f
; 填充空白指令 01-1f
dup 31, null
dup 31, null
; add a, rx
; add a, rx
path rx, w
path rx, w
path alu_add, a
path alu_add, a
inc pc
inc pc
;查询硬中断请求,将低3位中断号与高5位中断向量基地址组合,得到8位中断向量(8位地址)
;查询硬中断请求,将低3位中断号与高5位中断向量基地址组合,得到8位中断向量(8位地址)
;该中断向量指向一个存储单元,该存储单元保存的就是中断服务程序的入口地址
;该中断向量指向一个存储单元,该存储单元保存的就是中断服务程序的入口地址
;若允许中断且有中断请求,则微程序跳转到硬中断处理处执行
;若允许中断且有中断请求,则微程序跳转到硬中断处理处执行
ask_for_int
ask_for_int
reset upc
reset upc
dup 3, null
dup 3, null
; add a, [rx]
; add a, [rx]
path rx, mar
path rx, mar
path [mar], w
path [mar], w
path alu_add, a
path alu_add, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; add a, symbol
; add a, symbol
inc pc
inc pc
path [pc], mar
path [pc], mar
path [mar], w
path [mar], w
path alu_add, a
path alu_add, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 1, null
dup 1, null
; add a, immediate
; add a, immediate
inc pc
inc pc
path [pc], w
path [pc], w
path alu_add, a
path alu_add, a
inc pc
inc pc
ask_for_int ;查询硬中断请求,若有请求,则转去执行硬中断预处理微程序
ask_for_int ;查询硬中断请求,若有请求,则转去执行硬中断预处理微程序
reset upc
reset upc
dup 2, null
dup 2, null
; adc a, rx
; adc a, rx
path rx, w
path rx, w
path alu_adc, a
path alu_adc, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 3, null
dup 3, null
; adc a, [rx]
; adc a, [rx]
path rx, mar
path rx, mar
path [mar], w
path [mar], w
path alu_adc, a
path alu_adc, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; adc a, symbol
; adc a, symbol
inc pc
inc pc
path [pc], mar
path [pc], mar
path [mar], w
path [mar], w
path alu_adc, a
path alu_adc, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 1, null
dup 1, null
; adc a, immediate
; adc a, immediate
inc pc
inc pc
path [pc], w
path [pc], w
path alu_adc, a
path alu_adc, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; sub a, rx
; sub a, rx
path rx, w
path rx, w
path alu_sub, a
path alu_sub, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 3, null
dup 3, null
; sub a, [rx]
; sub a, [rx]
path rx, mar
path rx, mar
path [mar], w
path [mar], w
path alu_sub, a
path alu_sub, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; sub a, symbol
; sub a, symbol
inc pc
inc pc
path [pc], mar
path [pc], mar
path [mar], w
path [mar], w
path alu_sub, a
path alu_sub, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 1, null
dup 1, null
; sub a, immediate
; sub a, immediate
inc pc
inc pc
path [pc], w
path [pc], w
path alu_sub, a
path alu_sub, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; sbb a, rx
; sbb a, rx
path rx, w
path rx, w
path alu_sbb, a
path alu_sbb, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 3, null
dup 3, null
; sbb a, [rx]
; sbb a, [rx]
path rx, mar
path rx, mar
path [mar], w
path [mar], w
path alu_sbb, a
path alu_sbb, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; sbb a, symbol
; sbb a, symbol
inc pc
inc pc
path [pc], mar
path [pc], mar
path [mar], w
path [mar], w
path alu_sbb, a
path alu_sbb, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 1, null
dup 1, null
; sbb a, immediate
; sbb a, immediate
inc pc
inc pc
path [pc], w
path [pc], w
path alu_sbb, a
path alu_sbb, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; and a, rx
; and a, rx
path rx, w
path rx, w
path alu_and a
path alu_and a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 3, null
dup 3, null
; and a, [rx]
; and a, [rx]
path rx, mar
path rx, mar
path [mar], w
path [mar], w
path alu_and, a
path alu_and, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; and a, symbol
; and a, symbol
inc pc
inc pc
path [pc], mar
path [pc], mar
path [mar], w
path [mar], w
path alu_and, a
path alu_and, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 1, null
dup 1, null
; and a, immediate
; and a, immediate
inc pc
inc pc
path [pc], w
path [pc], w
path alu_and, a
path alu_and, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; or a, rx
; or a, rx
path rx, w
path rx, w
path alu_or a
path alu_or a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 3, null
dup 3, null
; or a, [rx]
; or a, [rx]
path rx, mar
path rx, mar
path [mar], w
path [mar], w
path alu_or, a
path alu_or, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; or a, symbol
; or a, symbol
inc pc
inc pc
path [pc], mar
path [pc], mar
path [mar], w
path [mar], w
path alu_or, a
path alu_or, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 1, null
dup 1, null
; or a, immediate
; or a, immediate
inc pc
inc pc
path [pc], w
path [pc], w
path alu_or, a
path alu_or, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; mov a, rx
; mov a, rx
path rx, a
path rx, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 4, null
dup 4, null
; mov a, [rx]
; mov a, [rx]
path rx, mar
path rx, mar
path [mar], a
path [mar], a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 3, null
dup 3, null
; mov a, symbol
; mov a, symbol
inc pc
inc pc
path [pc], mar
path [pc], mar
path [mar], a
path [mar], a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; mov a, immediate
; mov a, immediate
inc pc
inc pc
path [pc], a
path [pc], a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 3, null
dup 3, null
; mov rx, a
; mov rx, a
path a, rx
path a, rx
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 4, null
dup 4, null
; mov [rx], a
; mov [rx], a
path rx, mar
path rx, mar
path a, [mar]
path a, [mar]
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 3, null
dup 3, null
; mov symbol, a
; mov symbol, a
inc pc
inc pc
path [pc], mar
path [pc], mar
path a, [mar]
path a, [mar]
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; mov rx, immediate
; mov rx, immediate
inc pc
inc pc
path [pc], rx
path [pc], rx
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 3, null
dup 3, null
; read a, symbol
; read a, symbol
inc pc
inc pc
path [pc], mar
path [pc], mar
path <mar>, a
path <mar>, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; write symbol, a
; write symbol, a
inc pc
inc pc
path [pc], mar
path [pc], mar
path alu_aout, [mar]
path alu_aout, [mar]
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 2, null
dup 2, null
; lea a, symbol
; lea a, symbol
inc pc
inc pc
path [pc], a
path [pc], a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 3, null
dup 3, null
;mov sp, immediate
;mov sp, immediate
inc pc
inc pc
path [pc], sp
path [pc], sp
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 3, null
dup 3, null
; jc symbol
; jc symbol
inc pc
inc pc
path [pc], pc
path [pc], pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 4, null
dup 4, null
; jz symbol
; jz symbol
inc pc
inc pc
path [pc], pc
path [pc], pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 4, null
dup 4, null
; 填充空白指令
; 填充空白指令
dup 8, null
dup 8, null
; jmp symbol
; jmp symbol
inc pc
inc pc
path [pc], pc
path [pc], pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 4, null
dup 4, null
; in
; in
path rin, a
path rin, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 4, null
dup 4, null
; out
; out
path a, rout
path a, rout
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 4, null
dup 4, null
; int immediate
; int immediate
inc pc
inc pc
path [pc], ia
path [pc], ia
path sp, csp
path sp, csp
path sp_inc, csp
path sp_inc, csp
path csp, sp
path csp, sp
path sp, mar
path sp, mar
inc pc
inc pc
path pc, [mar]
path pc, [mar]
path ia, mar
path ia, mar
path [mar], pc
path [mar], pc
reset upc
reset upc
dup 5, null
dup 5, null
;
;
dup 16, null
dup 16, null
;=====================================================================
;=====================================================================
;子程序调用返回指令
;子程序调用返回指令
; ret
; ret
path sp, mar ;将堆栈指针(栈顶地址)传送到 MAR
path sp, mar ;将堆栈指针(栈顶地址)传送到 MAR
path sp, csp ;
path sp, csp ;
path sp_inc, csp ;
path sp_inc, csp ;
path csp, sp ;SP = SP + 1,出栈,更新栈顶
path csp, sp ;SP = SP + 1,出栈,更新栈顶
path [mar], pc ;将调用返回地址加载到PC,转移到调用处的下一条指令继续执行
path [mar], pc ;将调用返回地址加载到PC,转移到调用处的下一条指令继续执行
reset upc
reset upc
dup 2, null
dup 2, null
;=====================================================================
;=====================================================================
; 填充空白指令
; 填充空白指令
dup 8, null
dup 8, null
; shr a
; shr a
path alu_shr, a
path alu_shr, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 4, null
dup 4, null
; shl a
; shl a
path alu_shl, a
path alu_shl, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 4, null
dup 4, null
; rcr a
; rcr a
path alu_rcr, a
path alu_rcr, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 4, null
dup 4, null
; rcl a
; rcl a
path alu_rcl, a
path alu_rcl, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 4, null
dup 4, null
; nop
; nop
inc pc
inc pc
reset upc
reset upc
dup 6, null
dup 6, null
; not a
; not a
path alu_not, a
path alu_not, a
inc pc
inc pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 4, null
dup 4, null
; call symbol
; call symbol
inc pc
inc pc
path [pc], asr
path [pc], asr
path sp, csp
path sp, csp
path sp_dec, csp
path sp_dec, csp
path csp, sp
path csp, sp
path sp, mar
path sp, mar
inc pc
inc pc
path pc, [mar]
path pc, [mar]
path asr, pc
path asr, pc
ask_for_int
ask_for_int
reset upc
reset upc
dup 5, null
dup 5, null
;======================================================================
;======================================================================
; 硬中断处理微指令程序。
; 硬中断处理微指令程序。
;硬中断处理就是入栈过程,将下一条指令的地址(中断返回地址)入栈,入栈过程就是将返回地址写入sp加1后指向的存储单元中
;硬中断处理就是入栈过程,将下一条指令的地址(中断返回地址)入栈,入栈过程就是将返回地址写入sp加1后指向的存储单元中
;然后将硬中断服务程序入口地址加载到PC,转去执行服务程序。
;然后将硬中断服务程序入口地址加载到PC,转去执行服务程序。
path sp, csp ;将堆栈指针寄存器sp的值传送到cst计数器
path sp, csp ;将堆栈指针寄存器sp的值传送到csp计数器
path sp_dec, csp ;计数器cst减1
path sp_dec, csp ;计数器csp减1
path csp, sp ;将减计数结果写回sp,完成堆栈指针sp-1操作,为返回地址入栈做准备
path csp, sp ;将减计数结果写回sp,完成堆栈指针sp-1操作,为返回地址入栈做准备
path sp, mar ;sp堆栈指针寄存器内容传送到地址寄存器mar
path sp, mar ;sp堆栈指针寄存器内容传送到地址寄存器mar
path pc, [mar] ;将返回地址PC入栈
path pc, [mar] ;将返回地址PC入栈
; 根据中断号获取中断服务程序入口地址
; 根据中断号获取中断服务程序入口地址
inta1 ;发出第一个中断应答信号,中断控制器保存最高优先级中断请求对应的编号(0~7)
inta1 ;发出第一个中断应答信号,中断控制器保存最高优先级中断请求对应的编号(0~7)
inta2 ;发出第二个中断应答信号,将响应中断的终端号读入IA寄存器中,并清除响应的中断请求,避免重复响应
inta2 ;发出第二个中断应答信号,将响应中断的终端号读入IA寄存器中,并清除响应的中断请求,避免重复响应
path int_ia, pc ;将中断向量(ia寄存器的内容)传入PC
path int_ia, pc ;将中断向量(ia寄存器的内容)传入PC
path [int_pc], pc ;读出中断向量中的内容(中断服务程序首地址),将其加载到PC,执行中断服务程序
path [int_pc], pc ;读出中断向量中的内容(中断服务程序首地址),将其加载到PC,执行中断服务程序
reset upc
reset upc
dup 6, null
dup 6, null
;======================================================================
;======================================================================
;中断返回指令
;中断返回指令
; iret
; iret
;中断返回就是出栈过程,将栈顶指针sp指向的存储单元内的返回地址加载到PC,实现中断返回
;中断返回就是出栈过程,将栈顶指针sp指向的存储单元内的返回地址加载到PC,实现中断返回
;与此同时,sp加1,指向新的栈顶
;与此同时,sp加1,指向新的栈顶
; iret
; iret
path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar
path sp, mar ;将栈顶指针SP传入地址寄存器MAR,也就是将中断返回地址传入mar
path sp, csp ;sp传入cst计数器
path sp, csp ;sp传入csp计数器
path sp_inc, csp ;cst计数器加1
path sp_inc, csp ;csp计数器加1
path csp, sp ;将cst减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
path csp, sp ;将csp减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回
path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回
eoi ;清除已经服务完的硬中断标志
eoi ;清除已经服务完的硬中断标志
reset upc
ask_for_int
reset upc
dup 1, null
rom.rxm
浏览文件 @
d98e0c12
没有这种文件类型的预览
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论