File tree Expand file tree Collapse file tree 7 files changed +594
-585
lines changed
Expand file tree Collapse file tree 7 files changed +594
-585
lines changed Original file line number Diff line number Diff line change @@ -7,6 +7,14 @@ FOR_PRINT DW ?
77CR EQU 0DH
88LF EQU 0AH
99NEWLINE DB CR , LF , '$'
10+ i dw ?
11+ j dw ?
12+ k dw ?
13+ l dw ?
14+ m dw ?
15+ n dw ?
16+ o dw ?
17+ p dw ?
1018
1119.CODE
1220
@@ -91,193 +99,192 @@ MOV AX, @DATA
9199MOV DS , AX
92100PUSH BP
93101MOV BP , SP
94- SUB SP , 60
95-
102+ SUB SP , 44
96103; i=1;
97- MOV WORD PTR [ bp - 18 ], 1
98- MOV CX ,[ bp - 18 ]
99- MOV WORD PTR [ bp - 2 ] ,CX
104+ MOV WORD PTR [ bp - 2 ], 1
105+ MOV CX ,[ bp - 2 ]
106+ MOV i , CX
100107
101108; printf(i);
102- MOV AX ,[ bp - 2 ]
109+ MOV AX , i
103110MOV FOR_PRINT , AX
104111CALL OUTPUT
105112; j=5+8;
106- MOV WORD PTR [ bp - 20 ], 5
107- MOV AX ,[ bp - 20 ]
108- MOV WORD PTR [ bp - 24 ], AX
109- MOV WORD PTR [ bp - 22 ], 8
110- MOV AX ,[ bp - 24 ]
111- ADD AX ,[ bp - 22 ]
112- MOV WORD PTR [ bp - 26 ], AX
113- MOV CX ,[ bp - 26 ]
114- MOV WORD PTR [ bp - 4 ] ,CX
113+ MOV WORD PTR [ bp - 4 ], 5
114+ MOV AX ,[ bp - 4 ]
115+ MOV WORD PTR [ bp - 8 ], AX
116+ MOV WORD PTR [ bp - 6 ], 8
117+ MOV AX ,[ bp - 8 ]
118+ ADD AX ,[ bp - 6 ]
119+ MOV WORD PTR [ bp - 10 ], AX
120+ MOV CX ,[ bp - 10 ]
121+ MOV j , CX
115122
116123; printf(j);
117- MOV AX ,[ bp - 4 ]
124+ MOV AX , j
118125MOV FOR_PRINT , AX
119126CALL OUTPUT
120127; k=i+2*j;
121128
122- MOV AX ,[ bp - 2 ]
123- MOV WORD PTR [ bp - 34 ], AX
124- MOV WORD PTR [ bp - 28 ], 2
125- MOV CX ,[ bp - 28 ]
126- MOV WORD PTR [ bp - 30 ], CX
129+ MOV AX , i
130+ MOV WORD PTR [ bp - 18 ], AX
131+ MOV WORD PTR [ bp - 12 ], 2
132+ MOV CX ,[ bp - 12 ]
133+ MOV WORD PTR [ bp - 14 ], CX
127134
128- MOV CX ,[ bp - 30 ]
135+ MOV CX ,[ bp - 14 ]
129136MOV AX , CX
130- IMUL WORD PTR [ bp - 4 ]
131- MOV WORD PTR [ bp - 32 ], AX
132- MOV AX ,[ bp - 34 ]
133- ADD AX ,[ bp - 32 ]
134- MOV WORD PTR [ bp - 36 ], AX
135- MOV CX ,[ bp - 36 ]
136- MOV WORD PTR [ bp - 6 ] ,CX
137+ IMUL j
138+ MOV WORD PTR [ bp - 16 ], AX
139+ MOV AX ,[ bp - 18 ]
140+ ADD AX ,[ bp - 16 ]
141+ MOV WORD PTR [ bp - 20 ], AX
142+ MOV CX ,[ bp - 20 ]
143+ MOV k , CX
137144
138145; printf(k);
139- MOV AX ,[ bp - 6 ]
146+ MOV AX , k
140147MOV FOR_PRINT , AX
141148CALL OUTPUT
142149; l=k/3;
143150
144- MOV CX ,[ bp - 6 ]
151+ MOV CX , k
145152CWD
146- MOV WORD PTR [ bp - 40 ], CX
147- MOV WORD PTR [ bp - 38 ], 3
148- MOV CX ,[ bp - 40 ]
153+ MOV WORD PTR [ bp - 24 ], CX
154+ MOV WORD PTR [ bp - 22 ], 3
155+ MOV CX ,[ bp - 24 ]
149156MOV AX , CX
150- IDIV WORD PTR [ bp - 38 ]
151- MOV WORD PTR [ bp - 42 ], AX
152- MOV CX ,[ bp - 42 ]
153- MOV WORD PTR [ bp - 8 ] ,CX
157+ IDIV WORD PTR [ bp - 22 ]
158+ MOV WORD PTR [ bp - 26 ], AX
159+ MOV CX ,[ bp - 26 ]
160+ MOV l , CX
154161
155162; printf(l);
156- MOV AX ,[ bp - 8 ]
163+ MOV AX , l
157164MOV FOR_PRINT , AX
158165CALL OUTPUT
159166; m=k%9;
160167
161- MOV CX ,[ bp - 6 ]
168+ MOV CX , k
162169CWD
163- MOV WORD PTR [ bp - 46 ], CX
164- MOV WORD PTR [ bp - 44 ], 9
165- MOV CX ,[ bp - 46 ]
170+ MOV WORD PTR [ bp - 30 ], CX
171+ MOV WORD PTR [ bp - 28 ], 9
172+ MOV CX ,[ bp - 30 ]
166173MOV AX , CX
167- IDIV WORD PTR [ bp - 44 ]
168- MOV WORD PTR [ bp - 48 ], DX
169- MOV CX ,[ bp - 48 ]
170- MOV WORD PTR [ bp - 10 ] ,CX
174+ IDIV WORD PTR [ bp - 28 ]
175+ MOV WORD PTR [ bp - 32 ], DX
176+ MOV CX ,[ bp - 32 ]
177+ MOV m , CX
171178
172179; printf(m);
173- MOV AX ,[ bp - 10 ]
180+ MOV AX , m
174181MOV FOR_PRINT , AX
175182CALL OUTPUT
176183; n=m<=l;
177184
178185
179- MOV AX ,[ bp - 10 ]
180- CMP AX ,[ bp - 8 ]
186+ MOV AX , m
187+ CMP AX , l
181188jle L0
182- MOV WORD PTR [ bp - 50 ], 0
189+ MOV WORD PTR [ bp - 34 ], 0
183190JMP L1
184191L0:
185- MOV WORD PTR [ bp - 50 ], 1
192+ MOV WORD PTR [ bp - 34 ], 1
186193L1:
187194
188- MOV CX ,[ bp - 50 ]
189- MOV WORD PTR [ bp - 12 ] ,CX
195+ MOV CX ,[ bp - 34 ]
196+ MOV n , CX
190197
191198; printf(n);
192- MOV AX ,[ bp - 12 ]
199+ MOV AX , n
193200MOV FOR_PRINT , AX
194201CALL OUTPUT
195202; o=i!=j;
196203
197204
198- MOV AX ,[ bp - 2 ]
199- CMP AX ,[ bp - 4 ]
205+ MOV AX , i
206+ CMP AX , j
200207jne L2
201- MOV WORD PTR [ bp - 52 ], 0
208+ MOV WORD PTR [ bp - 36 ], 0
202209JMP L3
203210L2:
204- MOV WORD PTR [ bp - 52 ], 1
211+ MOV WORD PTR [ bp - 36 ], 1
205212L3:
206213
207- MOV CX ,[ bp - 52 ]
208- MOV WORD PTR [ bp - 14 ] ,CX
214+ MOV CX ,[ bp - 36 ]
215+ MOV o , CX
209216
210217; printf(o);
211- MOV AX ,[ bp - 14 ]
218+ MOV AX , o
212219MOV FOR_PRINT , AX
213220CALL OUTPUT
214221; p=n||o;
215222
216223
217- CMP [ bp - 12 ] ,0
224+ CMP n , 0
218225JNE L4
219- CMP [ bp - 14 ] ,0
226+ CMP o , 0
220227JNE L4
221- MOV WORD PTR [ bp - 54 ], 0
228+ MOV WORD PTR [ bp - 38 ], 0
222229JMP L5
223230L4:
224- MOV WORD PTR [ bp - 54 ], 1
231+ MOV WORD PTR [ bp - 38 ], 1
225232L5:
226233
227- MOV CX ,[ bp - 54 ]
228- MOV WORD PTR [ bp - 16 ] ,CX
234+ MOV CX ,[ bp - 38 ]
235+ MOV p , CX
229236
230237; printf(p);
231- MOV AX ,[ bp - 16 ]
238+ MOV AX , p
232239MOV FOR_PRINT , AX
233240CALL OUTPUT
234241; p=n&&o;
235242
236243
237- CMP [ bp - 12 ] ,0
244+ CMP n , 0
238245JE L6
239- CMP [ bp - 14 ] ,0
246+ CMP o , 0
240247JE L6
241- MOV WORD PTR [ bp - 56 ], 1
248+ MOV WORD PTR [ bp - 40 ], 1
242249JMP L7
243250L6:
244- MOV WORD PTR [ bp - 56 ], 0
251+ MOV WORD PTR [ bp - 40 ], 0
245252L7:
246253
247- MOV CX ,[ bp - 56 ]
248- MOV WORD PTR [ bp - 16 ] ,CX
254+ MOV CX ,[ bp - 40 ]
255+ MOV p , CX
249256
250257; printf(p);
251- MOV AX ,[ bp - 16 ]
258+ MOV AX , p
252259MOV FOR_PRINT , AX
253260CALL OUTPUT
254261; p++;
255262
256- MOV AX ,[ bp - 16 ]
257- MOV WORD PTR [ bp - 58 ], AX
258- INC WORD PTR [ bp - 16 ]
263+ MOV AX , p
264+ MOV WORD PTR [ bp - 42 ], AX
265+ INC p
259266
260267; printf(p);
261- MOV AX ,[ bp - 16 ]
268+ MOV AX , p
262269MOV FOR_PRINT , AX
263270CALL OUTPUT
264271; k=-p;
265272
266- NEG WORD PTR [ bp - 16 ]
267- MOV CX ,[ bp - 16 ]
268- MOV WORD PTR [ bp - 6 ] ,CX
273+ NEG WORD PTR [ bp -]
274+ MOV CX ,- p
275+ MOV k , CX
269276
270277; printf(k);
271- MOV AX ,[ bp - 6 ]
278+ MOV AX , k
272279MOV FOR_PRINT , AX
273280CALL OUTPUT
274281; return 0;
275- MOV WORD PTR [ bp - 60 ], 0
276- MOV AX ,[ bp - 60 ]
282+ MOV WORD PTR [ bp - 44 ], 0
283+ MOV AX ,[ bp - 44 ]
277284JMP L_main
278285
279286L_main:
280- ADD SP , 60
287+ ADD SP , 44
281288POP BP
282289
283290;DOS EXIT
Original file line number Diff line number Diff line change 1- int main (){
1+ int i ,j ,k ,l ,m ,n ,o ,p ;
2+ int main (){
23
3- int i , j , k , l , m , n , o , p ;
4+
45
56 i = 1 ;
67 println (i );
You can’t perform that action at this time.
0 commit comments