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