|
|
1.1 root 1: //////////
2: / i8086 C string library.
3: / memcmp()
4: / ANSI 4.11.4.1.
5: //////////
6:
7: //////////
8: / memcmp(String1, String2, Count)
9: / char *String1, *String2;
10: / int Count;
11: /
12: / Compare Count bytes of String2 and String1.
13: //////////
14:
15: #include <larges.h>
16:
17: String1 = LEFTARG
18: String2 = String1+DPL
19: Count = String2+DPL
20:
21: Enter(memcmp_)
22: mov cx, Count(bp) / Count to CX
23: sub ax, ax / Result 0 to AX, set Zero flag in case CX==0
24: Lds si, String2(bp) / String2 address to DS:SI
25: Les di, String1(bp) / String1 address to ES:DI
26: cld
27: repe
28: cmpsb
29: je 2f / String1 == String2
30: ja 1f
31: inc ax / String1 > String2
32: jmp 2f
33:
34: 1: dec ax / String1 < String2
35:
36: 2: Leave
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.