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

layout net

上级 6f4cccaf
没有这种文件类型的预览
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
没有这种文件类型的预览
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
...@@ -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
......
; 示例程序 ; 示例程序
.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
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
没有这种文件类型的预览
差异被折叠。
差异被折叠。
没有这种文件类型的预览
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论