差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版前次修改 下次修改 | 前次修改 | ||
| wiki:自动化与科技指导:minecoprocessors:标准库 [2023/12/08 09:58] – [sleep] nikoqw | wiki:自动化与科技指导:minecoprocessors:标准库 [2023/12/11 11:19] (目前版本) – nikoqw | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== 「标准库」 ====== | ====== 「标准库」 ====== | ||
| 提供一些通用的功能,如延时等。 | 提供一些通用的功能,如延时等。 | ||
| + | ===== 约定 ===== | ||
| + | * '' | ||
| + | * 传给函数的自变量应始终在定义域之内。若给定参数在函数定义域之外,则行为未定义。 | ||
| + | |||
| ===== 代码 ===== | ===== 代码 ===== | ||
| < | < | ||
| + | ; | ||
| + | ; 在第一行写您程序的 | ||
| + | ; 名称。 | ||
| + | |||
| ; NPCCRAFT | ; NPCCRAFT | ||
| ; 微处理器「标准库」 | ; 微处理器「标准库」 | ||
| - | ; 请赴 WIKI 「自动化 | + | ; 请赴 WIKI 「自动化与科技指 |
| - | ; 与科技指导:min | + | ; 导:minecoprocesso |
| - | ; ecoprocessors | + | ; -rs:标准库」查看用法。 |
| - | ; :标准库」查看用法。 | + | |
| JMP _start | JMP _start | ||
| - | ; 【FUNC】==== | + | ; 【FUNC】c==== |
| sleep: | sleep: | ||
| - | ; Init reg | ||
| - | PUSH b | ||
| - | MOV b, 0 | ||
| - | |||
| ; Main logic | ; Main logic | ||
| sleep__loop: | sleep__loop: | ||
| - | ADD b, 1 | + | DEC c |
| - | CMP b, a | + | CMP c, 0 |
| JNZ sleep__loop | JNZ sleep__loop | ||
| - | |||
| - | ; Exit | ||
| - | POP b | ||
| RET | RET | ||
| - | ; 【FUNC】==== | + | ; 【FUNC】c,,d==== |
| pull_in_Rd: | pull_in_Rd: | ||
| CMP c, 0 | CMP c, 0 | ||
| 行 62: | 行 62: | ||
| JZ pi__pr | JZ pi__pr | ||
| RET | 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 | ||
| + | |||
| </ | </ | ||
| 行 72: | 行 109: | ||
| <wrap hi> | <wrap hi> | ||
| - | ^ 传参方式 | + | ^ 传参方式 |
| - | | 寄存器 | + | | 寄存器 |
| - | + | ==== pull_in_Rd ==== | |
| - | <wrap hi> | + | |
| - | + | ||
| - | ^ 寄存器名 | + | |
| - | | b | 延时计数 | + | |
| - | + | ||
| - | ==== pull_in_Rd==== | + | |
| <wrap cjk-em> | <wrap cjk-em> | ||
| 行 91: | 行 122: | ||
| <wrap hi> | <wrap hi> | ||
| - | ^ 传参方式 | + | ^ 传参方式 |
| - | | 寄存器 c | $[0, 3]$ | I | 红石输入口编号。 | + | | 寄存器 c | $[0, 3]$ | 红石输入口编号。 |
| <wrap hi> | <wrap hi> | ||
| 行 98: | 行 129: | ||
| ^ 返回方式 | ^ 返回方式 | ||
| | 寄存器 d | 指定红石输入口得到的值 | | 寄存器 d | 指定红石输入口得到的值 | ||
| + | |||
| + | ==== out_h_for_wle ==== | ||
| + | <wrap hi> | ||
| + | |||
| + | 在指定的红石输出口输出高电平指定时间。 | ||
| + | |||
| + | 该函数为 '' | ||
| + | |||
| + | <wrap hi> | ||
| + | |||
| + | ^ 传参方式 | ||
| + | | 寄存器 d | $[0, 3]$ | 红石输出口编号。 | ||
| + | | 寄存器 c | $n> | ||