--==Ассемблер. Работа с FPU==--

beatlehead 20.03.2004 - 16:09 | Да вот тут стал асму изучать, как работать с FPU, значит. Ну вот решаю простенький примерчик z=x^2-Pi. В каждой строчке, где работаю с FPU вылезает еррора: Invalid instruction with current CPU setting Че пишу не так? Какие надо выставить установки для CPU и как? Пишу так: CodeSg segment 'CODE' assume CS:CodeSg, DS:DataSg, SS:StackSg begin: mov AX, DataSg mov DS, AX fld x fld x fmul fbstp z fldpi fld z fsub fbstp Z mov AX, 4C00h int 21h CodeSg ends ;------------------------------------ DataSg segment 'DATA' z dd ? x dd 2.4 DataSg ends ;------------------------------------ StackSg segment stack 'STACK' db 256 dup(0) StackSg ends ;------------------------------------ end begin Заранее спасибо.
Посторонним В 1 - 20.03.2004 - 21:14 | А ты посмотри: наверное, в опциях компилятора выставлено 'Emulation' вместо '8087/80287'. И еще из вредности добавлю, что я в свое время изучал эти дела в 'чистой', так сказать, среде: tasm+tlink+td, а не в ассемблерных вставках Паскаля. Зато от подобных глюков был избавлен, и, опять же, чистота эксперимента... :-)
hkm 2 - 20.03.2004 - 21:52 | А это и есть "чистая среда", в которой кто-то был "избавлен". begin здесь метка, если мне глаза не врут, а не "нечистая" часть от паскаля :-) По теме - попробуй определить тип FPU (что-то вроде .87 или p87 или ещё как - от асма зависит), может асм думает, что ты под 8086 без сопроцессора пишешь вот и ругается?
Посторонним В 3 - 20.03.2004 - 22:46 | Да действительно, недоглядел. У меня проблем не возникало, когда я писал вначале MASM MODEL small
beatlehead 4 - 20.03.2004 - 23:43 | Я пишу, используя Open Watсom, в Политехе такая замутка на микропроцессорах. Не знаю, че за фигня. Кстати, если уж речь пошла о MASM'e у меня стоит XP и MASM 6.1, так вот, то-ли я че не так делаю, толи одно из двух, но ниче не компилиться. Запускаю через FAR new-vars.bat, потом pwb.exe, создаю прект, добавляю новый файл, пишу что-нибудь в том-же духе, что и здесь, НО НЕ КОМПИЛИТЬСЯ НИЧЕГО %(( Где можно что-нибудь почитать по этому поводу? Киньте ссылочку, не влом. to 2: Ни .87, ни p87, ни даже .p87 в начале проги не помогло.
Delphist 5 - 21.03.2004 - 00:24 | Попробуй одно из обозначений в начале программы: P8087 P287 P387 .8087 .287 .387

>>