主题:求助!!!!!那位汇编高手来指点!11
我是一个汇编初学者,这有一个汇编程序,(就是masm32中的一个调用的子程序),哪位高手能帮小弟注释一下,我有点看不懂!!多谢!!!不胜感激!!
dwtoa proc dwValue:DWORD, lpBuffer:DWORD
push ebx
push esi
push edi
mov eax, dwValue
mov edi, [lpBuffer]
or eax,eax
jnz sign
zero:
mov word ptr [edi],30h
jmp dw2asc
sign:
jns pos
mov byte ptr [edi],'-'
neg eax
inc edi
pos:
mov ecx,429496730
mov esi, edi
.while (eax > 0)
mov ebx,eax
mul ecx
mov eax,edx
lea edx,[edx*4+edx]
add edx,edx
sub ebx,edx
add bl,'0'
mov [edi],bl
inc edi
.endw
mov byte ptr [edi], 0 ; terminate the string
; We now have all the digits, but in reverse order.
.while (esi < edi)
dec edi
mov al, [esi]
mov ah, [edi]
mov [edi], al
mov [esi], ah
inc esi
.endw
dw2asc:
pop edi
pop esi
pop ebx
ret
dwtoa endp
end
[em1][em1]
dwtoa proc dwValue:DWORD, lpBuffer:DWORD
push ebx
push esi
push edi
mov eax, dwValue
mov edi, [lpBuffer]
or eax,eax
jnz sign
zero:
mov word ptr [edi],30h
jmp dw2asc
sign:
jns pos
mov byte ptr [edi],'-'
neg eax
inc edi
pos:
mov ecx,429496730
mov esi, edi
.while (eax > 0)
mov ebx,eax
mul ecx
mov eax,edx
lea edx,[edx*4+edx]
add edx,edx
sub ebx,edx
add bl,'0'
mov [edi],bl
inc edi
.endw
mov byte ptr [edi], 0 ; terminate the string
; We now have all the digits, but in reverse order.
.while (esi < edi)
dec edi
mov al, [esi]
mov ah, [edi]
mov [edi], al
mov [esi], ah
inc esi
.endw
dw2asc:
pop edi
pop esi
pop ebx
ret
dwtoa endp
end
[em1][em1]