Skip to content

Instantly share code, notes, and snippets.

@spellancer
Created March 18, 2012 10:52
Show Gist options
  • Save spellancer/2070502 to your computer and use it in GitHub Desktop.
Save spellancer/2070502 to your computer and use it in GitHub Desktop.
homework1 Fedor
; Template for console application
.586
.MODEL flat, stdcall
OPTION CASEMAP:NONE
Include kernel32.inc
Include masm32.inc
IncludeLib kernel32.lib
IncludeLib masm32.lib
.CONST
MsgExit DB 13,10,"Press Enter to Exit",0AH,0DH,0
Perechod DB 13,10," ",13,10,0
.DATA
A BYTE 'kalajajlaka',13,10,0
B BYTE 10 DUP (?)
D BYTE 3 DUP (?)
m DWORD 3
kol DWORD ?
n SWORD 9
x dword ?
y dword ?
z dword ?
f dword ?
Res DB 16 DUP (' '),13,10,0
string DB 13,10,'Result = ' ; заголовок вывода
resstr DB 16 dup (' '),0 ; выводимое число
.DATA?
inbuf DB 100 DUP (?)
.CODE
Start:
cld
mov ECX,3
lea ESI,A
lea EDI,B
rep movsb
mov x,EDI;запоминаем конец строки B
mov ECX,9
mov EBX,3
mov EBP,2
cycle :
mov y,ECX
dec ESI
mov ECX,2
lea EDI,D
rep movsb; копируем в строку D 2 символа из A
mov z,ESI;запоминаем положение в строке A
sub EDI,2;встаём на начало D
mov m,EDI;запоминаем начало D
mov EAX,EDI;заносим в EAX строку D
mov EDI,x;встаём на строку B
sub EDI,EBX
mov ECX,EBX
;repne
scasb;ищем строку D в B
;jne ;если имеется такая комбинация
mov ESI,m;встаём на начало D
inc ESI
mov AL,[ESI]
cmp AL,[EDI]
je CONTINUE
mov ESI,m;встаём на начало D(её копируем)
inc ESI
mov ECX,1
mov EDI,x;втсаём на конец В(в неё копируем)
rep movsb
mov x,EDI
inc EBX
inc EBP
jmp CONTINUE
CONTINUE:
Invoke StdOut,ADDR D
Invoke StdOut,ADDR Perechod
mov ECX,y
mov ESI,z
mov EDI,x
push EDI
cmp ECX,0
je EXIT
dec ECX
jmp cycle
;loop cycle
EXIT:
mov kol,EBP
;
; Add you statements
;
Invoke StdOut,ADDR A
Invoke StdOut,ADDR Perechod
Invoke StdOut,ADDR B
Invoke StdOut,ADDR Perechod
Invoke StdOut,ADDR D
Invoke StdOut,ADDR Perechod
Invoke dwtoa,kol,ADDR resstr
Invoke StdOut,ADDR string
XOR EAX,EAX
Invoke StdOut,ADDR MsgExit
Invoke StdIn,ADDR inbuf,LengthOf inbuf
Invoke ExitProcess,0
End Start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment