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