J, M
This commit is contained in:
parent
adba0bfac6
commit
4fd1a7ed9e
4 changed files with 165 additions and 30 deletions
59
nasm/J.asm
59
nasm/J.asm
|
@ -5,59 +5,64 @@ extern qsort
|
||||||
|
|
||||||
section .text
|
section .text
|
||||||
main:
|
main:
|
||||||
; read N
|
|
||||||
push n
|
push n
|
||||||
push readn
|
push readn
|
||||||
call scanf
|
call scanf
|
||||||
add esp ,8
|
add esp, 8
|
||||||
|
|
||||||
; read loop for x
|
|
||||||
xor ebx, ebx
|
xor ebx, ebx
|
||||||
|
|
||||||
loop1:
|
loop1:
|
||||||
cmp bx, word [n]
|
cmp ebx, dword [n]
|
||||||
je nya1
|
je nya1
|
||||||
lea eax, [x + 2 * ebx]
|
lea eax, [x + 4 * ebx]
|
||||||
dbg1: push eax
|
|
||||||
|
push eax
|
||||||
push nya
|
push nya
|
||||||
call scanf
|
call scanf
|
||||||
add esp, 8
|
add esp, 8
|
||||||
dbg2: inc ebx
|
|
||||||
jmp loop1
|
|
||||||
|
|
||||||
|
inc ebx
|
||||||
|
jmp loop1
|
||||||
nya1:
|
nya1:
|
||||||
push compare
|
push compare
|
||||||
push dword 2
|
push dword 4
|
||||||
push dword [n]
|
push dword [n]
|
||||||
push x
|
push x
|
||||||
;push x
|
|
||||||
;push dword [n]
|
|
||||||
;push dword 2 ; size of element
|
|
||||||
;push compare
|
|
||||||
call qsort
|
call qsort
|
||||||
add esp, 16
|
add esp, 16
|
||||||
|
|
||||||
|
xor ebx, ebx
|
||||||
|
loop2:
|
||||||
|
cmp ebx, dword [n]
|
||||||
|
je nya2
|
||||||
|
lea eax, [x + 4 * ebx]
|
||||||
|
|
||||||
|
push dword [eax]
|
||||||
|
push write
|
||||||
|
call printf
|
||||||
|
add esp, 8
|
||||||
|
inc ebx
|
||||||
|
jmp loop2
|
||||||
|
|
||||||
|
nya2:
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
compare:
|
compare:
|
||||||
;mov ebp, esp
|
mov eax, [esp+4]
|
||||||
;sub esp, 16
|
mov eax, dword [eax]
|
||||||
;pop eax
|
|
||||||
;pop ebx
|
|
||||||
;push ebp
|
|
||||||
;mov ebp, esp
|
|
||||||
|
|
||||||
mov eax, dword [esp + 4]
|
mov ebx, [esp + 8]
|
||||||
;lea ebx, [ebp - 2]
|
mov ebx, dword [ebx]
|
||||||
;mov ebx, [esp + 8]
|
|
||||||
sub eax, [esp + 8]
|
sub eax, ebx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
section .data
|
section .data
|
||||||
nya db "%hu", 0
|
write db "%d ", 0
|
||||||
|
nya db "%d", 0
|
||||||
readn db "%d", 0
|
readn db "%d", 0
|
||||||
|
|
||||||
section .bss
|
section .bss
|
||||||
n resd 1
|
n resd 1
|
||||||
x resw 10000
|
x resd 10000
|
||||||
|
|
78
nasm/J1.asm
Normal file
78
nasm/J1.asm
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
global main
|
||||||
|
extern printf
|
||||||
|
extern scanf
|
||||||
|
extern qsort
|
||||||
|
|
||||||
|
section .text
|
||||||
|
main:
|
||||||
|
; read N
|
||||||
|
push n
|
||||||
|
push readn
|
||||||
|
call scanf
|
||||||
|
add esp ,8
|
||||||
|
|
||||||
|
; read loop for x
|
||||||
|
xor ebx, ebx
|
||||||
|
|
||||||
|
loop1:
|
||||||
|
cmp bx, word [n]
|
||||||
|
je nya1
|
||||||
|
lea eax, [x + 4 * ebx]
|
||||||
|
push eax
|
||||||
|
push nya
|
||||||
|
call scanf
|
||||||
|
add esp, 8
|
||||||
|
inc ebx
|
||||||
|
jmp loop1
|
||||||
|
|
||||||
|
nya1:
|
||||||
|
push compare
|
||||||
|
push dword 4
|
||||||
|
push dword [n]
|
||||||
|
push x
|
||||||
|
call qsort
|
||||||
|
add esp, 16
|
||||||
|
|
||||||
|
xor ebx, ebx
|
||||||
|
|
||||||
|
loop2:
|
||||||
|
cmp ebx, dword [n]
|
||||||
|
je nya2
|
||||||
|
lea eax, [x + 4 * ebx]
|
||||||
|
|
||||||
|
xor edx, edx
|
||||||
|
mov edx, dword [eax]
|
||||||
|
push edx
|
||||||
|
push write
|
||||||
|
call printf
|
||||||
|
add esp, 8
|
||||||
|
inc ebx
|
||||||
|
jmp loop2
|
||||||
|
|
||||||
|
nya2:
|
||||||
|
xor eax, eax
|
||||||
|
ret
|
||||||
|
|
||||||
|
compare:
|
||||||
|
xor edx, edx
|
||||||
|
xor ecx, ecx
|
||||||
|
lea eax, [esp+4]
|
||||||
|
mov eax, [eax]
|
||||||
|
mov ecx, dword [eax]
|
||||||
|
|
||||||
|
lea ebx, [esp+8]
|
||||||
|
mov ebx, [ebx]
|
||||||
|
mov edx, dword [ebx]
|
||||||
|
sub ecx, edx
|
||||||
|
;mov ax, cx
|
||||||
|
;cwde
|
||||||
|
mov eax, ecx
|
||||||
|
ret
|
||||||
|
|
||||||
|
section .data
|
||||||
|
write db "%d ", 0
|
||||||
|
nya db "%d", 0
|
||||||
|
readn db "%d", 0
|
||||||
|
section .bss
|
||||||
|
n resd 1
|
||||||
|
x resd 10000
|
34
nasm/K1.asm
Normal file
34
nasm/K1.asm
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
global main
|
||||||
|
extern scanf
|
||||||
|
extern printf
|
||||||
|
|
||||||
|
section .text
|
||||||
|
main:
|
||||||
|
|
||||||
|
push y
|
||||||
|
push x
|
||||||
|
push scan
|
||||||
|
call scanf
|
||||||
|
add esp, 12
|
||||||
|
|
||||||
|
fld tword [x]
|
||||||
|
fld tword [y]
|
||||||
|
fdiv
|
||||||
|
|
||||||
|
sub esp, 12
|
||||||
|
fstp tword [esp]
|
||||||
|
push nya
|
||||||
|
call printf
|
||||||
|
add esp, 16
|
||||||
|
xor eax, eax
|
||||||
|
ret
|
||||||
|
|
||||||
|
section .data
|
||||||
|
scan db "%llf%llf", 0
|
||||||
|
nya db "%llf", 10, 0
|
||||||
|
|
||||||
|
section .bss align=16
|
||||||
|
x rest 1
|
||||||
|
resw 1
|
||||||
|
y rest 1
|
||||||
|
|
24
nasm/M.asm
24
nasm/M.asm
|
@ -1,12 +1,30 @@
|
||||||
global main
|
global main
|
||||||
extern printf
|
|
||||||
extern scanf
|
extern scanf
|
||||||
|
extern printf
|
||||||
|
|
||||||
section .text
|
section .text
|
||||||
|
main:
|
||||||
|
|
||||||
|
push x
|
||||||
|
push scan
|
||||||
|
call scanf
|
||||||
|
add esp, 8
|
||||||
|
|
||||||
|
fld tword [x]
|
||||||
|
fabs
|
||||||
|
|
||||||
|
sub esp, 12
|
||||||
|
fstp tword [esp]
|
||||||
|
push nya
|
||||||
|
call printf
|
||||||
|
add esp, 16
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
section .data
|
section .data
|
||||||
in "%f", 0
|
scan db "%llf", 0
|
||||||
out "%f", 10, 0
|
nya db "%llf", 10, 0
|
||||||
|
|
||||||
|
section .bss align=16
|
||||||
|
x rest 1
|
||||||
|
|
||||||
|
|
Reference in a new issue