Нам понадобятся следующие вещи.
- Установленная Microsoft Visual Studio с поддержкой ARM ассемблера, например 2012.
- Jailbreak’нутый планшет с установленной Windows RT, например Microsoft Surface RT.
Для начала создадим отдельную папку для проекта, в которой создадим файл arm.asm, содержимое которого под катом.
AREA data, DATA Text DCB "Hello world(text)", 0x0 Caption DCB "Hello world(caption)", 0x0 EXPORT WinMainCRTStartup IMPORT __imp_MessageBoxA IMPORT __imp_ExitProcess AREA text, CODE WinMainCRTStartup PROC movs r3,#0 ldr r2,Caption_ptr ldr r1,Text_ptr movs r0,#0 ldr r4,MessageBoxA_ptr ldr r4,[r4] blx r4 movs r0,#0 ldr r4,ExitProcess_ptr ldr r4,[r4] blx r4 MessageBoxA_ptr DCD __imp_MessageBoxA ExitProcess_ptr DCD __imp_ExitProcess Text_ptr DCD Text Caption_ptr DCD Caption ENDP END
Причем у ассемблера в составе Visual Studio 2012 замечана странность: макросы и инструкции обязательно должны содержать перед собой хотя бы один символ табуляции, а вот метки и имена областей памяти наоборот, не должны ничего перед собой содержать(т.е. должны начинаться сразу с начала строки), иначе будут ошибки.
Итак, текст мы набрали, теперь приступим к компиляции. Из меню «Пуск» запускаем:
Microsoft Visual Studio 2012 — Visual Studio Tools — Командная строка VS2012 ARM Cross Tools.
Из открывшегося окна ввода команд переходим в каталог с исходниками, например:
cd \my_arm_proj
Далее последовательно вводим команды:
armasm arm.asm link arm.obj user32.lib kernel32.lib /subsystem:windows
В итоге на выходе в директории программы получим исполняемый файл arm.exe. Копируем его на планшет, и вуаля!
ссылка на оригинал статьи http://habrahabr.ru/post/199094/
Добавить комментарий