;начало проги OutStr macro str ;макрос вывода строки push dx mov ah,09h lea dx,str int 21h pop dx endm ;-------- .model small .code org 100h begin: jmp start ; описание переменных Return db '',10,13,'$' Hello db 'Vvedite stroku:',10,13,'$' param label byte ;Список параметров для int 21h maxlen db 32 ;Максимальная длина вводимой строки - 32 символа reallen db ? ;Реальная длина string db 32 dup (' '),'$' ;Введенные символы stringOut db 32 dup (' '),'$' ;Выводимые символы ;--------------------- начало программы start: OutStr Hello ;приглашение к вводу mov ah,0Ah ;функция DOS считывания строки, param - параметры ввода lea dx,param int 21h OutStr return ;перевод строки xor cx,cx xor ax,ax xor bx,bx ;bx - индекс очередного символа для обработки ;(равен cx(уменьшается) при считывании и увел. при записи в строку) mov cl,reallen ;в cx - размер строки для цикла обработки loopLabel: push bx ;сохраняем индекс записи mov bx,cx ;и записываем в bx индекс чтения mov al,string[bx] pop bx mov stringOut[bx],al ;запись в выходную строку inc bx ;увеличим индекс чтения dec cx cmp cx,0 jge loopLabel OutStr stringOut ;вывод результата на экран ;[***выход***] exit: mov ax,4C00h int 21h END BEGIN ;конец проги ---- P.s.: Скачал этот файл вместе с уже скомпилированным файлом, но не знаю как скомпилировать, т.к. выдаёт ошибки: warning A4023: with /coff switch, leading underscore required for start address: begin. Слышал, что нужен старый MASM32, т.к. в новом нельзя сделать com-файлы Пожалуйста, помогите отладить эту программу, чтобы компилировалась.