У меня есть несколько ранее работающих файлов сборки .s, которые я написал несколько лет назад в Linux, но оказалось, что эти файлы невозможно скомпилировать с помощью Visual Studio MASM и онлайн-ассемблеров. Я не помню, какой компилятор я использовал в Linux. Можно ли либо получить компилятор, необходимый для таких файлов, и использовать его в Visual Studio, либо каким-либо образом исправить файлы, чтобы сделать их совместимыми с MASM? Вот пример моего ассемблерного кода:
Код: Выделить всё
_EXIT = 1
_PRINTF = 127
.SECT .TEXT
MOV CX, end - arr
SHR CX, 1
PUSH end - 2
PUSH CX
CALL PRINT_ARR
ADD SP, 4
PUSH 0
PUSH _EXIT
SYS
PRINT_ARR:
PUSH BP
MOV BP, SP
MOV SI, 6(BP)
MOV CX, 4(BP)
L1:
PUSH (SI)
PUSH space
PUSH _PRINTF
SYS
ADD SP, 6
SUB SI, 2
LOOP L1
PUSH enter
PUSH _PRINTF
SYS
MOV SP, BP
POP BP
RET
.SECT .DATA
arr: .WORD 1, 2, 3, 4, 5
end: .BYTE 0
space: .ASCIZ "%d "
enter: .ASCIZ "\n"
.SECT .BSS
Я попробовал изменить расширение файла с .s на .asm и скомпилировать его с помощью Visual Studio 2022 с включенной поддержкой MASM, однако IDE не компилирует его и вместо этого отправляет множество ошибок. Я также пробовал запустить этот код в нескольких онлайн-ассемблерах, но это тоже не сработало.
Подробнее здесь:
https://stackoverflow.com/questions/791 ... -with-masm