這是本文件的舊版!
「标准库」
提供一些通用的功能,如延时等。
代码
; NPCCRAFT ; 微处理器「标准库」 ; 请赴 WIKI 「自动化 ; 与科技指导:min ; ecoprocessors ; :标准库」查看用法。 JMP _start ; 【FUNC】==== sleep: ; Init reg PUSH b MOV b, 0 ; Main logic sleep__loop: ADD b, 1 CMP b, d JNZ sleep__loop
; Exit POP b RET ; 【FUNC】==== pull_in_Rd: CMP c, 0 JZ pi__pf CMP c, 1 JZ pi__pb CMP c, 2 JZ pi__pl CMP c, 3 JZ pi__pr HLT ; c 非法 pi__pf: MOV d, pf CMP d, 0x00 JZ pi__pf
RET pi__pb: MOV d, pb CMP d, 0x00 JZ pi__pb RET pi__pl: MOV d, pl CMP d, 0x00 JZ pi__pl RET pi__pr: MOV d, pr CMP d, 0x00 JZ pi__pr RET
; 【FUNC】==== out_h_for_while: CMP c, 0 JZ ohfw__pf CMP c, 1 JZ ohfw__pb CMP c, 2 JZ ohfw__pl CMP c, 3 JZ ohfw__pr HLT ; c 非法 ohfw__pf: MOV pf, 0xff CALL sleep MOV pf, 0x00 RET ohfw__pb: MOV pb, 0xff
CALL sleep MOV pf, 0x00 RET ohfw__pl: MOV pl, 0xff CALL sleep MOV pf, 0x00 RET ohfw__pr: MOV pr, 0xff CALL sleep MOV pf, 0x00 RET
手册
sleep
【作用】:
延时。
【参数】:
| 传参方式 | 值类型 | 作用 / 说明 |
|---|---|---|
| 寄存器 d | $n>0$ | 延时的 cycles 数目 |
【内部使用的寄存器】:
| 寄存器名 | 作用 / 说明 |
|---|---|
| b | 延时计数 |
pull_in_Rd
该函数为 Rd 函数。
【作用】:
拉取一个非零红石输入。
该函数会等待指定的红石输入口得到一个非零的值,然后返回得到的值。
【参数】:
| 传参方式 | 值类型 | 作用 / 说明 |
|---|---|---|
| 寄存器 c | $[0, 3]$ | 红石输入口编号。 |
【返回】:
| 返回方式 | 作用 / 说明 |
|---|---|
| 寄存器 d | 指定红石输入口得到的值 |
out_h_for_while
【作用】:
在指定的红石输出口输出高电平指定时间。
该函数为 MOV px, xx 与 CALL sleep 的合体。
【参数】:
| 传参方式 | 值类型 | 作用 / 说明 |
|---|---|---|
| 寄存器 c | $[0, 3]$ | 红石输出口编号。 |
| 寄存器 d | $n>0$ | 输出多长时间。 |