Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как убрать мусор до строки

48K
13 сентября 2009 года
Alyonka89
7 / / 17.08.2009
Здравствуйте! Я только начала изучать ассемблер, использую компилятор 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
48K
13 сентября 2009 года
Alyonka89
7 / / 17.08.2009
Извините за беспокойство, нашла свою ошибку
10K
13 сентября 2009 года
palevo060
144 / / 05.09.2009
Хочу установить себе TASM. Нужно узнать что в батнике писать.
У тебе есть *.bat файл для компиляции твоих програм на TASM. Что у тебя там написано?

например У меняв MASM32

d:\masm32\bin\ml.exe /c /coff D:\win32asm\CONTROLS\1.asm
d:\masm32\bin\link16.exe D:\win32asm\CONTROLS\1.obj ,,NUL,,,
exe2bin 1.exe 1.com
pause

да И какая версия у тебя?
14K
14 сентября 2009 года
shoorick
48 / / 07.06.2006
tasm m.asm
tlink m.obj (для exe)
tlink /t m.obj (для com, для соm должна быть .model tiny)

для dos и масма /coff не нужен
10K
14 сентября 2009 года
palevo060
144 / / 05.09.2009
Пасиб
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог