20.04.2019, 02:18 [+3 UTC]
в нашей команде: 3 551 чел. | участники онлайн: 3 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.74 (12.04.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
09.03.2019, 10:08

Форум:
19.04.2019, 22:45

Последний вопрос:
19.04.2019, 18:03
Всего: 149309

Последний ответ:
19.04.2019, 21:38
Всего: 258211

Последняя рассылка:
19.04.2019, 17:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
08.02.2012, 16:34 »
Соколова Светлана
Спасибо большое! [вопрос № 185391, ответ № 269877]
08.01.2010, 14:02 »
Мироненко Николай Николаевич
Спасибо Вам большое за ответ :)) [вопрос № 175922, ответ № 258467]
08.07.2010, 14:11 »
Massimo
Большое спасибо Вам за помощь!!! [вопрос № 179438, ответ № 262461]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 502
Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 336
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 154

Перейти к консультации №:
 

Консультация онлайн # 195083
Раздел: • Assembler
Автор вопроса: mr.mad5 (Посетитель)
Отправлена: 30.03.2019, 10:24
Поступило ответов: 1

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

По запросу программы пользователь вводит с
клавиатуры целое положительное десятичное число N. По сле-
дующему запросу он вводит с клавиатуры N целых трехзначных
положительных десятичных чисел, разделенных пробелами.
Программа выводит последовательность этих же чисел, но
записанных в обратном порядке и в восьмеричной системе счис-
ления.

Состояние: Консультация закрыта

Здравствуйте, mr.mad5!

tasm, com-file.

Код (Assembler) :: выделить код
modeL	tiny,pascal
.code
org	100h
begin:	mov	ax,2
;Вводим количество
	mov	bx,1000
	call	inpNum,ax,bx,offset dbCount
;Запускаем цикл
	mov	cx,0
	call	main,ax,cx,bx
;Выходим из программы
	xor	ax,ax
	int	16h
	ret
dbCount		db	10,13,'Enter count:$'
dbNumber	db	10,13,'Enter number:$'
dbOctan		db	10,13,'Octan system:$'
;подпрограмма ввода числа
inpNum	proc	a:word,b:word,c:word
;a = minimum
;b = maximum
;c = message
	mov	ah,9
	mov	dx,c
	int	21h
	xor	di,di
	mov	si,10
@@01:	xor	ax,ax
	int	16h
	cmp	al,13
	jz	@@03
	cmp	al,'0'
	jb	@@01
	cmp	al,'9'
	ja	@@01
	xchg	ax,di
	xor	dx,dx
	mul	si
	cmp	ax,b
	jb	@@02
	div	si
	jmp	@@04
@@02:	xchg	ax,di
	push	ax
	int	29h
	pop	ax
	and	ax,0Fh
	add	di,ax
	jmp	@@01
@@03:	cmp	di,a
	jb	@@01
	mov	ax,di
@@04:	ret	
inpNum	endp
;подпрограмма вывода числа
outNum	proc	a:word,b:word,c:word
;a = number
;b = system
;с = message
	mov	ah,9
	mov	dx,c
	int	21h
	mov	si,b
	mov	ax,a
	xor	cx,cx
@@05:	xor	dx,dx
	div	si
	inc	cx
	push	dx
	or	ax,ax
	jnz	@@05
@@06:	pop	ax
	or	al,'0'
	int	29h
	loop	@@06
	ret
outNum	endp
;основной рекурсивный цикл
main	proc	a:word,b:word,c:word
;a = count
;b = minimum
;c = maximum
	call	inpNum,b,c,offset dbNumber
	push	ax
	mov	ax,a
	dec	ax
	jz	@@07
	call	main,ax,b,c
@@07:	pop	ax
	mov	bx,8
	call	outNum,ax,bx,offset dbOctan
	ret
main	endp
	end	begin

Удачи!


Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 02.04.2019, 19:58

5
Спасибо, огромное!!!
-----
Дата оценки: 03.04.2019, 17:43

Рейтинг ответа:

+1

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.15404 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.74 от 12.04.2019
Версия JS: 1.33 | Версия CSS: 3.35