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

layout net

上级 6f4cccaf
没有这种文件类型的预览
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
没有这种文件类型的预览
这个 源代码变更 因为 太大 而不能显示。 你可以 浏览blob
......@@ -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
......
......@@ -2,7 +2,7 @@
.text
mov sp, 0xf8 ;初始化堆栈指针寄存器
mov sp, 0xf8 ;初始化栈指针寄存器
;=======================================================
;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。
......
......@@ -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 ;安装中断向量,安装中断的过程是将各个中断服务程序的入口地址(首地址)保存到对应中断向量指向的存储单元中。
......
没有这种文件类型的预览
......@@ -503,8 +503,8 @@
0503 ; 硬中断处理微指令程序。
0504 ;硬中断处理就是入栈过程,将下一条指令的地址(中断返回地址)入栈,入栈过程就是将返回地址写入sp加1后指向的存储单元中
0505 ;然后将硬中断服务程序入口地址加载到PC,转去执行服务程序。
0506 780 EF FF 72 FF path sp, csp ;将堆栈指针寄存器sp的值传送到cst计数器
0507 784 EF FF FF FF path sp_dec, csp ;计数器cst减1
0506 780 EF FF 72 FF path sp, csp ;将堆栈指针寄存器sp的值传送到csp计数器
0507 784 EF FF FF FF path sp_dec, csp ;计数器csp减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传入cst计数器
0530 7C8 E7 FF FF FF path sp_inc, csp ;cst计数器加1
0531 7CC EF FE F8 FF path csp, sp ;将cst减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
0529 7C4 EF FF 72 FF path sp, csp ;sp传入csp计数器
0530 7C8 E7 FF FF FF path sp_inc, csp ;csp计数器加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,实现中断返回
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
......@@ -503,8 +503,8 @@ dup 5, null
; 硬中断处理微指令程序。
;硬中断处理就是入栈过程,将下一条指令的地址(中断返回地址)入栈,入栈过程就是将返回地址写入sp加1后指向的存储单元中
;然后将硬中断服务程序入口地址加载到PC,转去执行服务程序。
path sp, csp ;将堆栈指针寄存器sp的值传送到cst计数器
path sp_dec, csp ;计数器cst减1
path sp, csp ;将堆栈指针寄存器sp的值传送到csp计数器
path sp_dec, csp ;计数器csp减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传入cst计数器
path sp_inc, csp ;cst计数器加1
path csp, sp ;将cst减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
path sp, csp ;sp传入csp计数器
path sp_inc, csp ;csp计数器加1
path csp, sp ;将csp减1后的结果写入sp,也就是出栈后,sp减1,指向新的栈顶
path [mar], pc ;将mar寄存器指向存储单元的内容作为地址传入PC,实现中断返回
eoi ;清除已经服务完的硬中断标志
ask_for_int
reset upc
dup 1, null
没有这种文件类型的预览
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论