Merge branch 'main' of https://strade-fs.fit.vutbr.cz/git/orsag/isu-examples into main
This commit is contained in:
commit
d6c9bcb9e0
221
t11.asm
221
t11.asm
@ -1,221 +0,0 @@
|
|||||||
%include 'rw32-2022.inc'
|
|
||||||
|
|
||||||
section .data
|
|
||||||
; 1 + 4 + 2 + 2 + 2 + 4 + 4= 19
|
|
||||||
currentTest dd 0
|
|
||||||
TEST_REC_SIZE EQU 19
|
|
||||||
testCount dd 11
|
|
||||||
tests:
|
|
||||||
t1 db 10
|
|
||||||
dd 20
|
|
||||||
dw 10
|
|
||||||
dw 7
|
|
||||||
dw 7
|
|
||||||
dd 0
|
|
||||||
dd 0
|
|
||||||
t2 db 0
|
|
||||||
dd 0
|
|
||||||
dw 0
|
|
||||||
dw 0
|
|
||||||
dw 0
|
|
||||||
dd 0
|
|
||||||
dd 0
|
|
||||||
t3 db 0xFF
|
|
||||||
dd 0x0000FFFF
|
|
||||||
dw 0xFFFF
|
|
||||||
dw 0xFFFF
|
|
||||||
dw 0xFFFF
|
|
||||||
dd 0
|
|
||||||
dd 0
|
|
||||||
t4 db 0x80
|
|
||||||
dd 0x00008000
|
|
||||||
dw 0x8000
|
|
||||||
dw 0x8000
|
|
||||||
dw 0x8000
|
|
||||||
dd 0
|
|
||||||
dd 0
|
|
||||||
t5 db 0x7F
|
|
||||||
dd 0x00007FFF
|
|
||||||
dw 0x7FFF
|
|
||||||
dw 0x7FFF
|
|
||||||
dw 0x7FFF
|
|
||||||
dd 0
|
|
||||||
dd 0
|
|
||||||
t6 db 0x7F
|
|
||||||
dd 0x7FFFFFFF
|
|
||||||
dw 0x7FFF
|
|
||||||
dw 0x7FFF
|
|
||||||
dw 0x7FFF
|
|
||||||
dd 0
|
|
||||||
dd 0
|
|
||||||
t7 db 0x80
|
|
||||||
dd 0x80000000
|
|
||||||
dw 0x8000
|
|
||||||
dw 0x8000
|
|
||||||
dw 0x8000
|
|
||||||
dd 0
|
|
||||||
dd 0
|
|
||||||
t8 db 0xFF
|
|
||||||
dd 0xFFFFFFFF
|
|
||||||
dw 0xFFFF
|
|
||||||
dw 0xFFFF
|
|
||||||
dw 0xFFFF
|
|
||||||
dd 0
|
|
||||||
dd 0
|
|
||||||
t9 db 10
|
|
||||||
dd 20
|
|
||||||
dw 10
|
|
||||||
dw 7
|
|
||||||
dw 7
|
|
||||||
dd 0xFFFFFFFF
|
|
||||||
dd 0xFFFFFFFF
|
|
||||||
t10 db 10
|
|
||||||
dd 20
|
|
||||||
dw 10
|
|
||||||
dw 7
|
|
||||||
dw 7
|
|
||||||
dd 0x7FFFFFFF
|
|
||||||
dd 0x7FFFFFFF
|
|
||||||
t11 db 10
|
|
||||||
dd 20
|
|
||||||
dw 10
|
|
||||||
dw 7
|
|
||||||
dw 7
|
|
||||||
dd 0x80000000
|
|
||||||
dd 0x80000000
|
|
||||||
|
|
||||||
a db 0
|
|
||||||
b dd 0
|
|
||||||
c dw 0
|
|
||||||
d dw 0
|
|
||||||
e dw 0
|
|
||||||
q dd 0
|
|
||||||
r dd 0
|
|
||||||
|
|
||||||
section .text
|
|
||||||
PRINT_ABCDE:
|
|
||||||
mov al,'('
|
|
||||||
call WriteChar
|
|
||||||
mov al,[a]
|
|
||||||
call WriteUInt8
|
|
||||||
mov al,','
|
|
||||||
call WriteChar
|
|
||||||
mov eax,[b]
|
|
||||||
call WriteUInt32
|
|
||||||
mov al,','
|
|
||||||
call WriteChar
|
|
||||||
mov ax,[c]
|
|
||||||
call WriteUInt16
|
|
||||||
mov al,','
|
|
||||||
call WriteChar
|
|
||||||
mov ax,[d]
|
|
||||||
call WriteUInt16
|
|
||||||
mov al,','
|
|
||||||
call WriteChar
|
|
||||||
mov ax,[e]
|
|
||||||
call WriteUInt16
|
|
||||||
mov al,')'
|
|
||||||
call WriteChar
|
|
||||||
mov al,'='
|
|
||||||
call WriteChar
|
|
||||||
ret
|
|
||||||
|
|
||||||
CMAIN:
|
|
||||||
enter 0,0
|
|
||||||
pushad
|
|
||||||
pushfd
|
|
||||||
|
|
||||||
mov eax,3
|
|
||||||
jmp .skip_pars
|
|
||||||
mov eax,[ebp+8] ; argc
|
|
||||||
cmp eax,2
|
|
||||||
jb exit
|
|
||||||
|
|
||||||
mov esi,[ebp+12] ; argv
|
|
||||||
mov edi,[esi] ; argv[0]
|
|
||||||
CEXTERN atoi
|
|
||||||
push dword [esi+4]
|
|
||||||
call atoi
|
|
||||||
add esp,4
|
|
||||||
cmp eax,1
|
|
||||||
jb exit
|
|
||||||
cmp eax,[testCount]
|
|
||||||
ja exit
|
|
||||||
|
|
||||||
mov ebx,-1
|
|
||||||
mov ecx,-1
|
|
||||||
mov edx,-1
|
|
||||||
mov esi,-1
|
|
||||||
mov edi,-1
|
|
||||||
mov ebp,-1
|
|
||||||
.skip_pars:
|
|
||||||
imul eax,eax,TEST_REC_SIZE
|
|
||||||
lea esi,[tests + eax - TEST_REC_SIZE]
|
|
||||||
mov [currentTest],esi
|
|
||||||
mov edi,a
|
|
||||||
mov ecx,TEST_REC_SIZE
|
|
||||||
cld
|
|
||||||
rep movsb
|
|
||||||
|
|
||||||
call PRINT_ABCDE
|
|
||||||
|
|
||||||
mov dword [q],0xABABABAB
|
|
||||||
mov dword [r],0xBABABABA
|
|
||||||
mov eax,[currentTest + 11]
|
|
||||||
mov edx,[currentTest + 15]
|
|
||||||
mov esi,0
|
|
||||||
call task12
|
|
||||||
mov esi,q
|
|
||||||
mov ecx,2
|
|
||||||
call WriteArrayUInt32
|
|
||||||
|
|
||||||
exit:
|
|
||||||
popfd
|
|
||||||
popad
|
|
||||||
leave
|
|
||||||
xor eax,eax
|
|
||||||
ret
|
|
||||||
user_test_code_begin:
|
|
||||||
task12:
|
|
||||||
xor eax, eax
|
|
||||||
xor ebx, ebx
|
|
||||||
xor edx, edx
|
|
||||||
xor ecx, ecx
|
|
||||||
mov al, byte [a]
|
|
||||||
cbw
|
|
||||||
cwde
|
|
||||||
imul dword [b]
|
|
||||||
mov ebx, eax
|
|
||||||
xor eax, eax
|
|
||||||
mov ax, word [c]
|
|
||||||
cwde
|
|
||||||
add eax, ebx
|
|
||||||
add eax, 32
|
|
||||||
mov ecx,eax
|
|
||||||
|
|
||||||
xor eax, eax
|
|
||||||
xor ebx, ebx
|
|
||||||
xor edx, edx
|
|
||||||
mov ax, 5
|
|
||||||
mov bx, word [d]
|
|
||||||
imul bx
|
|
||||||
shl edx, 16
|
|
||||||
mov dx, ax
|
|
||||||
mov eax, edx
|
|
||||||
mov ebx, eax
|
|
||||||
xor eax, eax
|
|
||||||
mov ax, word [e]
|
|
||||||
cwde
|
|
||||||
add eax, ebx
|
|
||||||
mov ebx, 1256
|
|
||||||
add eax, ebx
|
|
||||||
|
|
||||||
xchg eax, ecx
|
|
||||||
cdq
|
|
||||||
idiv ecx
|
|
||||||
mov [q], eax
|
|
||||||
mov [r], edx
|
|
||||||
ret
|
|
||||||
|
|
||||||
user_test_code_end:
|
|
||||||
ret
|
|
||||||
Loading…
Reference in New Issue
Block a user