Показать сообщение отдельно

  #2  
Старый 19.03.2009, 19:02
zeppe1in
Постоянный
Регистрация: 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..
 
Ответить с цитированием