作者ggg12345 (ggg)
看板ASM
标题Re: [问题]有关ds pic的组合语言
时间Wed Aug 8 09:43:50 2007
※ 引述《ilike1128 (小白)》之铭言:
: 最近玩dspic看到里面的主体架构是C语言
: 那里面看到有一章说可以C语言跟组合语言可以混搭写在一起
: 不晓得有没有人可以找到类似的范例程式可以让我看看
: 例如说我本来撰写主程式的时候是C语言,不过遇到问题
: 去网路上找程式码结果发现只有组合语言,那我要怎麽样把它
: 弄出来呼叫 问题大概就是这样子
如果看到 ASM source program 模组想拿来呼叫, 通常有两种方
式(跟是否是组语是无关的).
一种是类似 插入 macro 再展开的用法, 把那个原始码抄来,
塞进要写的程式段, 但因为是组语, 其前後得有宣告提示
Compiler 这是一段组语指令. 通常 compiler 的後半动作就是
翻成组语, 因此这段塞入的组语语法规定必须与高阶语言编译
器要产生的组语用法相一致. 整个程式用到的变数也是相关联
的.
另一种用法是把那段组语变成 function / procedure 的形式,
确认其传入与结果带回会用到的参数与型态, 将组语模组改成
external module 分开编译, 做成独立的 library 与 include
档供高阶语言呼叫使用. 此时, 那个 assembler 工具, 组语语
法, 模组内 local 变数等可以是与 调用模组是完全独立无关
的, 这样建好後也可以再利用.
高阶语言程式里, 使用 macro expansion 概念的 in line ASM
码段, 通常有其特殊原因, 是一种綑绑的策略, 但也可能是求
快.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.1.146