Суть проблемы: для DOS нужно прогу написать в MASM. Все отлично, пишу в 16-ти битном режиме, EAX был не нужен... Но потом столкнулся с тем, что EAX и вообще E регистры понадобились... Ну я сначала просто написал "mov eax, 8429".. Линкер ругается что EAX - "undefined symbol".. :-/ фигасе... Ну ладно, пишу в начале ".286", то же самое. ".386", пришлось править заргузку не в SI, а в ESI, но самое интересное, что компилируется МУСОР! То есть вместо команды "mov eax, 11" будет что-то типа "mov ax, xxxx; mov [bx+xx], xxxx". Да и вообще заметил, что с использованием ".386" вообще половина команд перекосилось.. ML версии: 6.14.8444 Линкер версии: 5.60.339 Помогите! Что делать? Может просто поменять компилятор и линкер? Но на какие? : ( :_(
32-битные проги надо собирать с помощью masm32. Судя по версии (6.14), это и есть masm32, но для DOS он не годится. Для доса подходит TASM, а лучше - FASM.
Да в том-то и дело, что для DOS я и в ФАКе почитал, и сам нашел MASM ассемблер и линкер.. Но вся беда в том, что нужно, чтобы все под MASM'ом было.. (сам-то я такими извращениями не занимаюсь, сам я под DOS в TASM50 пишу..) Может чтобы не гонять воду кто-нибудь просто поделится ассемблером и линкером нормальным? :_(
Elusory Jo Судя по версии (ml 6.14), Вы нашли не masm, а masm32. Найти старый масм действительно трудно. Я лично вообще его никогда не видел.
Здесь есть MASM (5.10) http://asm.shadrinsk.net/masm510.rar У меня есть MASM 6.12 он для DOS. Ну а MASM 5.10 наверное уж точно под дос