這是本文件的舊版!
「标准库」
提供一些通用的功能,如延时等。
约定
_start
函数应当永不返回。若_start
函数返回,则行为未定义。- 传给函数的自变量应始终在定义域之内。若给定参数在函数定义域之外,则行为未定义。
代码
; NPCCRAFT ; 微处理器「标准库」 ; 请赴 WIKI 「自动化与科技指 ; 导:minecoprocesso ; -rs:标准库」查看用法。 JMP _start ; 【FUNC】c==== sleep: ; Main logic sleep__loop: DEC c CMP c, 0 JNZ sleep__loop RET ; 【FUNC】c,,d==== 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】dc==== out_h_for_wle: CMP d, 0 JZ ohfw__pf CMP d, 1 JZ ohfw__pb CMP d, 2 JZ ohfw__pl
CMP d, 3 JZ ohfw__pr HLT ; d 非法 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
【作用】:
延时。
【参数】:
传参方式 | 值类型 | 作用 / 说明 |
---|---|---|
寄存器 c | $n>0$ | 延时的 cycles 数目 |
pull_in_Rd
该函数为 Rd 函数。
【作用】:
拉取一个非零红石输入。
该函数会等待指定的红石输入口得到一个非零的值,然后返回得到的值。
【参数】:
传参方式 | 值类型 | 作用 / 说明 |
---|---|---|
寄存器 c | $[0, 3]$ | 红石输入口编号。 |
【返回】:
返回方式 | 作用 / 说明 |
---|---|
寄存器 d | 指定红石输入口得到的值 |
out_h_for_wle
【作用】:
在指定的红石输出口输出高电平指定时间。
该函数为 MOV px, xx
与 CALL sleep
的合体。
【参数】:
传参方式 | 值类型 | 作用 / 说明 |
---|---|---|
寄存器 d | $[0, 3]$ | 红石输出口编号。 |
寄存器 c | $n>0$ | 输出多长时间。 |