主题:5秒倒计时
我的机器主频是2.11GHZ要求输出12345 每秒输出一个 我已经编好程序,如果按照主频来算输出时间,编写延时程序,输出很快!高手告诉我下怎么算的
我的计算方法是:2.11-E08(10的8次方)/65535(FFFFH)就是第二个循环的次数
第一个循环的次数是FFFFH
我现在编的程序的第二重循环是试出来的
程序如下:
DATA SEGMENT
INBUF DB 5
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV CX,5
MOV SI,0
AGAIN1:MOV AH,1
INT 21H
MOV INBUF[SI],AL;将输入字符拷贝到内存缓冲区INBUF
INC SI
LOOP AGAIN1
MOV DL,0DH;输出回车
MOV AH,2
INT 21H
MOV DL,0AH;输出换行
MOV AH,2
INT 21H
MOV DI,5;设置循环次数,共5次(输出5个字符)
MOV SI,0
AGAIN2:MOV DL,INBUF[SI]
MOV AH,2
INT 21H
INC SI
MOV BX,0FFFFH;设置外循环次数65535次
FOR1: MOV CX,2FFFH;设置内循环次数11520次
FOR2: LOOP FOR2
DEC BX
JNZ FOR1
DEC DI
CMP DI,0
JG AGAIN2
MOV AH,4CH
INT 21H
CODE ENDS
END START
我的计算方法是:2.11-E08(10的8次方)/65535(FFFFH)就是第二个循环的次数
第一个循环的次数是FFFFH
我现在编的程序的第二重循环是试出来的
程序如下:
DATA SEGMENT
INBUF DB 5
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV CX,5
MOV SI,0
AGAIN1:MOV AH,1
INT 21H
MOV INBUF[SI],AL;将输入字符拷贝到内存缓冲区INBUF
INC SI
LOOP AGAIN1
MOV DL,0DH;输出回车
MOV AH,2
INT 21H
MOV DL,0AH;输出换行
MOV AH,2
INT 21H
MOV DI,5;设置循环次数,共5次(输出5个字符)
MOV SI,0
AGAIN2:MOV DL,INBUF[SI]
MOV AH,2
INT 21H
INC SI
MOV BX,0FFFFH;设置外循环次数65535次
FOR1: MOV CX,2FFFH;设置内循环次数11520次
FOR2: LOOP FOR2
DEC BX
JNZ FOR1
DEC DI
CMP DI,0
JG AGAIN2
MOV AH,4CH
INT 21H
CODE ENDS
END START