SN8P2501A
8-位 微观的-控制
sonix 技术 co., 有限公司
页 11
初步的 版本 0.2
用户 重置 vector 地址 (0000h)
一个 一个-文字 vector 地址 范围 是 使用 至 execute 系统重置. 之后 电源 在 重置 或者 看门狗 计时器 overflow
重置, 然后 这 碎片 将 重新开始 这 程序 从 地址 0000h 和 所有 系统 寄存器 将 是 设置 作 default 值.
这 下列的 例子 显示 这 方法 至 define 这 重置 vector 在 这 程序 记忆.
程序编制 tip: defining 重置 vector
碎片 sn8p2501a
org 0 ; 0000h
JMP 开始 ; jump 至 用户 程序 地址.
. ; 0004h ~ 0007h 是 保留
org 10h
开始: ; 0010h, 这 head 的 用户 程序.
. ; 用户 程序
.
.
.
ENDP ; 终止 的 程序
中断 vector 地址 (0008h)
一个 1-文字 vector 地址 范围 是 使用 至 execute 中断 要求. 如果 任何 中断 service executes, 这 程序
计数器 (pc) 值 是 贮存 在 堆栈 缓存区 和 jump 至0008h 的 程序 记忆 至 execute 这 vectored 中断.
用户 有 至 定义 这 interrupt vector. 这 下列的 例子 显示 这 way 至 定义 这 中断 vector 在 这
程序 记忆.
程序编制 tip: defining 中断 vector (例子 1)
碎片 sn8p2501a
.数据 accbuf
PFLAGBUF
.代号
org 0 ; 0000h
JMP 开始 ; jump 至 用户 程序 地址.
. ; 0004h ~ 0007h 是 保留
org 8
; 中断 维护 routine
B0XCH 一个, accbuf ; b0xch doesn’t 改变 c, z 标记
b0mov 一个, pflag
B0MOV pflagbuf, 一个 ; 保存 pflag 寄存器 在 一个 缓存区
.
.
b0mov 一个, pflagbuf
B0MOV pflag, 一个 ; restore pflag 寄存器 从 缓存区
B0XCH 一个, accbuf ; b0xch doesn’t 改变 c, z 标记
RETI ; 终止 的 中断 维护 routine
开始: ; 这 head 的 用户 程序.
. ; 用户 程序
.
JMP 开始 ; 终止 的 用户 程序
ENDP
; 终止 的 程序