進行嵌彙編時需要注意哪些問題?局部變數和總體變數如何調用?
在使用SN8 C 嵌入組合語言程式時,可直接使用__asm{},來進行,在調用全局可使用CNameToAsmLabel或用“_+總體變數名”來調用,局部變數只能用CNameToAsmLabel來調用,如以下常式:
int g_a;
int main(void)
{
int i1;
__asm
{
SelectBank(g_a);
MOV A,#0x01;
MOV CNameToAsmLabel(g_a),A; // g_a = 1;
MOV A,_g_a; // A=g_a ;
MOV CNameToAsmLabel(i1),A; // i1 = g_a;
}
}
int main(void)
{
int i1;
__asm
{
SelectBank(g_a);
MOV A,#0x01;
MOV CNameToAsmLabel(g_a),A; // g_a = 1;
MOV A,_g_a; // A=g_a ;
MOV CNameToAsmLabel(i1),A; // i1 = g_a;
}
}