Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как убрать мусор до строки, TASM 
V
    Опции темы
Alyonka_v
Дата 13.9.2009, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.12.2006
Где: Latvia, Daugavpil s

Репутация: нет
Всего: нет



Здравствуйте! Я только начала изучать ассемблер, использую компилятор Tasm (настоятельно рекомедовал преподаватель). Попыталась сделать задание: "запросить с клавиатуры строку символов (не более 80 символов) и вывести ее в центе экрана (y = 13, x = (80 – L)/2, где L – количество символов в строке) ", но до строки выводит еще кучу всяких символов=( Подскажите, пожалуйста, что нужно исправить, чтобы программа работала корректно.


Код
.MODEL small
.STACK 200h
.DATA
StringBuffer  DB  80, ?, 81 dup (?)
.CODE
ProgramStart: mov ax, @DATA 
              mov ds, ax
              mov ah, 0Fh                  ;определение номера текущего видеорежима
              int 10h
              mov ah, 00h                  ;устанавливание видеорежима с тем же номером как и текущий  
              int 10h
              mov ah, 0ah                  ;запрашивание у пользователя строки
          int 21h
              mov ah, 0Fh                  ;очистка экрана
              int 10h                  
              mov ah, 00h                   
              int 10h                        
              mov ax, 80                   ;координата X для выводимой строки – x =(80-L)/2
              sub AL, StringBuffer[1]
              mov bl, 2
              div BL
              mov ah, 02h                  ;перемещение курсора в выбранную позицию на экране
              int 10h
              mov bh, 0            
              mov bl, StringBuffer[1]      ;ограничительный символ $ поместить в конец введенной строки 
              mov bh, 0
              add bx, 2
              mov StringBuffer[BX], '$'
              mov ah, 09h                  ;вывод строки на экран 
              int 21h                     
              mov ah, 0                    ;пауза до нажатия любой клавиши
              int 16h
              mov ah, 4Ch                  ;завершение работы программы
              int 21h
END ProgramStart

PM MAIL WWW ICQ   Вверх
Alyonka_v
Дата 13.9.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 23.12.2006
Где: Latvia, Daugavpil s

Репутация: нет
Всего: нет



Извините за беспокойство, нашла свою ошибку
PM MAIL WWW ICQ   Вверх
СЭНСЭЙ
Дата 23.10.2009, 12:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Так расскажи нам в чем ошибка!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0946 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.