Created
March 18, 2012 10:52
-
-
Save spellancer/2070502 to your computer and use it in GitHub Desktop.
homework1 Fedor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; 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