新学keil,程序是很简单的:
ORG 0000H
CLR C
MOV A, R4
ADD A, R6 ;R4+R6
MOV 22H, A
MOV A, R3
ADDC A, R5
MOV 21H, A
CLR A
ADDC A, #0
MOV 20H, A
END
编译没问题,但运行有错:“*** error 65: access violation at C:0x000E : no 'execute/read' permission”
我看0x000E是程序执行完后的一行,它上面一行是:“C:0x000C F520 MOV 0x20,A”
什么道理啊?我在网上搜来搜去还是搞不清楚。谢谢告诉我吧。
------解决方案--------------------
这是程序非法退出,所以不要让程序退出,在end前加一个死循环。jmp $;
------解决方案--------------------
如果是某种产品中用的程序,在RESET后程序必须进入一个无限循环.
如果只是要测试某程序段,那后面的就可以不管了.
------解决方案--------------------
------解决方案--------------------
end只是代表终止汇编,而单片机程序rom中接下来的缺省单元数据可能会被执行吧
------解决方案--------------------
单版机一般没有操作系统,所以程序是一直执行的,一般进入main就是个死循环,在循环里调用不同的函数做事,没电了就不运行了,有电一般一直运行下去。