WMmail.ru - сервис почтовых рассылок

вторник, 17 ноября 2015 г.

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

 
Если выпуск не отображается, вы можете прочесть его на сайте
  
  
Высшее - дистанционно! Учись из дома! Гос.Диплом! Планшет с бесплатным интернетом - всем!
  

  
Ішґль готовий до зими! Ішґль готовий до зими!
ЗУСТРІЧАЄМО ЗИМУ РАЗОМ З НАЙКРАЩИМИ ГІРСЬКОЛИЖНИМИ КУРОРТАМИ АВСТРІ

  Высшее образование - онлайн! Высшее образование - онлайн!
Учись дистанционно в МТИ! Акция! Госдиплом! Планшет при поступлении!

  Брюки Steilmann Брюки Steilmann
Всего за 3560 рублей в интернет-магазине X-MODA.RU

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

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

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

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

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

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

Консультация # 188200: Уважаемые эксперты! Пожалуйста, ответьте на вопрос: помогите доделать программу, внизу код программы что смог сам сделать, не получается сделать задержку и очистку, помогите, или другой код программы дайте, срочно нужно задание: Вывести несколько строк произвольного текста, содержащие лишь латинские буквы. Каждые 10 секунд заглавные буквы ...


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

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
помогите доделать программу, внизу код программы что смог сам сделать, не получается сделать задержку и очистку, помогите, или другой код программы дайте, срочно нужно
задание:
Вывести несколько строк произвольного текста, содержащие лишь латинские буквы. Каждые 10 секунд заглавные буквы сменяются строчными и т. д.


data segment
massbol db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','$'
massmal db 'abcdefghijklmnopqrstuvwxyz','$'
message db 'Vvedite proizvolnyi text ili nabor simvolov,lish v latinic:',0ah,'$'
stroka db 80 dup('$'),'$'
pust db 80 dup('$'),'$'
data ends
code segment
assume cs:code,ds:data


begin:mov ax,data
mov ds,ax
lea dx,message
mov ah,09h
int 21h
lea dx,stroka
mov ah,0ah
int 21h


lea si,stroka+2
xor cx,cx
mov cl,stroka+1
beg:
xor sp,sp
mov sp,26
lea di,massbol
lea bx,massmal
verh:
mov ah,[si]
mov al,[di]
cmp ah,al
jne da1
mov dl,[bx]
da1:
mov ah,[si]
mov al,[bx]
cmp ah,al
jne da2
mov dl,[di]
da2:
inc di
inc bx
dec sp
cmp sp,0
jne verh
mov ah,02h
int 21h
inc si
loop beg

quit:mov ax,4c00h
int 21h
code ends
end begin

если можно, с комментариями эту исправить, т.к. это я писал для компилятора emu8086

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


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

Здравствуйте, Посетитель - 399158!
Строки с большими и малыми буквами лишние.
Они отличаются значением 20h.
Этим и воспользуемся...

Код :
data		segment  message 	db	'Vvedite proizvolnyi text ili nabor simvolov,lish v latinic:',0dh,0ah,'$'  stroka 	db 	80,0,80 dup(?)		;для функции 0ah требуется указать в первом байте   							;длину буфера, во втором будет реальная длина  data 	ends    code 	segment  assume cs:code,ds:data    begin:  	mov 	ax,data  	mov 	ds,ax  	lea 	dx,message  	mov 	ah,09h  	int	21h  	lea	dx,stroka  	mov 	ah,0ah  	int 	21h					;ввели строку    	mov	dl,0ah  	mov	ah,2  	int	21h					;перейдем на новую строку    	lea 	si,stroka+2			;все правильно - имеем адрес самой строки  	mov	dx,si				;сохраним для вывода, все замены сделаем на месте  	xor 	cx,cx				;счетчик байт  	mov 	cl,stroka+1			;реальное количество введенных байт  	mov	ah,20h				;большие и малые буквы отличаются этим битом!  							;будем превращать их друг в друга xor-я с этим байтом!   beg:  	mov 	al,[si]				;читаем очередной байт  	xor	al,ah				;превращаем одного в другого (и неважно, какой он был!)  	mov	[si],al				;возвращаем на место  	inc 	si					;адрес следующего  	loop	beg					;цикл по всем    	mov	byte ptr [si],'$'		;закрываем строку для функции 9  	mov	ah,9	  	int	21h					;выводим    	mov	ah,0  	int	16h					;ждем нажатие на клавишу    	mov ax,4c00h  	int 21h  code ends  end begin  

Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 17.11.2015, 00:24
Рейтинг ответа:

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


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

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

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

 
     Прошлые выпуски
RFpro.ru: Ассемблер? Это просто! Учимся программироватьRFpro.ru: Ассемблер? Это просто! Учимся программироватьRFpro.ru: Ассемблер? Это просто! Учимся программироватьВсе выпуски рассылки
 
 
Subscribe.Ru / АО «Интернет-Проекты» / О компании / Политика конфиденциальности

Комментариев нет:

Отправить комментарий