Il codice (non ottimizzato ... a quello ci pensi tu ) e'
__asm
{
LEA ESI,Data
XOR AH,AH
MOV AL,[ESI]
SUB AL,48
MOV DX,10
MUL DX
MOV CL,[ESI+1]
SUB CL,48
ADD AL,CL
MOV giorno,AX
ADD ESI,3
XOR AH,AH
MOV AL,[ESI]
SUB AL,48
MOV DX,10
MUL DX
MOV CL,[ESI+1]
SUB CL,48
ADD AL,CL
MOV mese,AX
ADD ESI,3
XOR AH,AH
MOV AL,[ESI]
SUB AL,48
MOV DX,1000
MUL DX
MOV BX,AX
XOR AH,AH
MOV AL,[ESI+1]
SUB AL,48
MOV DX,100
MUL DX
ADD BX,AX
XOR AH,AH
MOV AL,[ESI+2]
SUB AL,48
MOV DX,10
MUL DX
ADD BX,AX
XOR AH,AH
MOV AL,[ESI+3]
SUB AL,48
ADD BX,AX
MOV anno,BX
ADD ESI,5
XOR AH,AH
MOV AL,[ESI]
SUB AL,48
MOV DX,10
MUL DX
MOV CL,[ESI+1]
SUB CL,48
ADD AL,CL
MOV ora,AX
ADD ESI,3
XOR AH,AH
MOV AL,[ESI]
SUB AL,48
MOV DX,10
MUL DX
MOV CL,[ESI+1]
SUB CL,48
ADD AL,CL
MOV minuto,AX
ADD ESI,3
XOR AH,AH
MOV AL,[ESI]
SUB AL,48
MOV DX,10
MUL DX
MOV CL,[ESI+1]
SUB CL,48
ADD AL,CL
MOV secondo,AX
}
Il codice puo' essere molto piu' corto, se utilizzi una chiamata a routine ...
Sottrarre 48 serve a trasformare una cifra (da 0 a 9) espressa in codice ASCII, nel corrispondente valore binario ...
P.S. Sono d'accordo con Shutdown ... le provocazioni non rendono ...