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

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

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

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

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

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

中断服务程序的最后一条陪键指令是RET。中断服务程序的最后一条指令必须是:RETI,即中断返回指令,只用纯雀在中断服务程序末尾。中断程序完成后,一定要做乱早执行一条RETI指令,执行这条指令后,CPU将会把堆栈中保存着的地址取出,送回PC,那么程序就会从主程序的中断处继续往下执行了。

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存