Как убрать мусор до строки
Добавлено: 13 сен 2009, 13:07
Здравствуйте! Я только начала изучать ассемблер, использую компилятор 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