请高手解释这两了程序的意思详细点我知道它们是做什么的但不知道原理是什么第一个延迟的程序DELY PROCPUSH CXPUSH AXMOV AX,3FFFHX1:MOV CX,0FFFFHX2:DEC CXJNE X2DEC AXJNE X1POP AXPOP CXRETDELY ENDP 第二个转换的
来源:学生作业帮助网 编辑:作业帮 时间:2024/12/01 13:38:56
Eس
请高手解释这两了程序的意思详细点我知道它们是做什么的但不知道原理是什么第一个延迟的程序DELY PROCPUSH CXPUSH AXMOV AX,3FFFHX1:MOV CX,0FFFFHX2:DEC CXJNE X2DEC AXJNE X1POP AXPOP CXRETDELY ENDP 第二个转换的
请高手解释这两了程序的意思详细点我知道它们是做什么的但不知道原理是什么
第一个延迟的程序
DELY PROC
PUSH CX
PUSH AX
MOV AX,3FFFH
X1:MOV CX,0FFFFH
X2:DEC CX
JNE X2
DEC AX
JNE X1
POP AX
POP CX
RET
DELY ENDP
第二个转换的程序
ASCBCD MACRO REG
INC BX
INC BX
MOV REG,[BX]
MOV CL,4
SHL REG,CL
INC BX
MOV AL,[BX]
AND AL,0FH
OR REG,AL
ENDM
reg可以是一个寄存器里面的值随便多少,bx里有一个数据段变量的偏移地址,例如
BUF2 DB 10
DB 10 DUP(?)
形式.里面的的值是用户自己输进去的数据.
请高手解释这两了程序的意思详细点我知道它们是做什么的但不知道原理是什么第一个延迟的程序DELY PROCPUSH CXPUSH AXMOV AX,3FFFHX1:MOV CX,0FFFFHX2:DEC CXJNE X2DEC AXJNE X1POP AXPOP CXRETDELY ENDP 第二个转换的
1、两个循环实现延时:内嵌的小循环是0FFFFH次;大循环是3FFFH次.小循环完成一次,大循环计数器减一,即3FFFH个0FFFFH循环,大约10秒(每个循环10ns计算);
2、取得特定地址内存值,左移4位;再取得较高地址内存值,只留低位,和前面的值相与