资料
新概念英语资料下载李居明饿命改运学pdf成本会计期末资料社会工作导论资料工程结算所需资料清单
Keil C 汇编措辞 调试进门 博客写法
Keil,C,入门调试实例(黄在Keil,uVision3下编写):
作业:将A中的
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
送到片内30H单元中,然后A和B中的内容相加,和送到R0中,同时送到片外RAM的200H单元中。
1、先file,new,建asm文件demo.asm
MOV,30H,A
ADD,A,B
MOV,R0,A
MOV,DPTR,#0200H
MOVX,@DPTR,A,
END
为了调试时看数据,预先在A中赋值为45H,在B中赋值为37H,所以程序前加
mov,,a,,#45h
mov,,b,,#37h,,,,,,(ASM不分大小写,而C分大小写),同时, 为了在最后不至于出现不想看到的框,可以在END前加两三个NOP指令,程序变为:
,,,,,mov,,a,,#45h
mov,,b,,#37h,
MOV,30H,A
ADD,A,B
MOV,R0,A
MOV,DPTR,#0200H
MOVX,@DPTR,A,
NOP
NOP,,;,因为NOP是仅耗时但什么也不做的空指令,对本程序无影响,也可以不写。
NOP
END
2、建新工程,Project,new,project,,选Ateml,AT89C51,,导入文件demo.asm。
,,,注意,对初学者,一个工程里只能有本程序demo.asm,无关的程序要删除,新试验一个程序最好重新建工程,以保证一个工程里只有你要试验的那一个程序。
3、可见程序
,,,,,,
4、编译通过后,点debug下的start/stop开始调试,,step,和step,over都是单步调试,step是遇到子程序或中断也要进入进行单步调试,step,over是遇到子程序或中断当一句一次执行完。本程序物子程序,二者是一样的。我们执行一句得到:
可见A中的值为45H,B中还为0,是将要执行的语句,再执行一步,可见:
B中数据为37H
5、点view,,memory,windows,再输入D:0回车,得到:
可见30H处为00(内存默认是一般为0),再执行一步得到:
,可见30H处为45H
再执行一步,得到:
A中的值为(A)+(B)=45H+37H=7CH,并且可见DPTR中为0000 再执行一步,得到:
可见R0中为7CH。
同时可见片内地址00H处为7CH,因为(在缺省时)R0就是片内地址00H。
再执行一步,得到:
可见DPTR中为0200H
再执行一步,并输入X:200H回车,得到:
可见片外RAM的200H单元处的值为7CH。
6、对片内片外RAM赋值,也可以不在程序前赋值,在程序调试前直接到地址处赋值。
如想对片外200H处赋值6EH,点view,,memory,windows,输入X:200H回车,得到:
直接双击X:200H处,输入6E即可得: