-
Notifications
You must be signed in to change notification settings - Fork 0
/
mylib.lib
59 lines (44 loc) · 1.15 KB
/
mylib.lib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
.386
.model flat, stdcall
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;includem biblioteci, si declaram ce functii vrem sa importam
includelib msvcrt.lib
extern exit: proc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;declaram simbolul start ca public - de acolo incepe executia
public start
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;sectiunile programului, date, respectiv cod
.data
;aici declaram date
.code
write_data_in_hamming proc
push EBP
mov EBP,ESP
mov ESI,[EBP+8] ;luam primul argument care este adresa sirului sursa
mov EDI,[EBP+12] ; luam al doilea argument care este adresa sirului in care dorim sa scriem datele
add EDI,2
mov ECX,1
rep movsb ;scrie pe pozitia 3
add EDI,1
mov ECX,3
rep movsb ;scrie pe pozitiile 5-7
add EDI,1
mov ECX,7
rep movsb ;scrie pe pozitiile 9-15
add EDI,1
mov ECX,15
rep movsb ;scrie pe pozitiile 17-31
add EDI,1
mov ECX,6
rep movsb ;scrie pe pozitiile 33-38
mov ESP,EBP
pop EBP
ret
write_data_in_hamming endp
start:
;aici se scrie codul
;terminarea programului
push 0
call exit
end start