Консультация № 143261
07.09.2008, 11:51
0.00 руб.
0 1 0
Здравствуйте!

Вопрос сложный: относится к: OpenGl и Assambler,
Но задам в разделе Assambler.
(Если порекомендуете задам в разделе OpenGl)

Я обнаружил, что у меня не работает на Assambler OpenGl,
хотя на C++ те-же примеры, которые делали тоже самое — работают.
Например примеры на сайте:
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=05
Там внизу ссылки на asm и на C++;

Запускаю примеры:
C++ — работает;
asm — выводит сообщение об ошибке и
о завершении программы из-за ошибки;
нажимаю откладка:

Microsoft Visual C++
Unhandlet exteption in lesson5.exe(NVOGLNT.DLL) :
0xC00000FD: Stack Overflow

Окно стек вызова:
NVOGLNT! 69a624b7()

Окно регистры:
---В приложении---

Что может быть не так?

Так как у меня Fasm, проверял примеры на сайте:
http://www.wasm.ru/article.php?article=OpenGLbyTylerDurden
При откладке было примерно тоже самое.

И вставлял в текст для проверки зацикливание:
point_circle:
jmp point_circle
(Проверял какие куски коде не работают)

Обнаружил что ошибка вызывается на строчке:
invoke wglMakeCurrent,ebp,eax

Совместив то и это: получилось, что вызывается какая-то ошибка внутри
NVOGLNT.DLL, на которую моя программа переходит со строчки
invoke wglMakeCurrent,ebp,eax

Не знаю в чём проблемма?
(На других компьютерах всё работает)
(Мой компьютер: Core 2 Duo E4600/ 2 x 512 Mb/ GeForse 7300 GT)

Приложение:
EAX = 0000F180 EBX = 00000020
ECX = 01472744 EDX = 00000002
ESI = 00000003 EDI = 01411780
EIP = 69A624B7 ESP = 0147C73C
EBP = 00F3CE00 EFL = 00000202
MM0 = 0000000000000000
MM1 = 0000000000000000
MM2 = 0000000000000000
MM3 = 0000000000000000
MM4 = 0000000000000000
MM5 = 8000000000000000
MM6 = 0000000000000000
MM7 = 8000000000000000
XMM0 = 0000000000000000000000003F800000
XMM1 = 00000000000000000000000000000000
XMM2 = 00000000000000000000000043697FE0
XMM3 = 00000000000000000000000043A00000
XMM4 = 0000000000000000000000003F800000
XMM5 = 0000000000000000000000003F800000
XMM6 = 0000000000000000000000003F000000
XMM7 = 00000000000000000000000000000000
CS = 001B DS = 0023 ES = 0023 SS = 0023
FS = 003B GS = 0000 OV=0 UP=0 EI=1 PL=0
ZR=0 AC=0 PE=0 CY=0

01472744 = 00000000


XMM0DL = +5,26354424712089E-315
XMM0DH = +0,00000000000000E+000
XMM1DL = +0,00000000000000E+000
XMM1DH = +0,00000000000000E+000
XMM2DL = +5,58782063697089E-315
XMM2DH = +0,00000000000000E+000
XMM3DL = +5,60546739703229E-315
XMM3DH = +0,00000000000000E+000
XMM4DL = +5,26354424712089E-315
XMM4DH = +0,00000000000000E+000
XMM5DL = +5,26354424712089E-315
XMM5DH = +0,00000000000000E+000
XMM6DL = +5,22209901682860E-315
XMM6DH = +0,00000000000000E+000
XMM7DL = +0,00000000000000E+000
XMM7DH = +0,00000000000000E+000
XMM00 = +1,00000E+000
XMM01 = +0,00000E+000
XMM02 = +0,00000E+000
XMM03 = +0,00000E+000
XMM10 = +0,00000E+000
XMM11 = +0,00000E+000
XMM12 = +0,00000E+000
XMM13 = +0,00000E+000
XMM20 = +2,33500E+002
XMM21 = +0,00000E+000
XMM22 = +0,00000E+000
XMM23 = +0,00000E+000
XMM30 = +3,20000E+002
XMM31 = +0,00000E+000
XMM32 = +0,00000E+000
XMM33 = +0,00000E+000
XMM40 = +1,00000E+000
XMM41 = +0,00000E+000
XMM42 = +0,00000E+000
XMM43 = +0,00000E+000
XMM50 = +1,00000E+000
XMM51 = +0,00000E+000
XMM52 = +0,00000E+000
XMM53 = +0,00000E+000
XMM60 = +5,00000E-001
XMM61 = +0,00000E+000
XMM62 = +0,00000E+000
XMM63 = +0,00000E+000
XMM70 = +0,00000E+000
XMM71 = +0,00000E+000
XMM72 = +0,00000E+000
XMM73 = +0,00000E+000 MXCSR = 00001FA0
ST0 = +0.00000000000000000e+0000
ST1 = +0.00000000000000000e+0000
ST2 = +0.00000000000000000e+0000
ST3 = +0.00000000000000000e+0000
ST4 = +0.00000000000000000e+0000
ST5 = +1.00000000000000000e+0000
ST6 = +0.00000000000000000e+0000
ST7 = +1.00000000000000000e+0000
CTRL = 027F STAT = 0000 TAGS = FFFF
EIP = 69502698
CS = 001B DS = 0023 EDO = 00000000
MM4 = 0000000000000000
MM5 = 8000000000000000

Обсуждение

давно
Советник
419
1011
11.09.2008, 09:43
общий
модератору - вопрос совершенно не по ассемблеру.

да и данных мало, ответить на него невозможно.

предлагаю перенести куда-нибудь
Форма ответа