Дата: Понедельник, 20.10.2014, 21:03 | Сообщение # 1
Авторитет
Сообщений: 1083
Статус: Offline
Небольшое предисловие.
Данный урок предназначен далеко не для новичков в pawn. Данный оператор невозможно использовать для оптимизации, и уж тем более, для написания мода.
Что это такое?
Это оператор для обращения к виртуальной машине инструкциями языка ассемблера. Т.е. данный оператор помогает нам работать с памятью "напрямую".
Хранение данных
В asm используются так называемые аккумуляторы. Всего их 3 типа:
.stk - стек. Для хранения больших объёмов данных .pri - основной аккумулятор. Для хранения данных на вывод. .alt - альтернативный аккумулятор. Для хранения не столь важных данных.
Запись данных в аккумулятор
Для записи используем инструкцию LOAD - для глобальных переменных. LOAD.S - для локальных переменных.
Код
new a=9; stock func() { new b=12; #emit LOAD a// записали в стек число 9 #emit LOAD.S.pri b// записали в основной аккумулятор число 12 }
Так же мы можем записывать константы, для этого есть инструкция CONST
new input; stock func() { new input2; #emit STOR input//вывели значение, которое записано в стеке, в переменную input #emit STOR.S.pri input2//вывели значение, которое записано в основном аккумуляторе, в локальную переменную input2 }