Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- format PE console
- entry start
- include 'includes\win32ax.inc'
- ; одномернный массив
- section '.data' data readable writeable
- MaxL = 100
- a dd ?
- b dd ?
- N dd ?
- count dd 0
- Array dd MaxL dup(?)
- Array2 dd MaxL dup(?)
- section '.code' code readable executable
- ;Дан целочисленный массив из N элементов.
- ;Сжать массив, удалив из него все элементы, величина которых находится в интервале [а, b].
- ;Освободившиеся в конце массива элементы заполнить нулями.
- start:
- cinvoke printf, "N = "
- cinvoke scanf, "%d", N
- cmp eax, 1
- jne err1
- ; ввод массива
- mov ecx,[N]
- mov esi, Array
- readArr:
- push ecx
- cinvoke scanf, "%d", esi
- cmp eax,1
- jne err1
- add esi,4
- pop ecx
- loop readArr
- ;Сжать массив, удалив из него все элементы, величина которых находится в интервале [а, b].
- cinvoke printf, "a = "
- cinvoke scanf,"%d", a
- cmp eax,1
- jne err1
- cinvoke printf, "b = "
- cinvoke scanf,"%d", b
- cmp eax,1
- jne err1
- ;сжатие
- mov esi,Array
- mov ecx,[N]
- mov edi,Array2
- S1:
- cmp ecx,0
- je writeArr
- mov eax,[a]
- cmp eax,esi
- jge prov
- mov esi,eax
- add esi,4
- add edi,4
- dec ecx
- jmp S1
- prov:
- mov eax,[b]
- cmp eax,esi
- jng nuli
- mov esi,eax
- add esi,4
- add edi,4
- dec ecx
- jmp S1
- nuli:
- inc [count]
- add esi,4
- add edi,4
- dec ecx
- jmp S1
- ;вывод массива
- ;mov ebx, [N]
- ;sub ebx, [count]
- mov ecx, [N]
- mov edi,Array2
- writeArr:
- cinvoke printf,"%d ", dword[count]
- ;push ecx
- cinvoke printf,"%d ", dword[edi]
- add edi,4
- ;pop ecx
- loop writeArr
- jmp exit
- err1:
- cinvoke printf,"Error Input"
- exit:
- cinvoke getchar
- invoke ExitProcess,0
- section '.idata' import data readable writeable
- library kernel32,'kernel32.dll', msvcrt, 'msvcrt.dll'
- import kernel32,ExitProcess , 'ExitProcess' ,\
- GetStdHandle,'GetStdHandle',\
- WriteConsole,'WriteConsoleA',\
- ReadConsole,'ReadConsoleA',\
- GetProcessHeap, 'GetProcessHeap',\
- HeapCreate , 'HeapCreate' ,\
- HeapDestroy , 'HeapDestroy' ,\
- HeapAlloc , 'HeapAlloc' ,\
- HeapFree , 'HeapFree'
- import msvcrt, printf,'printf',scanf, 'scanf' ,getchar,'getchar'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement