
19.03.2009, 19:02
|
|
Постоянный
Регистрация: 12.07.2006
Сообщений: 327
Провел на форуме: 1654818
Репутация:
117
|
|
Lee_fx как то так.
Код:
.486
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\masm32.inc
include \masm32\include\kernel32.inc
include \masm32\macros\macros.asm
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\kernel32.lib
.data?
szBuff db 12 dup (?)
Mult dd ?
.code
start:
mov eax, input("Enter number here ",62," ")
call Str2IntProc
nop
nop
nop
mov edx, offset szBuff
call Int2StrProc
print offset szBuff
invoke Sleep,2000d
exit
Int2StrProc proc uses esi edi
;eax = BinVal
;edx = Address of Buffer
mov edi, edx
mov ecx, 10
mov esi, offset szBuff+11
@@:
xor edx,edx
div ecx
or dl,30h
dec esi
mov [esi],dl
test eax, eax
jnz @B
mov ecx, offset szBuff+12
sub ecx, esi
rep movsb
mov eax, edi
dec eax
ret
Int2StrProc endp
Str2IntProc proc uses edi ebx
;eax=Pointer to null-terminated string
mov ecx, -1
mov edi, eax
xor eax, eax
repne scasb
not ecx
dec ecx
jz @@Exit
sub edi,2
xor ebx,ebx
mov Mult,1
@@1:
xor eax,eax
mov al, [edi]
and al, 0Fh
mul Mult
add ebx, eax
imul edx, Mult, 10
mov Mult, edx
dec edi
dec ecx
jnz @@1
mov eax,ebx
@@Exit:
ret
Str2IntProc endp
end start
при компиляции /SUBSYSTEM:CONSOLE
Последний раз редактировалось zeppe1in; 19.03.2009 в 19:06..
|
|
|