指令是RET,RET是子程序返回指令,返回到调用该子程序处的下一条指令执行,返回的地址是从RET执行前的SP中最后两个值。
DELAY:MOV R7,#250 (6)250-->R7。
D1:MOV R6,#250 (7)250--->R6。
D2:DJNZ R6,D2 (8)(R6-1),等于零执行下一条,不等于零,则跳转到D2。颂宽银
DJNZ R7,D1 (9)(R7-1),等于零执行下一条,不等于零,则跳转到D1。
扩展资料:
RET分辨率增强技术的意思。有RET功能的打印机,可以野宴使打印出来的图形几乎没有锯齿,一台400×400DPI的激巧返光打印机,如果有RET功能,其打印效果可以与600×600DPI的激光打印机想媲美。
但是CS值不变,即CS一直指向code segment这个段(这个功能是通过assume cs:code实现的),程序转移到code segment段的开头的第一条语句,即mov ax,4c00h,然后调用int 21h结束程序。
RET用于一般程序的返回RETI用于中断函数的返回
以上是一般单片机书籍简绍的,然而在实际应用中,我发现,在程序返回中一样可以使用RETI,而在中断返回中却无法使用RET,究其原因是因为RETI比RET多做一件事情就是将“优先级生效”触发器清零
原来在8051构架中--中断系统中含有两个不可寻址的“优先级生效”触发器。一个用于指出CPU是否正在执行高优先级的中断服务程序,这个触发器为1时,系统将屏蔽所有的中断请求;另此型一个则指出CPU是否正在执行低优先级中断服务程序,森握猜该触发器为1时,将阻止除高优先级以外的一切中断请求。由此可见,若要响应同级甚至是低级中断请求,必须使得该“优先级生效”触发器清零。但该触发器又是不可寻址皮羡的,所以无法用软件直接清零。”
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)