Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Дан целочисленный массив из N элементов. Выполнить циклический сдвиг массива ВПРАВО на К элементов.
- format PE console
- entry start
- include 'includes\win32ax.inc'
- ; одномернный массив
- section '.data' data readable writeable
- MaxCnt = 100
- N dd ?
- Array dd MaxCnt dup(?)
- Array2 dd MaxCnt dup(?)
- nextInd dd ?
- temp dd ?
- K dd ?
- section '.code' code readable executable
- start:
- cinvoke printf," K = "
- cinvoke scanf, "%d", K
- cinvoke printf," N = "
- cinvoke scanf, "%d", N
- cmp eax,1
- jne er1
- mov eax,[K]
- cdq
- mov ebx,[N]
- idiv ebx
- mov [K],edx
- ; ввод массива
- mov ecx,[N]
- mov esi, Array
- readArr:
- push ecx
- cinvoke scanf,"%d",esi
- cmp eax,1
- jne er1
- add esi,4
- pop ecx
- loop readArr
- ;сдвиг массива #1
- mov esi,Array
- mov edi,Array2
- mov eax,[K]
- mov ebx,4
- imul ebx
- add edi,eax
- mov ecx,[N]
- sub ecx,[K]
- m1:
- mov eax,[esi]
- mov [edi],eax
- add edi,4
- add esi,4
- loop m1
- ;сдвиг массива #2
- mov esi,Array
- mov edi,Array2
- mov eax,[N]
- mov ebx,4
- imul ebx
- add esi,eax
- mov eax,[K]
- mov ebx,4
- imul ebx
- sub esi,eax
- mov ecx,[K]
- cmp ecx,0
- je vivod
- m2:
- mov eax,[esi]
- mov [edi],eax
- add edi,4
- add esi,4
- loop m2
- ;вывод
- vivod:
- cinvoke printf,"Array: "
- mov ecx,[N]
- mov esi, Array2
- writeArr:
- push ecx
- cinvoke printf, "%d ", dword [esi]
- add esi,4
- pop ecx
- loop writeArr
- jmp exit
- er1: cinvoke printf,"Input Error"
- 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