Сохранение файлов ассемблера через команду cmd.

Тема в разделе "WASM.ASSEMBLER", создана пользователем Kroleg, 28 июн 2011.

  1. Kroleg

    Kroleg New Member

    Публикаций:
    0
    Регистрация:
    28 июн 2011
    Сообщения:
    7
    Суть проблемы: На диске D находится ассемблер в папке MASM611. В ней есть файл MASM.exe - "D:\MASM611\BIN\MASM.exe".
    Также на диске D в папке "Fc" расположен файл "LR3.ASM" (Я сперва создал в блокноте начальную программу и сохранив в формате "txt "поменял на "asm" ). Вот собственно начальная программа(прописанная в файле LR3.ASM):

    ;--------------------------------------------Поле стека -----------------
    sseg segment 'stack'
    db 128 dup (?)
    sseg ends
    ;--------------------------------------------Поля даних -----------------
    dseg segment 'data'
    text1 db 'Програма стартувала', 13, 10, '$'
    text2 db '((D^2-A)^2\D^2+B)-20 = $'
    A dw 0Ah
    B dw 4
    D dw -23; или -17h
    rez dw ?
    dseg ends
    ;--------------------------------------------Текст програми -------------
    cseg segment 'code'
    assume cs:cseg, ds:dseg, ss:sseg
    start proc far
    mov ax, dseg
    mov ds, ax
    ;-------------------------------------------------------------------------
    lea dx, text1
    call WrStr
    mov dx,offset text2
    call WrStr
    ;-------------------------------------------------------------------------
    mov ax,d
    imul ax
    mov bx,ax
    sub ax,A
    mul ax
    div bx
    add ax,b
    sub ax,20
    mov rez,ax
    ;-------------------------------------------------------------------------
    ;Вывод результата на экран
    mov bl,10
    div bl
    mov bh,ah
    cbw
    div bl
    mov dx,3030h
    add dx,ax
    mov ah, 02h
    Int 21h
    mov dl,dh
    int 21h
    mov dl,30h
    add dl,bh
    int 21h
    ;-------------------------------------------------------------------------
    mov ah,1; чтобы программа не закрывалась сразу
    int 21h; и можно было увидеть результат
    mov ah, 4ch
    Int 21h
    Start endp
    ;-------------------------------------------------------------------------
    WrStr proc near
    mov ah,09h
    int 21h
    ret
    WrStr endp
    ;-------------------------------------------------------------------------
    Cseg ends
    end start

    Потом я нажимаю "Пуск" - "Выполнить" - прописываю "cmd" и ввожу(вот всё видно на скриншоте, я пытался сохранить файл Lr3 в форматах asm, obj, lst) для дальнейшего листинга и компоновки. Но вот ошибка:
     
  2. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    540
    А если вручную запускать ml.exe? он вообще в bin есть?
     
  3. Kroleg

    Kroleg New Member

    Публикаций:
    0
    Регистрация:
    28 июн 2011
    Сообщения:
    7
    Да, есть там и ml.exe и link.exe и masm.exe.
     
  4. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    Это МАСМ611 (то есть полностью, на 99.9%, ДОС-программа, со всеми вытекающими). У вас текущий каталог на скриншоте d:. Масм вы вызываете с указанием полного пути. Очевидно, что ml.exe не находится. Придется вам сделать одно из 2-х:

    а) копировать ваш .asm в папку masm611\bin и запускать из этой папки все необходимое

    или

    б) прописать в путях masm611\bin
    ...и возможно заодно и \lib, и возможно переменную INCLUDE=masm611\include надо? руководство по установке и настройке читали? Как установить переменные ДОС-среды, знаете?
     
  5. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    540
    в) взять самый последний масм http://www.masm32.com/masmdl.htm (конечно, если дело происходит под Windows).