中断服务程序的最后一条指令是RET或RETI对吗?

中断服务程序的最后一条指令是RET或RETI对吗?,第1张

指令是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时,将阻止除高优先级以外的一切中断请求。由此可见,若要响应同级甚至是低级中断请求,必须使得该“优先级生效”触发器清零。但该触发器又是不可寻址皮羡的,所以无法用软件直接清零。”


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12471768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存