单片机汇编语言指令中中断返回指令RET和RETI有什么不同?

单片机汇编语言指令中中断返回指令RET和RETI有什么不同?,第1张

RET是普通程序的返回指令,RET是普通子程序的最后1条指令,它使程序从子程序转到调用该子程序指令LCALL/ACALL的下1条指令执行。

RETI是中断服务子程序的返回指令,RETI是中断服务子程序的最后1条指令,它使程序从中断服务子程序转到中断点继续运行。

RETI指令除了执行返回功能外,还清除内部相应的中断状态寄存器(该状态寄存器由CPU响应中断时置位,宣告CPU当前正在执行中断服务程序),因此中断服务子程序必须用RETI结束,

CPU执行RETI指令后,必须至少再执行一条其它指令才能响应新的中断。

指令是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结束程序。

中断处理完后cpu返回主程序由IRET指令代码实现。中断指令调用n号中断处理程序,在中断处理程序中,用中断返回指令IRET指令使CPU返回主程序断点继续执行。中断指令(INTn)和调用程序指令很相似,均转入内存中其它程序段执行,执行完后再转回。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存