A equ rax
B equ rcx
C equ rdx
D equ rbx
E equ rsp
F equ rbp
G equ rsi
H equ rdi
I equ r8
J equ r9
K equ r10
L equ r11
M equ r12
N equ r13
O equ r14
P equ r15
A8 equ al
B8 equ cl
C8 equ dl
B8 equ bl
E8 equ spl
F8 equ bpl
G8 equ sil
H8 equ dil
I8 equ r8b
B8 equ r9b
K8 equ r10b
L8 equ r11b
M8 equ r12b
N8 equ r13b
O8 equ r14b
P8 equ r15b
mv equ mov
cm equ cmp
ad equ add
sb equ sub
ml equ mul
dv equ div
an equ and
xr equ xor
ic equ inc
dc equ dec
pu equ push
po equ pop
go equ jmp
sa equ sar
sl equ shl
sr equ shr
FN equ call
et equ extrn
.data
.code
public main
et GetCommandLineA:near
et GetTickCount:near
et MessageBoxA:near
et MessageBeep:near
et GlobalAlloc:near
et GlobalFree:near
et _lopen:near
et _lread:near
et _lcreat:near
et _lwrite:near
et _lclose:near
main PROC
;!~
jmp AACKBH
;go execod
db 13835 dup (0)
db '!!!! ETALON !!!!'
db '!!!! SECTION !!!'
dd 4 dup (0)
pu A
pu B
pu C
pu D
pu E
pu F
pu G
pu H
pu I
pu J
pu K
pu L
pu M
pu N
pu O
pu P
po P
po O
po N
po M
po L
po K
po J
po I
po H
po G
po F
po E
po D
po C
po B
po A
mv A,A
mv A,B
mv A,C
mv A,D
mv A,E
mv A,F
mv A,G
mv A,H
mv A,I
mv A,J
mv A,K
mv A,L
mv A,M
mv A,N
mv A,O
mv A,P
mv A,A
mv B,A
mv C,A
mv D,A
mv E,A
mv F,A
mv G,A
mv H,A
mv I,A
mv J,A
mv K,A
mv L,A
mv M,A
mv N,A
mv O,A
mv P,A
ad A,A
ad A,B
ad A,C
ad A,D
ad A,E
ad A,F
ad A,G
ad A,H
ad A,I
ad A,J
ad A,K
ad A,L
ad A,M
ad A,N
ad A,O
ad A,P
sb A,A
sb A,B
sb A,C
sb A,D
sb A,E
sb A,F
sb A,G
sb A,H
sb A,I
sb A,J
sb A,K
sb A,L
sb A,M
sb A,N
sb A,O
sb A,P
an A,A
an A,B
an A,C
an A,D
an A,E
an A,F
an A,G
an A,H
an A,I
an A,J
an A,K
an A,L
an A,M
an A,N
an A,O
an A,P
or A,A
or A,B
or A,C
or A,D
or A,E
or A,F
or A,G
or A,H
or A,I
or A,J
or A,K
or A,L
or A,M
or A,N
or A,O
or A,P
xr A,A
xr A,B
xr A,C
xr A,D
xr A,E
xr A,F
xr A,G
xr A,H
xr A,I
xr A,J
xr A,K
xr A,L
xr A,M
xr A,N
xr A,O
xr A,P
xr A,A
xr B,B
xr C,C
xr D,D
xr E,E
xr F,F
xr G,G
xr H,H
xr I,I
xr J,J
xr K,K
xr L,L
xr M,M
xr N,N
xr O,O
xr P,P
mv A,1
mv B,1
mv C,1
mv D,1
mv E,1
mv F,1
mv G,1
mv H,1
mv I,1
mv J,1
mv K,1
mv L,1
mv M,1
mv N,1
mv O,1
mv P,1
ic A
ic B
ic C
ic D
ic E
ic F
ic G
ic H
ic I
ic J
ic K
ic L
ic M
ic N
ic O
ic P
dc A
dc B
dc C
dc D
dc E
dc F
dc G
dc H
dc I
dc J
dc K
dc L
dc M
dc N
dc O
dc P
ic A
ic B
ic C
ic D
ic E
ic F
ic G
ic H
ic I
ic J
ic K
ic L
ic M
ic N
ic O
ic P
dc A
dc B
dc C
dc D
dc E
dc F
dc G
dc H
dc I
dc J
dc K
dc L
dc M
dc N
dc O
dc P
ad A,2
ad B,2
ad C,2
ad D,2
ad E,2
ad F,2
ad G,2
ad H,2
ad I,2
ad J,2
ad K,2
ad L,2
ad M,2
ad N,2
ad O,2
ad P,2
sb A,2
sb B,2
sb C,2
sb D,2
sb E,2
sb F,2
sb G,2
sb H,2
sb I,2
sb J,2
sb K,2
sb L,2
sb M,2
sb N,2
sb O,2
sb P,2
an A,2
an B,2
an C,2
an D,2
an E,2
an F,2
an G,2
an H,2
an I,2
an J,2
an K,2
an L,2
an M,2
an N,2
an O,2
an P,2
or A,2
or B,2
or C,2
or D,2
or E,2
or F,2
or G,2
or H,2
or I,2
or J,2
or K,2
or L,2
or M,2
or N,2
or O,2
or P,2
xr A,2
xr B,2
xr C,2
xr D,2
xr E,2
xr F,2
xr G,2
xr H,2
xr I,2
xr J,2
xr K,2
xr L,2
xr M,2
xr N,2
xr O,2
xr P,2
ad al,2
ad cl,2
ad dl,2
ad bl,2
ad ah,2
ad ch,2
ad dh,2
ad bh,2
ad A,2
sb A,2
ad al,2
sb al,2
ad bl,2
sb bl,2
ad bh,2
sb bh,2
mv I,N
mv I,N
ad I,N
sb I,N
an I,N
or I,N
xr I,N
sa A,1
sa I,1
sl A,1
sl I,1
sr A,1
sr I,1
sa A,cl
sa I,cl
sl A,cl
sl I,cl
sr A,cl
sr I,cl
sa A,31
sa I,31
sl A,31
sl I,31
sr A,31
sr I,31
mv A,[B]
mv A,[J]
mv I,[B]
mv I,[J]
mv [B],A
mv [J],A
mv [B],I
mv [J],I
ad A,[B]
ad A,[J]
ad I,[B]
ad I,[J]
sb A,[B]
sb A,[J]
sb I,[B]
sb I,[J]
an A,[B]
an A,[J]
an I,[B]
an I,[J]
or A,[B]
or A,[J]
or I,[B]
or I,[J]
xr A,[B]
xr A,[J]
xr I,[B]
xr I,[J]
oc PROC
stosb
ret
oc ENDP
os PROC
pu A
mv A,32
FN oc
po A
ret
os ENDP
nl PROC
pu A
mv A,13
FN oc
mv A,10
FN oc
po A
ret
nl ENDP
ot PROC
pu A
an A,15
;IF
cm A,10
jae AABEFI
ad A,48
jmp AABEHG
;?
AABEFI:
ad A,55
;!
AABEHG:
FN oc
po A
ret
ot ENDP
ob PROC
pu A
sr A,4
FN ot
po A
FN ot
ret
ob ENDP
ow PROC
pu A
sr A,8
FN ob
po A
FN ob
ret
ow ENDP
od PROC
pu A
sr A,16
FN ow
po A
FN ow
ret
od ENDP
ohd PROC
FN od
FN os
ret
ohd ENDP
oq PROC
pu A
sr A,32
FN od
po A
FN od
ret
oq ENDP
oqs PROC
FN oq
FN os
ret
oqs ENDP
nxtpar PROC
mv B,G
;[
AABGIA:
lodsb
stosb
cm al,32
jbe AABGNE
go AABGIA
;]
AABGNE:
mv D,G
dc D
xr A,A
mv [D],A8
;[
AABHAN:
cm al,32
ja AABHFH
lodsb
go AABHAN
;]
AABHFH:
dc G
ret
nxtpar ENDP
outinit PROC
xr B,B
mv A,65536
mv C,A
FN globaloc
mv H,A
mv O,A
ret
outinit ENDP
inpinit PROC
xr B,B
mv A,65536
mv C,A
FN globaloc
mv M,A
ret
inpinit ENDP
parinit PROC
FN getcmdln
mv G,A
mv P,A
;[
AABIJI:
lodsb
stosb
cm al,32
jbe AABIOM
go AABIJI
;]
AABIOM:
;[
AABIPL:
cm al,32
ja AABJEF
lodsb
go AABIPL
;]
AABJEF:
dc G
ret
parinit ENDP
inpread PROC
FN open
mv B,A
mv C,M
mv I,65536
FN read
mv N,A
ret
inpread ENDP
copy PROC
mv B,A
pu G
mv G,M
;[
AABKBD:
lodsb
stosb
loop AABKBD
;]-
po G
ret
copy ENDP
copwrit PROC
FN creat
mv B,A
mv C,M
mv I,N
FN write
ret
copwrit ENDP
outwrit PROC
FN creat
mv B,A
mv C,O
mv I,H
sb I,O
FN write
ret
outwrit ENDP
boxput PROC
xr A,A
stosb
xr B,B
mv C,O
mv I,P
xr J,J
FN tobox
ret
boxput ENDP
root PROC
FN outinit
FN inpinit
FN parinit
FN nxtpar
FN inpread
FN copy
FN nxtpar
FN copwrit
FN nxtpar
FN outwrit
xr A,A
xr B,B
FN beep
FN boxput
xr A,A
xr B,B
FN beep
ret
root ENDP
dd 4 dup (0)
db '!!!!!!!!!!!!!!!!'
db '!!!!!!!!!!!!!!!!'
dd 4 dup (0)
;\\ \\
AABNAC:
dw (AABNCC-AABNAC)
dw (AABOJJ-AABNAC)
dw (AABNCC-AABNAC)
dw (AABOIC-AABNAC)
dw (AABNCC-AABNAC)
dw (AABNCC-AABNAC)
dw (AABNCC-AABNAC)
dw (AABNCC-AABNAC)
dw (AABNCC-AABNAC)
dw (AABNCC-AABNAC)
dw (AABNCC-AABNAC)
dw (AABNCC-AABNAC)
dw (AABNCC-AABNAC)
dw (AABNCC-AABNAC)
dw (AABNCC-AABNAC)
dw (AABNCC-AABNAC)
AABNCC:
xr A,A
AABOIC:
xr A,A
AABOJJ:
dd 4 dup (0)
db '!!!!!!!!!!!!!!!!'
db '!!!!!!!!!!!!!!!!'
dd 4 dup (0)
db '! COMPARE OK !!!'
globaloc PROC
pu G
pu C
pu B
FN GlobalAlloc
po B
po C
po G
ret
globaloc ENDP
getcmdln PROC
FN GetCommandLineA
ret
getcmdln ENDP
open PROC
pu G
pu C
pu B
FN _lopen
po B
po C
po G
ret
open ENDP
read PROC
pu G
pu I
pu C
pu B
FN _lread
po B
po C
po I
po G
ret
read ENDP
creat PROC
pu G
pu C
pu B
FN _lcreat
po B
po C
po G
ret
creat ENDP
write PROC
pu G
pu I
pu C
pu B
FN _lwrite
po B
po C
po I
po G
ret
write ENDP
tobox PROC
pu F
pu J
pu I
pu C
pu B
FN MessageBoxA
po B
po C
po I
po J
po F
ret
tobox ENDP
beep PROC
pu B
FN MessageBeep
po B
ret
beep ENDP
;IF
cm A,B
jb AACCKC
;!
AACCKC:
;IF
cm A,B
jae AACCNC
;!
AACCNC:
;IF
cm A,B
jne AACDAC
;!
AACDAC:
;IF
cm A,B
je AACDDB
;!
AACDDB:
;IF
cm A,B
jbe AACDGB
;!
AACDGB:
;IF
cm A,B
ja AACDJA
;!
AACDJA:
;IF
cm A,B
jl AACDMA
;!
AACDMA:
;IF
cm A,B
jge AACDPA
;!
AACDPA:
;IF
cm A,B
jle AACECA
;!
AACECA:
;IF
cm A,B
jg AACEEP
;!
AACEEP:
dd 4 dup (0)
db '!!!!!!!!!!!!!!!!'
db '!!!!!!!!!!!!!!!!'
dd 4 dup (0)
;\\
;!~
jmp AACHBP
; SKIP BODY
ret
ret
ret
ret
;IF
cm A,B
jne AACFHE
; IF-THEN BODY
ret
ret
ret
ret
jmp AACFMD
;?
AACFHE:
; IF-ELSE BODY
ret
ret
ret
ret
;!
AACFMD:
;[
AACFNE:
;IF
cm A,B
jne AACGFH
ret
ret
ret
ret
go AACFNE
;]
AACGFH:
;IF
cm A,B
jne AACGLL
ret
ret
ret
ret
;!
AACGLL:
;[
AACGMM:
ret
ret
ret
ret
go AACGMM
;]
;~!
AACHBP:
dd 4 dup (0)
db '!!!!!!!!!!!!!!!!'
db '!!!!!!!!!!!!!!!!'
dd 4 dup (0)
;\\
;\\
movd A,xmm0
movd xmm0,A
movd I,xmm3
movd xmm3,I
movd P,xmm15
movd xmm15,P
mv al,dil
mv dil,al
mv al,r15b
mv r15b,al
ad al,r15b
ad r15b,al
mv al,al
mv al,bl
mv al,cl
mv al,dl
mv al,spl
mv al,bpl
mv al,sil
mv al,dil
mv al,r8b
mv al,r9b
mv al,r14b
mv al,r15b
mv al,ah
mv al,bh
mv al,ch
mv al,dh
; 24592.pdf
; AMD64 Architecture Programmer's Manual Vol 1 Application Programming
; 64-Bit-Mode Registers
;
; al - dil - r8b - r15b - 8-bit
; ax - di - r8w - r15w - 32-bit
; eax - edi - r8d - r15d - 32-bit
; rax - rdi - r8 - r15 - 64-bit
execod:
;~!
AACKBH:
pu M
pu N
pu O
pu P
FN root
po P
po O
po N
po M
ret
main ENDP
END
