「标准库」

差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

兩邊的前次修訂版前次修改
下次修改
前次修改
wiki:自动化与科技指导:minecoprocessors:标准库 [2023/12/08 09:58] – [sleep] nikoqwwiki:自动化与科技指导:minecoprocessors:标准库 [2023/12/11 11:19] (目前版本) nikoqw
行 1: 行 1:
 ====== 「标准库」 ====== ====== 「标准库」 ======
 提供一些通用的功能,如延时等。 提供一些通用的功能,如延时等。
 +===== 约定 =====
 +  *  ''_start'' 函数应当永不返回。若 ''_start'' 函数返回,则行为未定义。
 +  * 传给函数的自变量应始终在定义域之内。若给定参数在函数定义域之外,则行为未定义。
 +
 ===== 代码 ===== ===== 代码 =====
 <code-splitter> <code-splitter>
 +;
 +; 在第一行写您程序的
 +; 名称。
 +
 ; 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 ba+CMP c0
 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
 +
 </code-splitter> </code-splitter>
  
行 72: 行 109:
 <wrap hi>**【参数】:**</wrap> <wrap hi>**【参数】:**</wrap>
  
-^ 传参方式        ^ 值类型  ^ 输出或输入   ^ 作用 / 说明       ^ +^ 传参方式        ^ 值类型  ^ 作用 / 说明       ^ 
-| 寄存器       | $n>0$         |     | 延时的 cycles 数目  | +| 寄存器       | $n>0$        | 延时的 cycles 数目 
- +==== pull_in_Rd ====
-<wrap hi>**【内部使用的寄存器】:**</wrap> +
- +
-^ 寄存器名  ^ 作用 / 说明       ^ +
-| b       | 延时计数 +
- +
-==== pull_in_Rd====+
 <wrap cjk-em>该函数为 Rd 函数。</wrap> <wrap cjk-em>该函数为 Rd 函数。</wrap>
  
行 91: 行 122:
 <wrap hi>**【参数】:**</wrap> <wrap hi>**【参数】:**</wrap>
  
-^ 传参方式        ^ 值类型  ^ 输出或输入         ^ 作用 / 说明       ^ +^ 传参方式        ^ 值类型 ^ 作用 / 说明       ^ 
-| 寄存器 c       | $[0, 3]$         |  I       | 红石输入口编号。 1 2 3 4 分别对应前后左右。  |+| 寄存器 c       | $[0, 3]$      | 红石输入口编号。   |
  
 <wrap hi>**【返回】:**</wrap> <wrap hi>**【返回】:**</wrap>
行 98: 行 129:
 ^ 返回方式       ^ 作用 / 说明       ^ ^ 返回方式       ^ 作用 / 说明       ^
 | 寄存器 d       | 指定红石输入口得到的值  | | 寄存器 d       | 指定红石输入口得到的值  |
 +
 +==== out_h_for_wle ====
 +<wrap hi>**【作用】:**</wrap>
 +
 +在指定的红石输出口输出高电平指定时间。
 +
 +该函数为 ''MOV px, xx'' 与 ''CALL sleep'' 的合体。
 +
 +<wrap hi>**【参数】:**</wrap>
 +
 +^ 传参方式        ^ 值类型 ^ 作用 / 说明       ^
 +| 寄存器 d       | $[0, 3]$      | 红石输出口编号。  |
 +| 寄存器 c       | $n>0$       | 输出多长时间。  |
wiki/自动化与科技指导/minecoprocessors/标准库.1702000736.txt.gz · 上一次變更: 2023/12/08 09:58 由 nikoqw
GNU Free Documentation License 1.3 若無特別註明,本 wiki 上的內容都是採用以下授權方式: GNU Free Documentation License 1.3