标题:
再次问X寄存器的问题,上次的还没解决
[打印本页]
作者:
cArlIcon
时间:
2007-4-2 09:54
标题:
再次问X寄存器的问题,上次的还没解决
STAA ,X在C中插入汇编编译不能通过
STAA A,X能通过编译
但是这样达不到STAA,X的效果了,即X指向的内存单元的值没被改变,而是X中的地址加A中的偏移量构成新的地址,并在这个新的地址存放A中偏移量的值,如果我要实现STAA ,X的功能应该怎么做?
作者:
strongchen
时间:
2007-4-2 09:59
做一个最简单的project贴出来看看。
作者:
cArlIcon
时间:
2007-4-2 10:09
#include
/* common defines and macros */
#include
/* derivative information */
#include "main_asm.h" /* interface to the assembly module */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
void main(void) {
/* put your own code here */
EnableInterrupts;
asm_main(); /* call the assembly function */
for(;;) {
asm{
LDAA #0x02;
STAA A,X;
CPX #$050C;
BNE ad;
LDX #$0502;
ad:INX
}} /* wait forever */
}
以下是asm_main中的内容
MY_EXTENDED_RAM: SECTION
ORG $0502
; Insert here your data definition. For demonstration, temp_byte is used.
TT ds.b 10
; code section
MyCode: SECTION
; this assembly routine is called by the C/C++ application
asm_main:
CLI ; enable interrupts
MOVB #1,TT; just some demonstration code
LDAA #0
TFR A,X
LEAX TT,X
LDAA #$f8;
STAA ,X
NOP ; Insert here you own code
RTC ; return to caller
作者:
cArlIcon
时间:
2007-4-2 10:11
可以看到STAA,X和STAA A,X的不同效果
作者:
strongchen
时间:
2007-4-2 12:12
用“STAA 0,X”即可。这可能是编译器的一个小BUG。
作者:
cArlIcon
时间:
2007-4-2 22:19
知道了,谢谢
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0