Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 11034
∙ повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 4356
∙ повысить рейтинг »
Куликов Роман Евгеньевич
Статус: 1-й класс
Рейтинг: 0
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Assembler (Ассемблер)

Номер выпуска:1571
Дата выхода:19.10.2015, 16:21
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:16 / 7
Вопросов / ответов:1 / 1

Консультация # 188105: Здравствуйте! Прошу помощи в следующем вопросе: В ассемблере решить задачи Задание: 1. Входные данные записать в файл INPUT.TXT. Открыть этот файл для чтения, считать из него строку и, выполнив необходимые преобразования, записать результат в файл OUTPUT.TXT. При решении можно использовать функции и макросы. 2.Данные вводить с...


Консультация # 188105:

Здравствуйте! Прошу помощи в следующем вопросе:
В ассемблере решить задачи
Задание:
1. Входные данные записать в файл INPUT.TXT.
Открыть этот файл для чтения, считать из него строку и, выполнив необходимые преобразования,
записать результат в файл OUTPUT.TXT. При решении можно использовать функции и макросы.
2.Данные вводить с клавиатуры. Результат выводить
на экран. При решении использовать макросы.

Задача:
Дана строка и число n. Верно ли, что в ней есть по крайней мере n подряд идущих букв a?

т.е две задачи.

Дата отправки: 15.10.2015, 17:22
Вопрос задал: Попушой Екатерина (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Модератор):

Здравствуйте, Попушой Екатерина !

Код второго задания в приложении:

Код :
model tiny
maxStr	equ	200
;макрос чтения символа с клавиатуры
inpChar	macro
	xor	ax,ax
	int	16h
	endm
;макрос вывода строки
OutStr	macro
	mov	ah,9
	int	21h
	endm
;макрос ввода строки
inpStr	macro
	mov	ah,0ah
	int	21h
	endm
code
org	100h
begin:
;выводим сообщение о вводе строки
	lea	dx,dbEnterS
	OutStr
;вводим строку
	lea	dx,dbMax
	inpStr
;выводим сообщение о вводе числа
	lea	dx,dbEnterN
	OutStr
;вводим число
	xor	di,di;сбрасываем введенное число
	mov	bx,10;система счисления
;читаем один символ с клавиатуры без эхо
@@01:	inpChar
	cmp	al,13;клавиша ENTER
	jz	@@02;заканчисваем ввод
;проверяем диапазон цифровых клавиш
	cmp	al,'0'
	jl	@@01;нет повторяем ввод
	cmp	al,'9'
	ja	@@01
	int	29h;выводим введенную цифру
	and	ax,0fh;превращаем символ в число
	xchg	di,ax;обмениваем с ранее введенным числом
	xor	dx,dx
	mul	bx;умножаем на систему счисления
	add	di,axсуммируем
	jmp	@@01;повторяем ввод
;готовимся к проверке строк
@@02:	lea	si,dbStr;устанавливаем индексный регистр
	cld;напрвление для строковых команд
	mov	cl,dbLen;загружаем длину введенной строки
	xor	ch,ch
	xor	bx,bx;сбрасываем счетчик
	lea	dx,dbTrue;пока считаем , что верно
@@03:	lodsb;читаем один символ
	cmp	al,'a';проверяем "а"
	jnz	@@04;нет, переходим
	inc	bx;да увеличиваем счетчик
	cmp	di,bx;проверяем количество
	jz	@@06;да выходим из цикла
	jnz	@@05;нет- продолжаем цикл
@@04:	xor	bx,bx;сбрасываем счетчик
@@05:	loop	@@03;цикл проверки строки
	lea	dx,dbFalse;если тут, значит нет нужного количества букв"а"
@@06:	OutStr;выводим строку
	inpChar;ожидаем ввод и любуемся результатом
	ret;выход
dbEnterS	db	10,13,'Enter string:$'
dbEnterN	db	10,13,'Enter number:$'
dbTrue		db	10,13,'True$'
dbFalse		db	10,13,'False$'
dbMax		db	maxStr
dbLen		db	?
dbStr		db	maxStr dup(?)
	end	begin

ps:вопросы задавайте в минифоруме.
Удачи!

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 16.10.2015, 10:38
Рейтинг ответа:

НЕ одобряю +1 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное