1. 嵌入汇编语言的非主函数必须放在同主函数不同的文件中。放在同一文件中时,会在程序初始化时产生不能跳转至主函数的错误。
2. 编程中,间接寻址要使用DPTR、PC、R0、R1 寄存器,写入数据时亦同,且不能写入立即数,而应用寄存器,如A。例子如下:
MOV R1, SP
MOV A, @R1
MOV A, #03H
MOV @R1, A
3. 堆栈压入时指针为从低地址到高地址移动,先压入高地址,后压入低地址,堆栈指针所指为空。函数返回后,PC修改为所弹出的地址,由此可通过修改堆栈中的地址,而达成修改函数返回后的运行位置。
4.关于MOVX的使用。
对于DPTR在程序运行中不能直接赋值,由于没有其他寄存器同为16位,想直接赋值只能用直接数。但间接赋值很方便,把寄存器内容MOV给DPH和DPL赋值就可以了。
在MOVX中,P0与P2的值都只是在前半部分跳变一下,后面就不再输出地址了,若想将P2的数值锁存,另需他法。ALE的信号亦同,但需注意,其他命令也会导致ALE的跳变,故不可认为使用MOVX之后,所存器的输出端会一直为P0所输出的低地址。
em...这次就到这里,下次发现什么再续写。
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=2558718
[2005-08-11] 木兰湖旅游
[2005-08-11] 木兰湖旅游
[2005-08-11] 木兰湖旅游
[2005-08-11] 房贷:鸡肋还是肥肉?
[2005-08-11] File (de)compression
|
- 评论人:waterside
2005-09-12 12:17:46
|
|||
我们单片机的课是选修,我没选。但是前些日子在忙的电子竞赛要用,于是弄了弄51点片机的编程。 |
||||
|
- 评论人:大笨猪
2005-08-25 22:44:31
|
|||
学这个干吗?上学期刚学了这个。 |
||||