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

Free Web Hosting