powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Перевод чисел комменты
3 сообщений из 3, страница 1 из 1
Перевод чисел комменты
    #34462143
The_answer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ! есть готовая рабочая задача. Одно плохо. не моя. А сдавать надо. Ниже кидаю исходник, поставте ктог ниб какие пояснения в ней. Заранее спасибо. Я бы и сам разбирался да времени нет совсем
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
.model	small
. 386 
.stack	100h
.data
	n	dw 	 0 
	sign	db	 0 
.code

locals

main proc
	mov	ax, @data
	mov	ds, ax
	mov	es, ax
	
	call	enternumber
	
	call	outbinnumber
	call	linereturn
	call	outhexnumber
	call	linereturn
	call	outdecnumber
	
	mov	ax, 4c00h
	int	21h
main endp

enternumber proc
	push	ax
	
	mov	n,  0 
@@again:	
	mov	ah, 0Ch
	mov	al,  8 
	int	21h
	cmp	al,  13 
	jnz	@@notcr
	jmp	@@exit
@@notcr:
	cmp	al,  8 
	jnz	@@notbs
	call	backspace
	jmp	@@again
@@notbs:
	cmp	al, 'b'
	jz	@@bin
	cmp	al, 'B'
	jnz	@@notbin
@@bin:
	call	enterbinnumber
	cmp	al,  13 
	jnz	@@again
	jmp	@@exit
	
@@notbin:
	cmp	al, 'h'
	jz	@@hex
	cmp	al, 'H'
	jnz	@@nothex
@@hex:
	call	enterhexnumber
	cmp	al,  13 
	jnz	@@again
	jmp	@@exit
@@nothex:
	cmp	al, '-'
	jnz	@@notsign
	call	entersdecnumber
	cmp	al,  13 
	jnz	@@again
	jmp	@@exit
@@notsign:
	cmp	al, '0'
	jl	@@again
	cmp	al, '9'
	jg	@@again
	call	enterdecnumber
	cmp	al,  13 
	jnz	@@again
@@exit:	
	pop	ax
	
	ret
enternumber endp

enterbinnumber proc
	push	bx
	push	cx
	push	dx
	
	mov	cx,  1 
	
	mov	ah,  2 
	mov	dl, al
	int	21h
	
@@again:
	mov	ah, 0Ch
	mov	al,  8 
	int	21h
	cmp	al,  13 
	jnz	@@notret
	call	linereturn
	jmp	@@exit
@@notret:
	cmp	al,  8 
	jnz	@@notbs
	call	backspace
	cmp	n,  0 
	jz	@@niszero
	mov	bx, n
	shr	bx,  1 
	mov	n, bx
@@niszero:
	dec	cx
	jnz	@@again
	jmp	@@exit
@@notbs:
	cmp	al, '0'
	jl	@@again
	cmp	al, '1'
	jg	@@again
	
	clc
	mov	bx, n
	shl	bx,  1 
	jc	@@again
	
	mov	ah,  2 
	mov	dl, al
	int	21h
	
	sub	al, '0'
	jz	@@zero
	or	bl, al
@@zero:
	mov	n, bx
	inc	cx	
	jmp	@@again
@@exit:	

	pop	dx
	pop	cx
	pop	bx
	
	ret
enterbinnumber endp

enterhexnumber proc
	push	bx
	push	cx
	push	dx
	
	mov	cx,  1 
	
	mov	ah,  2 
	mov	dl, al
	int	21h
@@again:
	mov	ah, 0Ch
	mov	al,  8 
	int	21h
	cmp	al,  13 
	jnz	@@notret
	call	linereturn
	jmp	@@exit
@@notret:
	cmp	al,  8 
	jnz	@@notbs
	call	backspace
	cmp	n,  0 
	jz	@@niszero
	mov	bx, n
	shr	bx,  4 
	mov	n, bx
@@niszero:
	dec	cx
	jnz	@@again
	jmp	@@exit
@@notbs:
	cmp	al, '0'
	jl	@@again
	cmp	al, '9'
	jle	@@allright
	cmp	al, 'A'
	jl	@@again
	cmp	al, 'F'
	jle	@@allright
	cmp	al, 'a'
	jl	@@again
	cmp	al, 'f'
	jg	@@again
@@allright:
	clc
	mov	bx, n
	push	cx
	mov	cx,  4 
@@notcarry:
	shl	bx,  1 
	jnc	@@continue
	pop	cx
	jmp	@@again
@@continue:	
	loop	@@notcarry
	pop	cx
	
	mov	ah,  2 
	mov	dl, al
	int	21h
	
	sub	al, '0'
	jz	@@zero
	cmp	al,  9 
	jle	@@le
	sub	al,  7 
@@le:
	or	bl, al
@@zero:
	mov	n, bx
	inc	cx
	jmp	@@again
@@exit:	
	pop	dx
	pop	cx
	pop	bx
	
	ret
enterhexnumber endp

enterdecnumber proc
	push	bx
	push	cx
	push	dx
	
	mov	cx,  1 
		
	mov	ah,  2 
	mov	dl, al
	int	21h

	xor	ah, ah
	mov	n, ax
	sub	n, '0'
	mov	sign,  0 
@@again:
	mov	ah, 0Ch
	mov	al,  8 
	int	21h
	cmp	al,  13 
	jnz	@@notret
	call	linereturn
	jmp	@@exit
@@notret:
	cmp	al,  8 
	jnz	@@notbs
	call	backspace
	cmp	n,  0 
	jz	@@niszero
	xor	dx, dx
	mov	ax, n
	mov	bx,  10 
	div	bx
	mov	n, ax
@@niszero:
	dec	cx
	jnz	@@again
	jmp	@@exit
@@notbs:
	cmp	al, '0'
	jl	@@again
	cmp	al, '9'
	jg	@@again
	
	clc
	xor	ah, ah
	push	ax
	mov	ax, n
	mov	bx,  10 
	mul	bx
	or	dx, dx
	jz	@@notcarry
	pop	bx
	jmp	@@again
@@notcarry:
	pop	bx
	sub	bl, '0'
	add	ax, bx
	jc	@@again
	mov	n, ax
	mov	ah,  2 
	add	bl, '0'
	mov	dl, bl
	int	21h
	inc	cx
	jmp	@@again
@@exit:	
	pop	dx
	pop	cx
	pop	bx
	
	ret
enterdecnumber endp

entersdecnumber proc
	push	bx
	push	cx
	push	dx
	
	mov	cx,  1 
		
	mov	ah,  2 
	mov	dl, al
	int	21h

	mov	sign,  1 
@@again:
	mov	ah, 0Ch
	mov	al,  8 
	int	21h
	cmp	al,  13 
	jnz	@@notret
	call	linereturn
	jmp	@@exit
@@notret:
	cmp	al,  8 
	jnz	@@notbs
	call	backspace
	cmp	n,  0 
	jz	@@niszero
	xor	dx, dx
	mov	ax, n
	mov	bx,  10 
	div	bx
	mov	n, ax
@@niszero:
	dec	cx
	jnz	@@again
	jmp	@@exit
@@notbs:
	cmp	al, '0'
	jl	@@again
	cmp	al, '9'
	jg	@@again
	
	clc
	xor	ah, ah
	push	ax
	mov	ax, n
	mov	bx,  10 
	mul	bx
	or	dx, dx
	jz	@@notcarry
	pop	bx
	jmp	@@again
@@notcarry:
	pop	bx
	sub	bl, '0'
	add	ax, bx
	js	@@again
	mov	n, ax
	mov	ah,  2 
	add	bl, '0'
	mov	dl, bl
	int	21h
	inc	cx
	jmp	@@again
@@exit:	
	neg	n
	pop	dx
	pop	cx
	pop	bx
	
	ret
entersdecnumber endp

outbinnumber proc
	push	ax
	push	cx
	push	dx
	
	mov	ah,  2 
	mov	cx,  16 
	
	cmp	n,  0 
	jnz	@@notzero
	mov	dl, '0'
	int	21h
	jmp	@@exit
@@notzero:
	rol	n,  1 
	jc	@@carry
	loop	@@notzero
@@carry:
	ror	n,  1 
@@out:
	xor	dl, dl
	rol	n,  1 
	adc	dl, '0'
	int	21h
	loop	@@out
@@exit:	
	mov	dl, 'b'
	int	21h

	pop	dx
	pop	cx
	pop	ax

	ret
outbinnumber endp

outhexnumber proc
	push	ax
	push	bx
	push	cx
	push	dx
	
	mov	ah,  2 
	mov	cx,  4 
	
	cmp	n,  0 
	jnz	@@notzero
	mov	dl, '0'
	int	21h
	jmp	@@exit
@@notzero:	
	mov	bx, n
	shr	bx,  12 
	or	bx, bx
	jnz	@@out
	shl	n,  4 
	dec	cx
	jmp	@@notzero
@@out:		
	rol	n,  4 
	mov	dx, n
	and	dx, 0Fh
	add	dl, '0'
	
	cmp	dl, '9'
	jle	@@le
	add	dl,  7 
	
@@le:	int	21h
	loop	@@out
@@exit:	
	mov	dl, 'h'
	int	21h

	pop	dx
	pop	cx
	pop	bx
	pop	ax
	
	ret
outhexnumber endp

outdecnumber proc
	push	ax
	push	bx
	push	cx
	push	dx
	
	mov	ax, n
	
	or	ax, ax
	jnz	@@nisnotzero
	mov	ah,  2 
	mov	dl, '0'
	int	21h
	jmp	@@exit
@@nisnotzero:	
	cmp	sign,  0 
	jz	@@positive
	call	outminus
	neg	ax
@@positive:
	xor	cx, cx
	mov	bx,  10 
@@notzero:
	xor	dx, dx
	div	bx
	push	dx
	inc	cx

	or	ax, ax
	jnz	@@notzero

	mov	ah,  2 
@@out:
	pop	dx
	add	dl, '0'
	int	21h
	loop	@@out
@@exit:	
	mov	dl, 'd'
	int	21h
	
	pop	dx
	pop	cx
	pop	bx
	pop	ax
	
	ret
outdecnumber endp

linereturn proc
	pusha
	
	mov	ah,  2 
	
	mov	dl,  10 
	int	21h
	mov	dl,  13 
	int	21h
	
	popa
	
	ret
linereturn endp

outminus proc
	push	ax
	push	dx
	
	mov	ah,  2 
	
	mov	dl, '-'
	int	21h
	
	pop	dx
	pop	ax
	
	ret
outminus endp

sound proc
	push ax
	push dx
	
	mov ah,  2 
	
	mov dl,  7 
	int 21h
	
	pop dx
	pop ax
	
	ret
sound endp

backspace proc
	push ax
	push dx
	
	mov ah,  2 
	mov dl,  8 
	int 21h
	mov dl,  0 
	int 21h
	mov dl,  8 
	int 21h
	
	pop dx
	pop ax
	
	ret
backspace endp

end main
...
Рейтинг: 0 / 0
Перевод чисел комменты
    #34462314
madvet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шутник :)
...
Рейтинг: 0 / 0
Перевод чисел комменты
    #34462374
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько стоит дегег?
--



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Перевод чисел комменты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]