足跡: 「标准库」

「标准库」

這是本文件的舊版!


「标准库」

提供一些通用的功能,如延时等。

约定

  • 若给定参数在函数定义域之外,则行为未定义。

代码

; NPCCRAFT
; 微处理器「标准库」
; 请赴 WIKI 「自动化
; 与科技指导:min
; ecoprocessors
; :标准库」查看用法。
JMP _start
 
; 【FUNC】====
sleep:
; Main logic
sleep__loop:
DEC d
CMP d, 0
JNZ sleep__loop
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 数目

pull_in_Rd

该函数为 Rd 函数。

【作用】:

拉取一个非零红石输入。

该函数会等待指定的红石输入口得到一个非零的值,然后返回得到的值。

【参数】:

传参方式 值类型 作用 / 说明
寄存器 c $[0, 3]$ 红石输入口编号。

【返回】:

返回方式 作用 / 说明
寄存器 d 指定红石输入口得到的值

out_h_for_while

【作用】:

在指定的红石输出口输出高电平指定时间。

该函数为 MOV px, xxCALL sleep 的合体。

【参数】:

传参方式 值类型 作用 / 说明
寄存器 c $[0, 3]$ 红石输出口编号。
寄存器 d $n>0$ 输出多长时间。
wiki/自动化与科技指导/minecoprocessors/标准库.1702002995.txt.gz · 上一次變更: 2023/12/08 10:36 由 nikoqw
GNU Free Documentation License 1.3 若無特別註明,本 wiki 上的內容都是採用以下授權方式: GNU Free Documentation License 1.3