解释一下下面这段程序,越具体越好……谢谢啦!DLY PROC NEAR PUSH CX PUSH DX MOV DX,10000DLY PROC NEAR PUSH CXPUSH DXMOV DX,10000DL1:MOV CX,6801DL2:LOOP DL2DEC DXJNZ DL1POP DXPOP CXRETDLY ENDP

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 10:36:43

解释一下下面这段程序,越具体越好……谢谢啦!DLY PROC NEAR PUSH CX PUSH DX MOV DX,10000DLY PROC NEAR PUSH CXPUSH DXMOV DX,10000DL1:MOV CX,6801DL2:LOOP DL2DEC DXJNZ DL1POP DXPOP CXRETDLY ENDP
解释一下下面这段程序,越具体越好……谢谢啦!DLY PROC NEAR PUSH CX PUSH DX MOV DX,10000
DLY PROC NEAR
PUSH CX
PUSH DX
MOV DX,10000
DL1:
MOV CX,6801
DL2:
LOOP DL2
DEC DX
JNZ DL1
POP DX
POP CX
RET
DLY ENDP

解释一下下面这段程序,越具体越好……谢谢啦!DLY PROC NEAR PUSH CX PUSH DX MOV DX,10000DLY PROC NEAR PUSH CXPUSH DXMOV DX,10000DL1:MOV CX,6801DL2:LOOP DL2DEC DXJNZ DL1POP DXPOP CXRETDLY ENDP
DLY PROC NEAR ;定义函数
PUSH CX ;cx入栈保存
PUSH DX ;dx入栈保存
MOV DX,10000 ;dx装入10000,也就是dx=10000
DL1:;标号,也就是一个记号
MOV CX,6801 ;将cx中存入6801
DL2:;标号
LOOP DL2 ;执行这条语句的时候,程序会现判断cx的值是不是0,如果是0就继续向下执行.如果不是0就将cx的值减一,然后跳转到DL2这个位置执行.然后一直循环,知道cx的值减到0为止.我们看到cx的初始值是6801.也就是要循环6801次.
DEC DX ;将dx的值减一
JNZ DL1 ;如果dx的值减一后不是0,就跳到DL1处执行,如果是0,就继续向下执行
POP DX ;将之前保存的dx值还原到dx
POP CX ;将之前保存的cx值还原到cx
RET ;返回主程序
DLY ENDP ;函数结束
说白了这个就是一个延时程序,它就是让cpu空转一段时间.