Ïðèìåð 3. Óïîðÿäî÷èòü ìàññèâ ñòðîê
len dd 4 dup (?)
codeseg
begin:
push offset array [n] offset len
call TextLen
call ExitProcess;
proc TextLen;
push ebp
mov ebp, esp; ÑÒÅÊ
;for (i=0; i<n; i++ ){ ebp 0
; for (j=0; array[i][j]; j++); eip 4
; len[i]=j; len 8
;} n 12
; array 16
pushad
mov ecx, [ebp+12]
mov eax, [ebp+16]
mov edi, [ebp+8]
fori:
sub edx, edx
lea ebx, [eax+ecx*4-4]
mov esi, [ebx]
forj:
mov bl, [esi+edx]
test bl, bl
je short breakj
inc edx
jmp forj
breakj:
mov [edi+ecx*4-4], edx
loop fori
popad
pop ebp
Ret 3*4
Endp
end begin
Îáðàòèòå âíèìàíèå íà ðàáîòó ñ àäðåñîì ìàññèâà àäðåñîâ!
Ïðèìåð 3. Óïîðÿäî÷èòü ìàññèâ ñòðîê â ïîðÿäêå óáûâàíèÿ äëèí ñòðîê.
ideal
p686
model flat
extrn ExitProcess:proc
dataseg
s1 db 'a', 0
s2 db 'bb', 0
s3 db 'ccc', 0
s4 db 'dddd', 0
array dd s1, s2, s3, s4
n dd (n-array)/4
len dd 4 dup (?)
codeseg
begin:
push offset array [n] offset len
call TextLen
push offset array [n] offset len
call SortLen
call ExitProcess;
proc TextLen;
push ebp;
mov ebp, esp;
;for (i=0; i<n; i++ ){ ebp 0
; for (j=0; array[i][j]; j++); eip 4
; len[i]=j; len 8
;} n 12
; array 16
pushad
mov ecx, [ebp+12]
mov eax, [ebp+16]
mov edi, [ebp+8]
Ñîäåðæàíèå Íàçàä Âïåðåä
Forekc.ru
Ðåôåðàòû, äèïëîìû, êóðñîâûå, âûïóñêíûå è êâàëèôèêàöèîííûå ðàáîòû, äèññåðòàöèè, ó÷åáíèêè, ó÷åáíûå ïîñîáèÿ, ëåêöèè, ìåòîäè÷åñêèå ïîñîáèÿ è ðåêîìåíäàöèè, ïðîãðàììû è êóðñû îáó÷åíèÿ, ïóáëèêàöèè èç ïðîôèëüíûõ èçäàíèé