Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
8
8086
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸大学计算机学院
教师群组
赵鹏翀-zpc
8086
提交
8322ec68
提交
8322ec68
10月 18, 2018
创建
作者:
宋海霞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改PC原理图的复位控制以及微指令
上级
f94c0ceb
全部展开
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
79 行增加
和
37 行删除
+79
-37
PC.dlsche
PC.dlsche
+0
-0
PC.dlsche.svg
PC.dlsche.svg
+0
-0
microasm.c
microasm.c
+18
-17
microasm.exe
microasm.exe
+0
-0
rom.dbg
rom.dbg
+0
-0
rom.lst
rom.lst
+0
-0
rom.masm
rom.masm
+59
-18
rom.rxm
rom.rxm
+2
-2
没有找到文件。
PC.dlsche
浏览文件 @
8322ec68
没有这种文件类型的预览
PC.dlsche.svg
浏览文件 @
8322ec68
这个 源代码变更 因为 太大 而不能显示。 你可以
浏览blob
。
microasm.c
浏览文件 @
8322ec68
...
@@ -96,15 +96,15 @@ const char* shift_flag_keyword = "shift_flag";
...
@@ -96,15 +96,15 @@ const char* shift_flag_keyword = "shift_flag";
// 访问主存或外设的操作数
// 访问主存或外设的操作数
const
char
*
pc_main_memory_keyword
=
"[pc]"
;
const
char
*
pc_main_memory_keyword
=
"[pc]"
;
const
char
*
jz
pc_main_memory_keyword
=
"jz[pc
]"
;
const
char
*
jz
_mar_keyword
=
"jz[mar
]"
;
const
char
*
jnz
pc_main_memory_keyword
=
"jnz[pc
]"
;
const
char
*
jnz
_mar_keyword
=
"jnz[mar
]"
;
const
char
*
jc
pc_main_memory_keyword
=
"jc[pc
]"
;
const
char
*
jc
_mar_keyword
=
"jc[mar
]"
;
const
char
*
ja
pc_main_memory_keyword
=
"ja[pc
]"
;
const
char
*
ja
_mar_keyword
=
"ja[mar
]"
;
const
char
*
jb
pc_main_memory_keyword
=
"jb[pc
]"
;
const
char
*
jb
_mar_keyword
=
"jb[mar
]"
;
const
char
*
jg
pc_main_memory_keyword
=
"jg[pc
]"
;
const
char
*
jg
_mar_keyword
=
"jg[mar
]"
;
const
char
*
jl
pc_main_memory_keyword
=
"jl[pc
]"
;
const
char
*
jl
_mar_keyword
=
"jl[mar
]"
;
const
char
*
jmp
pc_main_memory_keyword
=
"jmp[pc
]"
;
const
char
*
jmp
_mar_keyword
=
"jmp[mar
]"
;
const
char
*
mar_main_memory_keyword
=
"[mar]"
;
const
char
*
mar_main_memory_keyword
=
"[mar]"
;
const
char
*
mar_extern_IO_keyword
=
"<mar>"
;
const
char
*
mar_extern_IO_keyword
=
"<mar>"
;
const
char
*
int_number_keyword
=
"inta"
;
const
char
*
int_number_keyword
=
"inta"
;
...
@@ -168,14 +168,14 @@ struct PATH_INSTRUCTION_OPERAND_ENTRY path_operand_table[] =
...
@@ -168,14 +168,14 @@ struct PATH_INSTRUCTION_OPERAND_ENTRY path_operand_table[] =
,{
&
pc_main_memory_keyword
,
&
a_register_keyword
,
0xffe147ff
}
// path [pc], a
,{
&
pc_main_memory_keyword
,
&
a_register_keyword
,
0xffe147ff
}
// path [pc], a
,{
&
pc_main_memory_keyword
,
&
w_register_keyword
,
0xffe347ff
}
// path [pc], w
,{
&
pc_main_memory_keyword
,
&
w_register_keyword
,
0xffe347ff
}
// path [pc], w
,{
&
jz
pc_main_memory_keyword
,
&
pc_register_keyword
,
0xff1f46fd
}
// path jz[pc
], pc
,{
&
jz
_mar_keyword
,
&
pc_register_keyword
,
0xff1f86fd
}
// path jz[mar
], pc
,{
&
jnz
pc_main_memory_keyword
,
&
pc_register_keyword
,
0xff3f46fd
}
// path jnz[pc
], pc
,{
&
jnz
_mar_keyword
,
&
pc_register_keyword
,
0xff3f86fd
}
// path jnz[mar
], pc
,{
&
jc
pc_main_memory_keyword
,
&
pc_register_keyword
,
0xff5f46fd
}
// path jc[pc
], pc
,{
&
jc
_mar_keyword
,
&
pc_register_keyword
,
0xff5f86fd
}
// path jc[mar
], pc
,{
&
ja
pc_main_memory_keyword
,
&
pc_register_keyword
,
0xff7f46fd
}
// path ja[pc
], pc
,{
&
ja
_mar_keyword
,
&
pc_register_keyword
,
0xff7f86fd
}
// path ja[mar
], pc
,{
&
jb
pc_main_memory_keyword
,
&
pc_register_keyword
,
0xff9f46fd
}
// path jb[pc
], pc
,{
&
jb
_mar_keyword
,
&
pc_register_keyword
,
0xff9f86fd
}
// path jb[mar
], pc
,{
&
jg
pc_main_memory_keyword
,
&
pc_register_keyword
,
0xffbf46fd
}
// path jg[pc
], pc
,{
&
jg
_mar_keyword
,
&
pc_register_keyword
,
0xffbf86fd
}
// path jg[mar
], pc
,{
&
jl
pc_main_memory_keyword
,
&
pc_register_keyword
,
0xffdf46fd
}
// path jl[pc
], pc
,{
&
jl
_mar_keyword
,
&
pc_register_keyword
,
0xffdf86fd
}
// path jl[mar
], pc
,{
&
jmp
pc_main_memory_keyword
,
&
pc_register_keyword
,
0xffff46fd
}
// path jmp[pc
], pc
,{
&
jmp
_mar_keyword
,
&
pc_register_keyword
,
0xffff86fd
}
// path jmp[mar
], pc
,{
&
rs_register_keyword
,
&
rd_register_keyword
,
0xffe9c1ff
}
// path rs, rd
,{
&
rs_register_keyword
,
&
rd_register_keyword
,
0xffe9c1ff
}
// path rs, rd
,{
&
rs_register_keyword
,
&
w_register_keyword
,
0xffe3c1ff
}
// path rs, w
,{
&
rs_register_keyword
,
&
w_register_keyword
,
0xffe3c1ff
}
// path rs, w
...
@@ -194,6 +194,7 @@ struct PATH_INSTRUCTION_OPERAND_ENTRY path_operand_table[] =
...
@@ -194,6 +194,7 @@ struct PATH_INSTRUCTION_OPERAND_ENTRY path_operand_table[] =
,{
&
rd_register_keyword
,
&
a_register_keyword
,
0xffe1c1bf
}
// path rd, a
,{
&
rd_register_keyword
,
&
a_register_keyword
,
0xffe1c1bf
}
// path rd, a
,{
&
rd_register_keyword
,
&
w_register_keyword
,
0xffe3c1bf
}
// path rd, w
,{
&
rd_register_keyword
,
&
w_register_keyword
,
0xffe3c1bf
}
// path rd, w
,{
&
pc_register_keyword
,
&
a_register_keyword
,
0xffe1c5ff
}
// path pc, a
,{
&
pc_register_keyword
,
&
a_register_keyword
,
0xffe1c5ff
}
// path pc, a
,{
&
pc_register_keyword
,
&
mar_register_keyword
,
0xffe5c5ff
}
// path pc, mar
,{
&
es_register_keyword
,
&
a_register_keyword
,
0xffe1c1ff
}
// path es, a
,{
&
es_register_keyword
,
&
a_register_keyword
,
0xffe1c1ff
}
// path es, a
,{
&
sp_register_keyword
,
&
a_register_keyword
,
0xffe1c1bf
}
// path sp, a
,{
&
sp_register_keyword
,
&
a_register_keyword
,
0xffe1c1bf
}
// path sp, a
,{
&
sp_register_keyword
,
&
w_register_keyword
,
0xffe3c1bf
}
// path sp, w
,{
&
sp_register_keyword
,
&
w_register_keyword
,
0xffe3c1bf
}
// path sp, w
...
...
microasm.exe
浏览文件 @
8322ec68
没有这种文件类型的预览
rom.dbg
浏览文件 @
8322ec68
没有这种文件类型的预览
rom.lst
浏览文件 @
8322ec68
差异被折叠。
点击展开。
rom.masm
浏览文件 @
8322ec68
...
@@ -612,70 +612,110 @@ reset upc
...
@@ -612,70 +612,110 @@ reset upc
dup 1, null
dup 1, null
;=====================================================================
;80. ja symbol
;80. ja symbol
check irq
check irq
inc pc
inc pc
path ja[pc], pc
path pc, mar ;将PC值传送到地址寄存器mar中
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path ja[mar], pc
reset upc
reset upc
dup
4
, null
dup
3
, null
;=====================================================================
;81. jb symbol
;81. jb symbol
check irq
check irq
inc pc
inc pc
path jb[pc], pc
path pc, mar
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path jb[mar], pc
reset upc
reset upc
dup
4
, null
dup
3
, null
;=====================================================================
;82. jg symbol
;82. jg symbol
check irq
check irq
inc pc
inc pc
path jg[pc], pc
path pc, mar
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path jg[mar], pc
reset upc
reset upc
dup
4
, null
dup
3
, null
;=====================================================================
;83. jl symbol
;83. jl symbol
check irq
check irq
inc pc
inc pc
path jl[pc], pc
path pc, mar
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path jl[mar], pc
reset upc
reset upc
dup
4
, null
dup
3
, null
;=====================================================================
;84. je symbol
;84. je symbol
check irq
check irq
inc pc
inc pc
path jz[pc], pc
path pc, mar
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path jz[mar], pc
reset upc
reset upc
dup
4
, null
dup
3
, null
;=====================================================================
;85. jne symbol
;85. jne symbol
check irq
check irq
inc pc
inc pc
path jnz[pc], pc
path pc, mar
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path jnz[mar], pc
reset upc
reset upc
dup
4
, null
dup
3
, null
;=====================================================================
;86. jc symbol
;86. jc symbol
check irq
check irq
inc pc
inc pc
path jc[pc], pc
path pc, mar
;若转移条件成立,则将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中
;若转移条件不成立,则PC加1,指向下一条指令
path jc[mar], pc
reset upc
reset upc
dup
4
, null
dup
3
, null
;=====================================================================
;87. jmp symbol
;87. jmp symbol
check irq
check irq
inc pc
inc pc
path jmp[pc], pc
path pc, mar
;将地址寄存器mar指定存储单元的值作为跳转地址加载到pc中,无条件跳转
path jmp[mar], pc
reset upc
reset upc
dup
4
, null
dup
3
, null
;=====================================================================
;88. loop symbol 将cl作为目的操作数减1,改变零标志,若zf = 1,则跳转
;88. loop symbol 将cl作为目的操作数减1,改变零标志,若zf = 1,则跳转
inc pc
inc pc
path [pc], ir
path [pc], ir
...
@@ -683,11 +723,12 @@ path rd, a
...
@@ -683,11 +723,12 @@ path rd, a
path alu_dec, rd
path alu_dec, rd
path al_flag, flag
path al_flag, flag
inc pc
inc pc
path jmp[pc], pc
path pc, mar
path jmp[mar], pc
check irq
check irq
reset upc
reset upc
dup
7
, null
dup
6
, null
;====================================================================================================
;====================================================================================================
...
...
rom.rxm
浏览文件 @
8322ec68
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG߿GGGGGGGGGGGGGGFFFFFF?F_FGFG߿GGGGG?G?GGGG߿G߿߿GG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG߿GGGGGGGGGGGGGG?_GG߿GGGGG?G?GGGG߿G߿߿GG
\ No newline at end of file
\ No newline at end of file
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论