1{ %CPU=i8086 }
2{ %NORUN }
3
4{$asmmode att}
5{$asmcpu 80386}
6
7begin
8  asm
9    movsb
10    movsw
11    movsl
12
13    cmpsb
14    cmpsw
15    cmpsl
16
17    scasb
18    scasw
19    scasl
20
21    lodsb
22    lodsw
23    lodsl
24
25    stosb
26    stosw
27    stosl
28
29    insb
30    insw
31    insl
32
33    outsb
34    outsw
35    outsl
36
37    { no segment overrides }
38    movsb (%esi), (%edi)
39    movsb (%si), (%di)
40    movsw (%esi), (%edi)
41    movsw (%si), (%di)
42    movsl (%esi), (%edi)
43    movsl (%si), (%di)
44
45    cmpsb (%edi), (%esi)
46    cmpsb (%di), (%si)
47    cmpsw (%edi), (%esi)
48    cmpsw (%di), (%si)
49    cmpsl (%edi), (%esi)
50    cmpsl (%di), (%si)
51
52    scasb (%edi)
53    scasb (%di)
54    scasw (%edi)
55    scasw (%di)
56    scasl (%edi)
57    scasl (%di)
58
59    lodsb (%esi)
60    lodsb (%si)
61    lodsw (%esi)
62    lodsw (%si)
63    lodsl (%esi)
64    lodsl (%si)
65
66    stosb (%edi)
67    stosb (%di)
68    stosw (%edi)
69    stosw (%di)
70    stosl (%edi)
71    stosl (%di)
72
73    insb %dx,(%edi)
74    insb %dx,(%di)
75    insw %dx,(%edi)
76    insw %dx,(%di)
77    insl %dx,(%edi)
78    insl %dx,(%di)
79
80    outsb (%esi),%dx
81    outsb (%si),%dx
82    outsw (%esi),%dx
83    outsw (%si),%dx
84    outsl (%esi),%dx
85    outsl (%si),%dx
86
87    { es:di }
88    movsb (%esi), %es:(%edi)
89    movsb (%si), %es:(%di)
90    movsw (%esi), %es:(%edi)
91    movsw (%si), %es:(%di)
92    movsl (%esi), %es:(%edi)
93    movsl (%si), %es:(%di)
94
95    cmpsb %es:(%edi), (%esi)
96    cmpsb %es:(%di), (%si)
97    cmpsw %es:(%edi), (%esi)
98    cmpsw %es:(%di), (%si)
99    cmpsl %es:(%edi), (%esi)
100    cmpsl %es:(%di), (%si)
101
102    scasb %es:(%edi)
103    scasb %es:(%di)
104    scasw %es:(%edi)
105    scasw %es:(%di)
106    scasl %es:(%edi)
107    scasl %es:(%di)
108
109    lodsb (%esi)
110    lodsb (%si)
111    lodsw (%esi)
112    lodsw (%si)
113    lodsl (%esi)
114    lodsl (%si)
115
116    stosb %es:(%edi)
117    stosb %es:(%di)
118    stosw %es:(%edi)
119    stosw %es:(%di)
120    stosl %es:(%edi)
121    stosl %es:(%di)
122
123    insb %dx,%es:(%edi)
124    insb %dx,%es:(%di)
125    insw %dx,%es:(%edi)
126    insw %dx,%es:(%di)
127    insl %dx,%es:(%edi)
128    insl %dx,%es:(%di)
129
130    outsb (%esi),%dx
131    outsb (%si),%dx
132    outsw (%esi),%dx
133    outsw (%si),%dx
134    outsl (%esi),%dx
135    outsl (%si),%dx
136
137    { es:di, fs:si }
138    movsb %fs:(%esi), %es:(%edi)
139    movsb %fs:(%si), %es:(%di)
140    movsw %fs:(%esi), %es:(%edi)
141    movsw %fs:(%si), %es:(%di)
142    movsl %fs:(%esi), %es:(%edi)
143    movsl %fs:(%si), %es:(%di)
144
145    cmpsb %es:(%edi), %fs:(%esi)
146    cmpsb %es:(%di), %fs:(%si)
147    cmpsw %es:(%edi), %fs:(%esi)
148    cmpsw %es:(%di), %fs:(%si)
149    cmpsl %es:(%edi), %fs:(%esi)
150    cmpsl %es:(%di), %fs:(%si)
151
152    scasb %es:(%edi)
153    scasb %es:(%di)
154    scasw %es:(%edi)
155    scasw %es:(%di)
156    scasl %es:(%edi)
157    scasl %es:(%di)
158
159    lodsb %fs:(%esi)
160    lodsb %fs:(%si)
161    lodsw %fs:(%esi)
162    lodsw %fs:(%si)
163    lodsl %fs:(%esi)
164    lodsl %fs:(%si)
165
166    stosb %es:(%edi)
167    stosb %es:(%di)
168    stosw %es:(%edi)
169    stosw %es:(%di)
170    stosl %es:(%edi)
171    stosl %es:(%di)
172
173    insb %dx,%es:(%edi)
174    insb %dx,%es:(%di)
175    insw %dx,%es:(%edi)
176    insw %dx,%es:(%di)
177    insl %dx,%es:(%edi)
178    insl %dx,%es:(%di)
179
180    outsb %fs:(%esi),%dx
181    outsb %fs:(%si),%dx
182    outsw %fs:(%esi),%dx
183    outsw %fs:(%si),%dx
184    outsl %fs:(%esi),%dx
185    outsl %fs:(%si),%dx
186  end;
187end.
188