Отладка программы для инверсии строки

Тема в разделе "WASM.BEGINNERS", создана пользователем Gin, 12 май 2007.

  1. Gin

    Gin New Member

    Публикаций:
    0
    Регистрация:
    12 май 2007
    Сообщения:
    2
    ;начало проги

    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-файлы
    Пожалуйста, помогите отладить эту программу, чтобы компилировалась.