|
摘取其中的一部分程序如下:<br /><br /> XDEF Entry ; export 'Entry' symbol<br /> ABSENTRY Entry ; for absolute assembly: mark this as application entry point<br /><br />; include derivative specific macros<br /> INCLUDE 'qy4_registers.inc'<br /><br /><br /><br />ORG RAMStart ; Insert here your data definition<br />;---------------Flag Register Block<br />FLAG1: DS.B 1<br /><br /><br /> ORG ROMStart<br />Entry:<br /> LDHX #RAMEnd+1 ; initialize the stack pointer<br /> TXS<br />; RSP<br />;-----------------------------------<br /> BCLR 0,FLAG1<br />;----------------------------------- <br /> <br />; JSR InstructionStudy<br /> <br /> JMP $<br /><br />為什麼以上程序在軟件調試時,在執行到<br />BCLR 0,FLAG1<br />這一行指令時,出現如下錯誤提示:<br /><br />Error: At location 0080 - <br />Error: Attempt to use invalid or uninitialized memory<br />STEPPED<br /><br />我所選用的MCU型號是:M68HC908QY4,$0080明明是RAM的超始地址,怎麼會:"invalid"<br /><br />如果將程序改為如下,則不再提示錯誤:<br /> ORG ROMStart<br />Entry:<br /> LDHX #RAMEnd+1 ; initialize the stack pointer<br /> TXS<br />; RSP<br />;-----------------------------------<br /> CLR FLAG1<br /> BSET 0,FLAG1<br />;----------------------------------- <br /> <br /> JMP $<br /><br />請問為什麼? |
|