Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++ > Разработка LIB

Ответ
 
Опции темы
Старый 31.08.2006, 01:14   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Asm

Курупник А.Б. Изучаем ассемблер
Неплохой в плане общего развития учебник.
Читал местами, пока у меня его не одолжил Magus.
Особенно порадовали примечания:
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?

Последний раз редактировалось impersonalis, 29.03.2012 в 01:47.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
Артем Валерьевич (09.05.2009), Phantom (21.11.2009), Samodelkin (12.11.2023)
Старый 31.08.2006, 11:48   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Re: Asm

Давно искал книжку по основам ассемблера, как раз то что нужно
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 03.09.2006, 03:09   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Asm

Обложку наконец нашёл
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 03.09.2006, 22:06   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Re: Asm

для тех кто еще незаметил... вот тут лежат исходники к этой книжке
http://www.piter.com/files_for_book.phtml?isbn=5-94723-757-1&name=%C8%E7%F3%F7%E0%E5%EC%20%C0%F1%F1%E5%EC%E1% EB%E5%F0&author=%C0.%A0%CA%F0%F3%EF%ED%E8%EA&bar=9 78594723757
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Старый 09.05.2009, 12:58   #5
Артем Валерьевич
Бывалый
 
Аватар для Артем Валерьевич
 
Регистрация: 25.12.2007
Адрес: г. Краснодар
Сообщений: 894
Написано 421 полезных сообщений
(для 1,079 пользователей)
Ответ: Asm

мож кто знает как правильно написать инклуд библиотеки Б3Д СДК.
или кто уже таким страдал на асме или там может Фасме.
Долбаюсь уже 3 недели.
нашел хедеры для паскаля, С++, пюре басика, а вот мне нужен для Фасм.
(Offline)
 
Ответить с цитированием
Старый 21.11.2009, 08:18   #6
Артем Валерьевич
Бывалый
 
Аватар для Артем Валерьевич
 
Регистрация: 25.12.2007
Адрес: г. Краснодар
Сообщений: 894
Написано 421 полезных сообщений
(для 1,079 пользователей)
Ответ: Asm

Есть, заработало, только теперь ругается на Parent Entity.

 
;************************************
;**********-Blitz3D fasm-*********
;************************************
;Ôàéëåã íàïèñàí Âåðåòèíñêèì Àðò¸ìîì *
;5.05.2009 ã.                       *
;Ïðîøó íå áèòü íîãàìè               *
;                                   *
;************************************
                format PE GUI 4.0
                ;format PE CONSOLE 4.0
                         entry start
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
              ;èíêëóäû
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                include 'win32a.inc'
                include 'Blitz3D.inc'
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
              ;êîíñòàíòû è ïåðåìåííûå
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
section '.data' data readable writeable
GW dd 640
GH dd 480
bits dd 32
m dd 3
light BBLight 0
camera BBCamera 0
cube BBModel 0
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
section '.code' code readable executable
                        start:
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
              ;èíèöèàëèçàöèÿ äâèæêà Áëèö
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 invoke bbBeginBlitz3D
      invoke bbGraphics3D, [GW], [GH], [bits], [m]
      invoke bbCreateLight,0;
      mov [light], eax
      invoke bbCreateCamera,0;
      mov [camera], eax
      invoke bbCreateCube;
      mov [cube], eax
      invoke bbPositionEntity, [camera], 0, 0, -4
      @c_e:
      invoke bbKeyHit, 1;
      or eax, eax;
      jnz @end_c_e;
      invoke bbTurnEntity, [cube], 1, 2, 3
      invoke bbRenderWorld;
      invoke bbFlip;
      jmp @c_e;
      @end_c_e:
invoke bbEndBlitz3D
invoke ExitProcess,0
section '.idata' import data readable writeable
                 include 'imp.inc'
section '.rsrc' resource data readable
                 include 'res.inc'
 
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
              ;êîíåö ïðîãðàììû
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Вложения
Тип файла: rar BDR_01.rar (319.2 Кб, 1648 просмотров)
(Offline)
 
Ответить с цитированием
Старый 14.02.2010, 23:01   #7
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Asm

ого на фасме еще есть возможность игры писать...Круто, однако!! Надо бы заняться...
(Offline)
 
Ответить с цитированием
Старый 14.02.2010, 23:11   #8
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Asm

сдк для того и создали что бы люди писали кто на чем привык и кому на чем угодно !!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (16.02.2010)
Старый 06.05.2023, 13:41   #9
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 424
Написано 70 полезных сообщений
(для 103 пользователей)
Ответ: Asm

Что-то я эту тему как-то пропустил. 2009 год... Blitz3D + Ассемблер под Windows вот это франкенштейн...)

Сообщение от Артем Валерьевич Посмотреть сообщение
Есть, заработало, только теперь ругается на Parent Entity.
Если методы типа invoke bbCreateLight , invoke bbCreateCamera и подобные
в ассемблерном коде не содержат параметров то это по какой-то причине
приводит к возникновению ошибки "Parent entity does not exist"

Исправляется просто добавлением ,0 в конце
Хотя в документации четко написано что параметр parent опициональный.
Возможно это как-то связанно с самим механизмом invoke,
может какая-то неразбериха в стеке возникает, не знаю.

invoke bbCreateCube, 0
Вообще, то что касается необязательных параметров для функций Blitz3D в FASM с этим проблема.


Так же согласно документации в функцию TurnEntity entity,pitch#,yaw#,roll#,[,global]
мы передаем float значения (такие параметры помечены символом # на конце):

invoke bbTurnEntity, [cube], 1, 2, 3
Поэтому в числа нужно добавить "разделитель":

invoke bbPositionEntity, [cube], 0.0, 0.0, 5.0
Или можно просто добавить и f на конце (как в Си и Java)

invoke bbPositionEntity, [cube], 0f, 0f, 5f
Тоже самое касается других команд вроде:

invoke bbTurnEntity, [cube], 1f, 2f, 3f
В общем я немного подправил и дополнил код и получилось вот это:



Исходный код:

;******************************************************
;*                  Blitz3D on FASM                   *
;******************************************************

format PE GUI 4.0
entry start

include 'win32a.inc'
include 'Blitz3D.inc'

; ------------ константы и переменные -----------------
section '.data' data readable writeable

camera BBCamera 0
light BBLight 0

cone BBModel 0
cube BBModel 0
sphere BBModel 0

; ------------------------- код ------------------------
section '.code' code readable executable

start:
      invoke bbBeginBlitz3D
      invoke bbGraphics3D, 640, 480, 16, 3
      invoke bbCreateCamera, 0    ; paerent 0
      mov [camera], eax
      invoke bbCreateLight, 1, 0          ; 1 - direct light, parent null
      mov [light], eax

      invoke bbCreateCone, 32, BBTrue, 0  ; 32 segments, solid, parent null
      mov [cone], eax
      invoke bbPositionEntity, [cone], -3f, 0f, 5f
      invoke bbEntityColor, [cone], 255f, 32f, 32f

      invoke bbCreateCube, 0              ; parent null
      mov [cube], eax
      invoke bbPositionEntity, [cube], 0f, 0f, 6.5f
      invoke bbEntityColor, [cube], 70f, 155f, 30f

      invoke bbCreateSphere, 7, 0         ; detail level - 7, parent null
      mov [sphere], eax
      invoke bbPositionEntity, [sphere], 3f, 0f, 5f
      invoke bbEntityColor, [sphere], 0f, 128f, 255f

main_loop:
      invoke bbKeyHit, KEY_ESCAPE ; Wait Esc
      or eax, eax
      jnz exit_from_main_loop

      invoke bbTurnEntity, [cube], 0.5f, 2f, 1f
      invoke bbTurnEntity, [cone], 0f, 1f, 0.5f
      invoke bbTurnEntity, [sphere], 2f, 1f, 0.5f

      invoke bbRenderWorld      ; Render world to buffer
      invoke bbFlip             ; Flip buffers
      jmp main_loop;
exit_from_main_loop:
      invoke bbEndBlitz3D
      invoke ExitProcess,0

section '.idata' import data readable writeable
                 include 'imp.inc'

section '.rsrc' resource data readable
                 include 'res.inc'
Миниатюры
Нажмите на изображение для увеличения
Название: B3DFASM.gif
Просмотров: 1009
Размер:	341.2 Кб
ID:	23395  
(Offline)
 
Ответить с цитированием
Старый 06.05.2023, 13:48   #10
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 424
Написано 70 полезных сообщений
(для 103 пользователей)
Ответ: Asm

Также простой пример по Graphics2D (простая смена цвета фона):
;******************************************************
;*                  Blitz3D on FASM                   *
;******************************************************

format PE GUI 4.0
entry start

include 'win32a.inc'
include 'Blitz3D.inc'

; ------------ константы и переменные -----------------
section '.data' data readable writeable

camera BBCamera 0
light BBLight 0
cone BBModel 0
font BBFont 0

r dd 0
g dd 0
b dd 0

font_name db 'System',0
text db "Simple Text! Простой текст",0

; ------------------------- код ------------------------
section '.code' code readable executable

start:
      invoke bbBeginBlitz3D
      invoke bbGraphics, 640, 480, 32, 3

      invoke bbLoadFont, font_name, 32, BBTrue, BBFalse, BBTrue
      mov [font],eax
      invoke bbSetFont, [font]

main_2dloop:
      invoke bbKeyHit, KEY_ESCAPE
      or eax, eax
      jnz exit_from_main_loop           ; If Esc pressed then exit from app

      invoke bbClsColor, [r], [g], [b]  ; Set color and clear screen
      invoke bbCls
      inc [r]
      add [g],7
      add [b],3

      invoke bbLine, 20, 20, 20, 460
      invoke bbColor, 0, 128, 255
      invoke bbRect, 40, 40, 50, 50, BBTrue
      invoke bbColor, 255, 255, 255
      invoke bbText, 320, 220, text, BBTrue, BBFalse

      invoke bbFlip                     ; Show buffer

      jmp main_2dloop;

exit_from_main_loop:
      invoke bbEndBlitz3D
      invoke ExitProcess,0

section '.idata' import data readable writeable
                 include 'imp.inc'

section '.rsrc' resource data readable
                 include 'res.inc'


Если что возиться с командной строкой в 2023 году необязательно можно использовать утилиту-редактор FASMW которая идет в комплекте с Flat Assembler что-то вроде мини IDE.





_
Миниатюры
Нажмите на изображение для увеличения
Название: FASMW.png
Просмотров: 949
Размер:	11.6 Кб
ID:	23396  

Последний раз редактировалось Evgen, 06.05.2023 в 15:30.
(Offline)
 
Ответить с цитированием
Старый 08.05.2023, 23:42   #11
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 424
Написано 70 полезных сообщений
(для 103 пользователей)
Ответ: Asm

Обнаружил, что при выполнении происходит утечка стека. Причиной оказалось то, что для функций из B3D.dll библиотеки следует использовать cinvoke вместо invoke , иначе стек потихоньку заканчивается, что приводит к вылету приложения по прошествии недолгого времени.

Если функция вместо целого числа, возвращает значение с плавающей запятой типа float (пример такой функции bbEntityYaw). То нужно обязательно выгружать это значение из стека FPU иначе будут возникать непредсказуемые баги в процессе выполнения программы.

Последний раз редактировалось Evgen, 10.05.2023 в 09:23.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 04:31.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com