Я начал изучать сборку и попытался скомпилировать следующий код на визуальной студии 2010Не удается скомпилировать этот код сборки
DSEG SEGMENT A DW 8 B DW 10 DSEG ENDS SSEG SEGMENT STACK DW 100H DUP(?) SSEG ENDS CSEG SEGMENT ASSUME CS:CSEG, DS:DSEG, SS:SSEG MAIN PROC FAR PUSH DS MOV AX, 0 PUSH AX MOV AX, DSEG MOV DS, AX ; The start of the program MOV AX, A MOV BX, B ADD AX, BX MOV A, AX RET MAIN ENDP CSEG ENDS END MAIN
я получил следующие ошибки:
1>main.asm(17): error A2004: symbol type conflict
1>main.asm(32): warning A4023: with /coff switch, leading underscore required for start address : MAIN
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\masm.targets(49,5): error MSB3721: The command "ml.exe /c /nologo /Zi /Fo"Debug\main.obj" /W3 /errorReport:prompt /coff /Tamain.asm" exited with code 1.
Я искал веб для души, и единственное, что я нашел, это то, что ошибка A2004 происходит из-за директивы/coff.
Как удалить/coff из списка аргументов? (Если это то, что нужно использовать для этой ошибки).
Спасибо,
идо Sorozon
Вы серьезно запутались здесь. Ваша сборка - это реальный режим, 16-разрядная сборка, вид, используемый в дни MS-DOS. Visual Studio 2010 является компилятором Windows и больше не поддерживает создание исполняемых файлов DOS. Что вам нужно, пожалуйста? Вы случайно взяли книгу об сборке, написанную в конце 1980-х годов (когда сборка была более актуальной)? –
Это новая сборка, которую мне нужно изучить. Поэтому я думаю, что я получу компилятор DOS, есть ли у вас предложения? –
См. Ответ @ Seki. Если вы ДОЛЖНЫ выполнить 16-битную сборку в реальном режиме, и мне нужно будет спросить, что думает ваш профессор, если это так, вам нужно либо: a) установить DOS в вашей системе - удачи , и я надеюсь, что вы не хотите использовать его ни для чего другого - или б) используйте эмулятор или виртуальную машину. –