
急,在线等!关于8086/8088汇编语言的延迟子程序
程序如下:DELAY:PUSHCX;延时子程序MOVCX,0100HDL1:PUSHAXPOPAXLOOPDL1POPCXRET为什么要用AX进栈出栈的操作来实现延时呢?...
程序如下:
DELAY: PUSH CX ;延时子程序
MOV CX, 0100H
DL1: PUSH AX
POP AX
LOOP DL1
POP CX
RET
为什么要用AX进栈出栈的操作来实现延时呢?用其他语句行吗?上面这个子程序实际上延迟了多长时间?老师说执行一个语句需要10毫秒。谢谢各位
其实我是想问为什么要用进栈出栈而不用加加减减?都使用来凑时间,用别的语句不行吗?或者用无操作的NOP不是更好么?又能占时间还不用占用CPU资源来处理操作~~
还有那本身循环的那条LOOP算不算循环的一部分?谢谢! 展开
DELAY: PUSH CX ;延时子程序
MOV CX, 0100H
DL1: PUSH AX
POP AX
LOOP DL1
POP CX
RET
为什么要用AX进栈出栈的操作来实现延时呢?用其他语句行吗?上面这个子程序实际上延迟了多长时间?老师说执行一个语句需要10毫秒。谢谢各位
其实我是想问为什么要用进栈出栈而不用加加减减?都使用来凑时间,用别的语句不行吗?或者用无操作的NOP不是更好么?又能占时间还不用占用CPU资源来处理操作~~
还有那本身循环的那条LOOP算不算循环的一部分?谢谢! 展开
1个回答
展开全部
延时时间和你设的频率有关,这里把PUSH AX POP AX循环100次,在乘以循环周期就是延时时间,至于用AX,BX无关紧要,只要最后恢复现场就好。
当然没问题,++——一样可以,NoP也没问题,LOOP也算时间
当然没问题,++——一样可以,NoP也没问题,LOOP也算时间
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询