Result

WA

Duration

501ms

Code [DL]

global _start
section .data
a:times 4 db 0
b:times 4 db 0
c:times 4 db 0
d:times 4 db 0
e:times 4 db 0
f:times 4 db 0
g:times 4 db 0
h:times 4 db 0
i:times 4 db 0
j:times 4 db 0
k:times 4 db 0
l:times 4 db 0
%macro o 1
pushad
mov eax,%1
call p
popad
%endmacro
%macro input 2
pushad
push %1
push %2
call input_
popad
%endmacro
%macro z 0-1 eax
input buf,11
atod buf,%1
%endmacro
%macro atod 1-2 eax
push eax
push ebx
push ecx
push edx
push edi
push %1
call convert_ascii
add esp,4
mov [dbuf],ecx
pop edi
pop edx
pop ecx
pop ebx
pop eax
mov %2,[dbuf]
%endmacro
section .data
sign: db 0
section .bss
buf: resb 11
dbuf: resd 1
section .text
new_line: db 10,0
p:
mov edi,-1
call get_string
mov ecx,eax
mov edx,edi
mov eax,4
mov ebx,1
int 80h
ret
get_string:
inc edi
cmp byte [eax+edi],0
jne get_string
ret
input_:
mov ecx,[esp+8]
mov edx,[esp+4]
mov eax,3
mov ebx,0
int 80h
ret 8
convert_ascii:
mov edx,[esp+4]
mov edi,-1
mov ecx,0
mov eax,0
mov byte [sign],0
jmp determine_sign
convert_continue:
call determine_decimal
cmp byte [sign],1
ret
determine_sign:
cmp byte [edx],2dh
jne convert_continue
determine_decimal:
mov ebx,0
inc edi
cmp byte [edx+edi],30h
jl return
cmp byte [edx+edi],39h
jg return
mov ebx,0
mov bl,[edx+edi]
sub bl,30h
push edx
mov eax,ecx
mov ecx,10
mul dword ecx
mov ecx,eax
add ecx,ebx
pop edx
jmp determine_decimal
return:
ret
convert_double:
mov ebx,[esp+8]
mov eax,[esp+4]
sub ecx,ecx
mov esi,10
mov byte [sign],0
cmp eax,0
jmp gn
gn:
cmp eax,0
je pn
cdq
div esi
add edx, 30h
push edx
inc ecx
jmp gn
pn:
cmp byte [sign],0
je an
an:
pop edx
mov byte[ebx],dl
inc ebx
loop an
mov byte[ebx],0
ret 8
_start:
z
mov dword[j],eax
z
mov dword[k],eax
z
mov dword[l],eax
z
mov dword[a],eax
z
mov dword[b],eax
z
mov dword[c],eax
z
mov dword[d],eax
z
mov dword[e],eax
z
mov dword[f],eax
z
mov dword[g],eax
z
mov dword[h],eax
z
sub dword[a],dword[j]
sub dword[b],dword[k]
sub dword[c],dword[l]
sub dword[d],dword[j]
sub dword[e],dword[k]
sub dword[f],dword[l]
sub dword[g],dword[j]
sub dword[h],dword[k]
sub dword[i],dword[l]
mov eax,dword[a]
mul eax,dword[e]
mul eax,dword[i]
mov ebx,dword[b]
mul ebx,dword[f]
mul ebx,dword[g]
add eax,ebx
mov ebx,dword[c]
mul ebx,dword[d]
mul ebx,dword[h]
add eax,ebx
mov ebx,dword[a]
mul ebx,dword[h]
mul ebx,dword[f]
sub eax,ebx
mov ebx,dword[b]
mul ebx,dword[i]
mul ebx,dword[d]
sub eax,ebx
mov ebx,dword[c]
mul ebx,dword[g]
mul ebx,dword[e]
sub eax,ebx
pushad
push buf
push eax
call convert_double
o buf

stdin

51 91 08
45 01 69
39 37 12
52 18 18

stdout

stderr

/tmp/code.asm:162: error: invalid combination of opcode and operands
/tmp/code.asm:163: error: invalid combination of opcode and operands
/tmp/code.asm:164: error: invalid combination of opcode and operands
/tmp/code.asm:165: error: invalid combination of opcode and operands
/tmp/code.asm:166: error: invalid combination of opcode and operands
/tmp/code.asm:167: error: invalid combination of opcode and operands
/tmp/code.asm:168: error: invalid combination of opcode and operands
/tmp/code.asm:169: error: invalid combination of opcode and operands
/tmp/code.asm:170: error: invalid combination of opcode and operands
/tmp/code.asm:172: error: invalid combination of opcode and operands
/tmp/code.asm:173: error: invalid combination of opcode and operands
/tmp/code.asm:175: error: invalid combination of opcode and operands
/tmp/code.asm:176: error: invalid combination of opcode and operands
/tmp/code.asm:179: error: invalid combination of opcode and operands
/tmp/code.asm:180: error: invalid combination of opcode and operands
/tmp/code.asm:183: error: invalid combination of opcode and operands
/tmp/code.asm:184: error: invalid combination of opcode and operands
/tmp/code.asm:187: error: invalid combination of opcode and operands
/tmp/code.asm:188: error: invalid combination of opcode and operands
/tmp/code.asm:191: error: invalid combination of opcode and operands
/tmp/code.asm:192: error: invalid combination of opcode and operands
gcc: error: /tmp/code.o: No such file or directory
gcc: fatal error: no input files
compilation terminated.
/bin/script: 16: /bin/script: /tmp/code: not found
rm: cannot remove '/tmp/code.o': No such file or directory
rm: cannot remove '/tmp/code': No such file or directory

strace