Ошибка компиляции в VS 2010 - Assembler
Формулировка задачи:
Здравствуйте. Только начал учиться ассемблеру, до этого программировали на первом курсе на С, так вот на втором курсе нам дали ассмблер еще в довесок. Программируем на массом32, сел я значит разбираться с лабораторной,есть пример программы, я настроил проект(по инструкции,вроде все правильно). Сел я писать свою программу,хотя и не очень получается, а потом решил скомпилировать уже готовый пример и посмотреть на это чудо. Начал компиляцию,а он мне выдал ошибку и что с ней делать не понятно. Текст ошибки:
1Гугл по этому поводу молчит, либо я плохо гуглил,так вот,что это за ошибка и как избавиться от нее? На отрез не хочет компилировать программу. Текст самой программы:
Подскажите люди добрые
>------ Построение начато: проект: Лаба, Конфигурация: Debug Win32 ------ 1>Построение начато 11.10.2016 14:46:15. 1>InitializeBuildStatus: 1> Создание "Debug\Лаба.unsuccessfulbuild", так как было задано "AlwaysCreate". 1>_MASM: 1> Assembling [Inputs]... 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\masm.targets(49,5): error MSB3721: выход из команды "ml.exe /c /nologo /Sg /Zi /Fo"Debug\Лаба.obj" /Fl"«Лаба.lst" /W3 /errorReport:prompt /Ta"Лаба.asm"" с кодом "1". 1> 1>СБОЙ построения. 1> 1>Затраченное время: 00:00:00.25 ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall;Модель памяти плоская, стандартный вызов процедуры ;option casemap:none;Режим при котором заглавные и строчные буквы не различаются ;comment * ----------------------------------------------------- ;Условие задачи:Вычислить арифметические выражения для x и y. Вычисления в словах. .XLIST include \masm32\include\masm32rt.inc;Обеспечивает подключение всех необходимых функций и ;макросов. .LIST ;Директивы .XLIST и .LIST обеспечивают правильное формирование листинга программы .DATA a dw -3 b dw 5 c1 dw 2 .DATA? x dw ? y dw ? ; Выражения для Х и У ; a^2-b^3+3*c1 b^3-x/4 ; x:= ------------; y:= --------; ; 2*a^2-8 a ; .CODE lab1: mov ax,a;ax=-3 imul a ;ax=a^2=9 mov bx,ax ;Сохраняем a^2 в bx=a^2=9 mov ax,b;ax=5 imul b;ax=b^2=25 imul b;ax=b^3=125 mov cx,ax;Сохраняем b^3 в cx=b^3=125 mov ax,3;ax=3 imul c1;ax=c1*3=6 add ax,bx;ax=a^2+c*3=15 sub ax,cx ;ax=a^2-b^3+3*c=-110, числитель а ax. sal bx,1 ;bx=2*a^2=18 sub bx,8 ;bh=2*a^2-8=10, Знаменатель в bx. cwd ;ax->(dx:ax), расширяем ax до (dx:ax) idiv bx; ax=-11 mov x,ax; x=-11. ;Вычисляем y mov bx,4 cwd idiv bx;ax=x/4=-2 ;mov ax,x ;sar ax,2;al=x/4=-2 neg ax;ax=-ax=2; add ax,cx;ax=b^3-c/4=127, числитель у ;расширяем ax до (dx:ax) cwd idiv a;ax=ax/a=-42 mov y,ax;y=-42. ;ret exit end lab1
Решение задачи: «Ошибка компиляции в VS 2010»
textual
Листинг программы
.model flat .data a db 0ffh b db 000h x dw ? ; число со знаком .code public main main proc ; короткий путь mov ax, word ptr a xor al, ah mov a, al jmp short quit ; длинный путь mov ax, word ptr a test al, al ; проверяем a jz chek_b not ah chek_b: test ah, ah ; проверяем b jz false true: mov a, 0ffh jmp short quit false: mov a, 0 quit: xor ax, ax ret main endp end
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д