欢迎来到天天文库
浏览记录
ID:14855169
大小:77.50 KB
页数:3页
时间:2018-07-30
《keil c 汇编语言 调试入门 博客写法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、KeilC入门调试实例(黄在KeiluVision3下编写):作业:将A中的内容送到片内30H单元中,然后A和B中的内容相加,和送到R0中,同时送到片外RAM的200H单元中。1、先fileànew建asm文件demo.asmMOV30H,AADDA,BMOVR0,AMOVDPTR,#0200HMOVX@DPTR,AEND为了调试时看数据,预先在A中赋值为45H,在B中赋值为37H,所以程序前加mova,#45hmovb,#37h(ASM不分大小写,而C分大小写),同时为了在最后不至于出现不想看到
2、的框,可以在END前加两三个NOP指令,程序变为:mova,#45hmovb,#37hMOV30H,AADDA,BMOVR0,AMOVDPTR,#0200HMOVX@DPTR,ANOPNOP;因为NOP是仅耗时但什么也不做的空指令,对本程序无影响,也可以不写。NOPEND2、建新工程,Projectànewproject,选AtemlàAT89C51,导入文件demo.asm。注意,对初学者,一个工程里只能有本程序demo.asm,无关的程序要删除,新试验一个程序最好重新建工程,以保证一个工程里只
3、有你要试验的那一个程序。3、可见程序4、编译通过后,点debug下的start/stop开始调试,step和stepover都是单步调试,step是遇到子程序或中断也要进入进行单步调试,stepover是遇到子程序或中断当一句一次执行完。本程序物子程序,二者是一样的。我们执行一句得到:可见A中的值为45H,B中还为0,是将要执行的语句,再执行一步,可见:B中数据为37H5、点viewàmemorywindows,再输入D:0回车,得到:可见30H处为00(内存默认是一般为0),再执行一步得到:,可
4、见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àmemorywindow
5、s,输入X:200H回车,得到:直接双击X:200H处,输入6E即可得:
此文档下载收益归作者所有