|
|
1.1 ! root 1: ////////// ! 2: / i8086 C string library. ! 3: / strcspn() ! 4: / ANSI 4.11.5.3. ! 5: ////////// ! 6: ! 7: ////////// ! 8: / size_t ! 9: / strcspn(String1, String2) ! 10: / char *String1, *String2; ! 11: / ! 12: / Return the length of the initial segment of String1 which consists of ! 13: / characters not in String2 ! 14: ////////// ! 15: ! 16: #include <larges.h> ! 17: ! 18: String1 = LEFTARG ! 19: String2 = String1+DPL ! 20: ! 21: Enter(strcspn_) ! 22: Les di, String1(bp) / String1 address String1 ES:DI ! 23: mov dx, di / Save for length calc ! 24: cld ! 25: 1: movb ah, Pes (di) / Get char from String 1 ! 26: inc di ! 27: orb ah, ah ! 28: je 3f / If equal done ! 29: ! 30: Lds si, String2(bp) / address of String2 DS:SI ! 31: 2: lodsb / From character String1 AL ! 32: orb al, al ! 33: je 1b / End of scan get next from String1 ! 34: cmpb ah, al ! 35: jne 2b / Try next in String2 ! 36: ! 37: 3: dec di ! 38: mov ax, di ! 39: sub ax, dx ! 40: Leave
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.