差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版前次修改 下次修改 | 前次修改 | ||
| wiki:自动化与科技指导:minecoprocessors:编程规范 [2023/12/08 15:46] – [编程规范] nikoqw | wiki:自动化与科技指导:minecoprocessors:编程规范 [2023/12/08 16:04] (目前版本) – [CDecl] nikoqw | ||
|---|---|---|---|
| 行 4: | 行 4: | ||
| <wrap cjk-em> | <wrap cjk-em> | ||
| - | <wrap cjk-em> | + | <wrap cjk-em> |
| ===== 用户程序约定 ===== | ===== 用户程序约定 ===== | ||
| 行 17: | 行 17: | ||
| </ | </ | ||
| ==== 标签 ==== | ==== 标签 ==== | ||
| - | 所有标签使用下划线分词。除[[# | + | 所有标签使用下划线分词。除 [[#Calling convention|Calling convention]] 所规定的特殊前后缀外,一律使用小写字母。 |
| <code ASM> | <code ASM> | ||
| nimshab_miga: | nimshab_miga: | ||
| 行 181: | 行 181: | ||
| 使用寄存器传参,没有返回值。 | 使用寄存器传参,没有返回值。 | ||
| - | 采用 StdCall 的函数必须使用 d c b a 的顺序用寄存器保存参数。 | + | 采用 StdCall 的函数最好使用 d c b a 的顺序用寄存器保存参数。 |
| 采用 StdCall 的函数不加任何后缀。 | 采用 StdCall 的函数不加任何后缀。 | ||
| 行 210: | 行 210: | ||
| 无论调用方使用是否使用了被调用函数内部使用的寄存器,调用方在 CALL 函数前都必须将< | 无论调用方使用是否使用了被调用函数内部使用的寄存器,调用方在 CALL 函数前都必须将< | ||
| + | |||
| + | 被调用的函数在退出前不复原自身使用的寄存器的状态。 | ||
| ==== CDecl ==== | ==== CDecl ==== | ||
| - | “C Declaration”,C 语言的调用约定。本调用约定是为了应对数量较多的参数。 | + | “C declaration”,C 语言的调用约定。本调用约定是为了应对数量较多的参数。 |
| 使用栈传参,使用寄存器返回值。 | 使用栈传参,使用寄存器返回值。 | ||