Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Сумма
- push arr
- call Proc
- Proc:
- push bp
- mov bp,sp
- push si
- mov si,[bp+4]
- mov cx,word[si]
- xor ax,ax
- .Solve:
- add si,2
- add ax,word[si]
- loop .Solve
- pop si bp
- ret 2
- arr db 7,1,2,3,4,5,6,7
- Минимальный элемент
- push arr
- call Solver
- Solver:
- push bp
- mov bp,sp
- push si
- mov si,[bp+4]
- mov cx,word[si]
- add si,2
- mov ax,word[si]
- dec cx
- .Solve:
- add si,2
- cmp word[si],ax
- jge .Skip
- mov ax,word[si]
- .Skip:
- loop .Solve
- pop si bp
- ret 2
- arr db 7,1,2,3,4,5,6,7
- Инвертировать число
- push [Num]
- Call Solver
- Solver:
- push bp
- mov bp,sp
- mov dx,[bp+4]
- xor ax,ax
- .SolveTask:
- shl ax,1
- shr dx,1
- adc ax,0
- test dx,dx
- loop .SolveTask
- pop bp
- ret 2
- Num dw 0110
- Поменять элементы каждого индекса в двух массивах
- push [Num]
- Call Solver
- Solver:
- push bp
- mov bp,sp
- mov dx,[bp+4]
- xor ax,ax
- .SolveTask:
- shl ax,1
- shr dx,1
- adc ax,0
- test dx,dx
- loop .SolveTask
- pop bp
- ret 2
- Num dw 0110
- Заполнить массив числами n-1,n-2 и так далее
- push [Num]
- Call Solver
- Solver:
- push bp
- mov bp,sp
- mov dx,[bp+4]
- xor ax,ax
- .SolveTask:
- shl ax,1
- shr dx,1
- adc ax,0
- test dx,dx
- loop .SolveTask
- pop bp
- ret 2
- Num dw 0110
- Сколько единиц в двоичке?
- push [Num]
- Call Solver
- Solver:
- push bp
- mov bp,sp
- mov dx,[bp+4]
- xor ax,ax
- .SolveTask:
- shl ax,1
- shr dx,1
- adc ax,0
- test dx,dx
- loop .SolveTask
- pop bp
- ret 2
- Num dw 0110
- количество чисел в массиве которые делятся на X
- push word[Num]
- push arr
- call Solver
- Solver:
- push bp
- mov bp,sp
- push si
- mov si,[bp+4]
- mov cx,[si]
- mov dl,[bp+6]
- xor ax,ax
- .SolveTask:
- add si,2
- mov ax,[si]
- idiv dl
- test ah,ah
- jnz .Skip
- inc ax
- .Skip:
- loop .SolveTask
- pop si bp
- ret 4
- arr db 5,1,2,3,4,5
- Num dw 4
- Две С- строки, проверить на равенство
- push str1
- push str2
- Call Solve
- Solve:
- push bp
- mov bp,sp
- push si
- mov si,[bp+4] ;second string
- push di
- mov di, [bp+6] ; first string
- xor ax,ax
- .BaseSolve:
- mov al,byte[si]
- cmp al,byte[di]
- jnz .Met1
- inc di
- inc si
- cmp byte[di],0
- jz .Met2
- cmp byte[si], 0
- jz .Met1
- jmp .BaseSolve
- .Met1:
- xor ax,ax
- jmp .End
- .Met2:
- cmp byte[si],0
- jnz .Met1
- mov ax,1
- .End:
- pop bp
- ret 4
- str1 db '4785dd',0
- str2 db 'sdfs4f',0
- Дана С-Строка, найти количество слов в строке
- push str1
- Call Solver
- Solver:
- push bp
- mov bp,sp
- push si
- mov si,[bp+4]
- xor ax,ax
- .SolveTask:
- cmp byte[si],0
- je .End
- cmp byte[si],' '
- jne .Met2
- inc si
- jmp .SolveTask
- .Met2:
- inc ax
- .Met3:
- cmp byte[si],0
- je .End
- cmp byte[si],' '
- je .SolveTask
- add si,2
- jmp .Met3
- .End:
- pop si bp
- ret 4
- str1 db ' fd fdfd fdfdfddf ', 0
- Заменить в массиве первые N элементов на -1,0,1,-1,0,1
- push arr
- push [Num]
- Call Solver
- Solver:
- push bp
- mov bp,sp
- push si
- mov si,[bp+4]
- mov cx,[bp + 6]
- xor ax,ax
- .SolveTask:
- add si,2
- mov word[si],-1
- dec cx
- cmp cx,0
- je .Met1
- add si,2
- mov word[si],0
- dec cx
- cmp cx,0
- je .Met1
- add si,2
- mov word[si],1
- loop .SolveTask
- .Met1:
- pop si bp
- ret 4
- Num dw 6
- arr dw 10, 1, 2, -3, 4, 5, 33, 7, -9, 5, 5
- Посчитать количество элементов больших чем X
- push arr
- push [num]
- call Solver
- Solver:
- push bp
- mov bp,sp
- push si
- mov si,[bp+6]
- mov cx,[si]
- xor ax,ax
- .Met1:
- add si,2
- mov ax,[si]
- cmp ax,[bp+4]
- jge .Skip
- inc dx
- .Skip:
- loop .Met1
- pop si bp
- ret 4
- arr db 5, 1,2,3,4,5
- num dw 5
- Сумма цифр числа
- push [num]
- Call Solver
- Solver:
- push bp
- mov bp,sp
- mov dx,[bp+4]
- xor ax,ax
- .SolveTask:
- div [ten]
- add ax,ah
- xor ah,ah
- test ax,ax
- jne .SolveTask
- pop bp
- ret 2
- num dw 225
- ten db 10
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement