|
|
1.1 root 1: ////////
2: /
3: / void ffcopy(from_fp, to_fp, count)
4: / faddr_t from_fp, to_fp;
5: / int count;
6: /
7: / Copy count bytes from from_fp to to_fp.
8: /
9: / Here is the stack after initial "push bp":
10: /
11: / 12(bp) count
12: / 10(bp) FP_SEL(to_fp)
13: / 8(bp) FP_OFF(to_fp)
14: / 6(bp) FP_SEL(from_fp)
15: / 4(bp) FP_OFF(from_fp)
16: / 2(bp) return IP
17: / 0(bp) old bp
18: /
19: ////////
20:
21: ffcopy_:
22: push bp
23: mov bp, sp
24: push es
25: push di
26: push ds
27: push si
28:
29: lds si, 4(bp) / from_fp to DS:SI
30: les di, 8(bp) / to_fp to ES:DI
31: mov cx, 12(bp) / rep count to CX
32: rep
33: movsb
34:
35: pop si
36: pop ds
37: pop di
38: pop es
39: pop bp
40: ret
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.