Chciałbym żeby wprowadzony przeze mnie tekst był wyświetlany w msgboxie. obecje mój program pokazuję ilość liter wpisanych przeze mnie.
.686
.model flat
extern __write: PROC
extern __read: PROC
extern _ExitProcess@4: PROC
extern _MessageBoxA@16 : PROC
public _main
.data
obszar db 12 dup (?)
cyfry db 12 dup (?)
.code
liczba_na_tekst:
mov eax, ebx
mov ebx, 10
mov edi, 10
mov ecx, 10
obieg:
mov edx, 0 ; zerowanie starszej czesic dzielnej
div ebx ; dzielenie przez 10, iloraz w eax, reszta w ebx
add dl, 30H ; zamiana reszty na kod ASCII
mov cyfry [edi], dl ; przeslanie reszty do rejestru edi
sub edi, 1 ; zmienjszenie indexu biezacego o 1
sub ecx, 1 ; zmniejszenie licznika petli
jnz obieg ; skocz na pocztek petli, gdy ecx rozne od 0 ; obszar cyfry zostanie wypelniony kodami ASCII, np. 27 zstsnaieie wyslweitone jako 0000000027
mov ecx,10 ; licznik obiegu petli, przy usuwaniu zer nieznaczacych
mov edi,1 ; index bie?acy
usuwanie:
mov dl, cyfry[edi]; pobranie kolejnej cyfry
cmp dl, '0' ;
jne wyskok ; skok gduy napotkano cyfre rozna od zera
mov byte ptr cyfry[edi], '*' ; wpisanie kodu spacjiw miejsdce zera
add edi, 1; zwiekszernie indexu
loop usuwanie ; skok na pocz1tek petli
mov cyfry[0], 10h
mov cyfry[11], 0
jmp wyskok
wczytaj32 PROC
push 12
push OFFSET obszar
push 0
call __read
add esp, 12
mov ecx , OFFSET obszar ;adres tablicy obszar
zliczanie :
mov al,[ebx+ecx] ; pobranie komórki pamięci wyznaczonej przez rejestr ecx do rejestru al. pobranie kolejnego znaku z tablicy obszar
add ebx ,1 ; zwiekszenie indexu
cmp al ,10 ; sprawdzenie czy nie kliknął się enter
je koniec_obliczen
jmp zliczanie
koniec_obliczen:
sub ebx, 1
ret ;powrot do programu głównego
wczytaj32 ENDP
_main:
call wczytaj32
jmp liczba_na_tekst
wyskok:
mov byte PTR cyfry[0], 10 ; nowa linia
mov byte PTR cyfry[11], 10 ; nowa linia
mov byte PTR cyfry[11], 0 ; nowa linia
push 0
push OFFSET cyfry
push OFFSET cyfry ; adres obszaru z cyframi
push 0
call _MessageBoxA@16
add esp, 12 ; usuniecie paramertrow ze stosu
push 0;
call _ExitProcess@4
END
jakby ktoś pomógł byłbym wdzięczny