Посмотрите на http://flatassembler.net/docs.php?article=win32#2
Кажется, ваша проблема в вызове gluLookAt, так как вы передаете указатели на удвоения, но функция фактически требует, чтобы вы вместо этого передавали фактические данные в стек.
Правильный вызов (после замены "include 'win32a.inc'" на "include" win32ax.inc '"(обратите внимание на" x "):
invoke gluLookAt, double [double2], double [double0], double [double0_5], double [double0], double [double0], double [double0], double [double0], double [double1], double [double0]
Также вам необходимоисправьте ваши данные, потому что вы объявили их с неправильным типом (как сказал Томми), но кроме того вы забыли использовать литералы с плавающей точкой (GLdouble определяется как «dq», поэтому ассемблер не может сделать вывод, что данные должны храниться как double)Правильный код для переменных таков:
theta GLfloat 5.0
double0_5 GLdouble 1.0
double0 GLdouble 0.0
double1 GLdouble 1.0
double2 GLdouble 2.0
При этом программа перестанет падать, но, тем не менее, покажет некоторые проводные соединения или ничего, кроме черного экрана. Вам придется выяснить, в чем деловаш алгоритм.