|
31.08.2006, 01:14
|
#1
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Asm
Курупник А.Б. Изучаем ассемблер
Неплохой в плане общего развития учебник.
Читал местами, пока у меня его не одолжил Magus.
Особенно порадовали примечания:
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
Последний раз редактировалось impersonalis, 29.03.2012 в 01:47.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
31.08.2006, 11:48
|
#2
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Re: Asm
Давно искал книжку по основам ассемблера, как раз то что нужно
|
(Offline)
|
|
03.09.2006, 03:09
|
#3
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Re: Asm
Обложку наконец нашёл
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
03.09.2006, 22:06
|
#4
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Re: Asm
|
(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'
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;êîíåö ïðîãðàììû
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
(Offline)
|
|
14.02.2010, 23:01
|
#7
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Asm
ого на фасме еще есть возможность игры писать...Круто, однако!! Надо бы заняться...
|
(Offline)
|
|
14.02.2010, 23:11
|
#8
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Ответ: Asm
сдк для того и создали что бы люди писали кто на чем привык и кому на чем угодно !!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.05.2023, 13:41
|
#9
|
Разработчик
Регистрация: 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,
может какая-то неразбериха в стеке возникает, не знаю.
Вообще, то что касается необязательных параметров для функций 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'
|
(Offline)
|
|
06.05.2023, 13:48
|
#10
|
Разработчик
Регистрация: 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.
_
Последний раз редактировалось Evgen, 06.05.2023 в 15:30.
|
(Offline)
|
|
08.05.2023, 23:42
|
#11
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 424
Написано 70 полезных сообщений (для 103 пользователей)
|
Ответ: Asm
Обнаружил, что при выполнении происходит утечка стека. Причиной оказалось то, что для функций из B3D.dll библиотеки следует использовать cinvoke вместо invoke , иначе стек потихоньку заканчивается, что приводит к вылету приложения по прошествии недолгого времени.
Если функция вместо целого числа, возвращает значение с плавающей запятой типа float (пример такой функции bbEntityYaw). То нужно обязательно выгружать это значение из стека FPU иначе будут возникать непредсказуемые баги в процессе выполнения программы.
Последний раз редактировалось Evgen, 10.05.2023 в 09:23.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:55.
|