Поиск:

Ответ в темуСоздание новой темы Создание опроса
> новое слово в науке и технике! сабж 
:(
    Опции темы
oleg1973
Дата 4.1.2004, 02:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



Господа ассемблершики!
как вам вот такой вариант? (если ктото еще не видел)
занятный компилятор smile.gif
мессаджбокс с хеловордом как и положено (с учетом что секция data есть) 2560 байт
кароче асм с неким сишным синтаксисом smile.gif

//Tooltip Controll
program aTooltip;
#include("w.hhf")
readonly
ToolTipsClassName : string := "Tooltips_class32";
MainDialogText1 : string := "This is the upper left area of the dialog";
MainDialogText2 : string := "This is the upper right area of the dialog";
MainDialogText3 : string := "This is the lower left area of the dialog";
MainDialogText4 : string := "This is the lower right area of the dialog";
static
hInstance : dword;
hwndTool : dword;
const
IDD_MAINDLG := 101;
procedure EnumChild( hwndChild:dword;lParam:dword);@stdcall;
static
buffer : byte[256];
begin EnumChild;
push(edi);
mov(lParam, edi);
mov( hwndChild,(type w.TOOLINFO [edi]).uId);
or(w.TTF_IDISHWND, (type w.TOOLINFO [edi]).uFlags);
w.GetWindowText(hwndChild, &buffer,255);
mov(&buffer, (type w.TOOLINFO [edi]).lpszText);
w.SendMessage(hwndTool,w.TTM_ADDTOOL,NULL,edi);
pop(edi);
end EnumChild;
procedure SetDlgToolArea(hDlg:DWORD;lpti:DWORD;lpText:DWORD;id:DWORD;lprect:DWORD);
begin SetDlgToolArea;
mov(lpti, edi);
mov( lprect, esi);
if(id = 0) then
mov( 0, (type w.TOOLINFO [edi])._rect.left );
mov(0, (type w.TOOLINFO [edi])._rect.top);
mov( (type w.RECT [esi]).right, eax);
sub( (type w.RECT [esi]).left, eax);
shr( 1,eax);
mov(eax, (type w.TOOLINFO [edi])._rect.right);
mov( (type w.RECT [esi]).bottom, eax);
sub( (type w.RECT [esi]).top, eax);
shr( 1, eax);
mov( eax, (type w.TOOLINFO [edi])._rect.bottom);
elseif(id = 1) then
mov( (type w.RECT [esi]).right,eax);
sub( (type w.RECT [esi]).left,eax);
shr( 1,eax);
inc( eax);
mov( eax, (type w.TOOLINFO [edi])._rect.left);
mov( 0, (type w.TOOLINFO [edi])._rect.top);
mov( (type w.RECT [esi]).right,eax);
sub( (type w.RECT [esi]).left,eax);
mov( eax,(type w.TOOLINFO [edi])._rect.right);
mov( (type w.RECT [esi]).bottom,eax);
sub( (type w.RECT [esi]).top,eax);
mov( eax,(type w.TOOLINFO [edi])._rect.bottom);
elseif(id = 2) then
mov( 0,(type w.TOOLINFO [edi])._rect.left);
mov( (type w.RECT [esi]).bottom,eax);
sub( (type w.RECT [esi]).top,eax);
shr( 1,eax);
inc( eax);
mov( eax,(type w.TOOLINFO [edi])._rect.top);
mov( (type w.RECT [esi]).right,eax);
sub( (type w.RECT [esi]).left,eax);
shr( 1,eax);
mov( eax, (type w.TOOLINFO [edi])._rect.right);
mov( (type w.RECT [esi]).bottom,eax);
sub( (type w.RECT [esi]).top,eax);
mov( eax,(type w.TOOLINFO [edi])._rect.bottom);
else
mov( (type w.RECT [esi]).right,eax);
sub( (type w.RECT [esi]).left,eax);
shr( 1,eax);
inc( eax);
mov( eax,(type w.TOOLINFO [edi])._rect.left);
mov( (type w.RECT [esi]).bottom,eax);
sub((type w.RECT [esi]).top,eax);
shr( 1,eax);
inc( eax);
mov( eax, (type w.TOOLINFO [edi])._rect.top);
mov( (type w.RECT [esi]).right,eax);
sub( (type w.RECT [esi]).left,eax);
mov( eax, (type w.TOOLINFO [edi])._rect.right);
mov( (type w.RECT [esi]).bottom,eax);
sub( (type w.RECT [esi]).top,eax);
mov(eax,(type w.TOOLINFO [edi])._rect.bottom);
endif;
mov( lpText,(type w.TOOLINFO [edi]).lpszText);
w.SendMessage(hwndTool,w.TTM_ADDTOOL,NULL,lpti);
end SetDlgToolArea;

procedure DlgProc(hDlg:dword; uMsg:uns32; wParam:dword; lParam:dword);@nodisplay;@stdcall;

static
ti : w.TOOLINFO;
id : dword;
rect : w.RECT;

begin DlgProc;
if(uMsg = w.WM_INITDIALOG) then
w.InitCommonControls();
w.CreateWindowEx(NULL, ToolTipsClassName,NULL,
w.TTS_ALWAYSTIP,w.CW_USEDEFAULT,
w.CW_USEDEFAULT,w.CW_USEDEFAULT,w.CW_USEDEFAULT,NULL,NULL,
hInstance,NULL);
mov(eax, hwndTool);
mov( 0, id );
mov(@size( w.TOOLINFO),ti.cbSize);
mov(w.TTF_SUBCLASS, ti.uFlags);
mov(hDlg,ti.hWnd);
w.GetWindowRect(hDlg, &rect);
SetDlgToolArea(hDlg, &ti, MainDialogText1,id, &rect);
inc(id);
SetDlgToolArea(hDlg,&ti, MainDialogText2,id, &rect);
inc( id);
SetDlgToolArea(hDlg, &ti, MainDialogText3,id, & rect);
inc(id);
SetDlgToolArea(hDlg, &ti, MainDialogText4,id, &rect);
w.EnumChildWindows(hDlg, &EnumChild, &ti);

elseif(uMsg = w.WM_CLOSE) then
w.EndDialog(hDlg,NULL);
else
mov(false,eax);
exit DlgProc;
endif;

mov(true,eax);
end DlgProc;


begin aTooltip;
w.GetModuleHandle(NULL);
mov(eax,hInstance);
w.DialogBoxParam( hInstance, val IDD_MAINDLG , NULL, &DlgProc, NULL );
w.ExitProcess(eax);
end aTooltip;



--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Kurt
Дата 4.1.2004, 04:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 1
Всего: 36



Хотелось бы поинтересоваться, где ты взял такой компилятор?

З.Ы. Кстати, у меня почему-то скрытые ассоциации с Pascal..


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
oleg1973
Дата 4.1.2004, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



это батенька по научному зовется HLA smile.gif
High Level Assembler
берется тут http://webster.cs.ucr.edu/Page_hla/0_hla_dnld.html
к нему только еще масм32 нужен



--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Custodian
Дата 8.1.2004, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 4.12.2003
Где: г. Киров

Репутация: нет
Всего: нет



Да там не только с Pascal'ем ассоциации, да ещё и с Visual Basic'ом. Там условая хорошо поставлены...
А от С я только директивы предпроцессора узрел там....
PM MAIL WWW   Вверх
Gloomy
Дата 9.1.2004, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 7.10.2003
Где: England

Репутация: нет
Всего: 1



oleg1973
Что-то больно уж синтаксис заморочистый - даже MASM32, ИМХО, попроще и понагляднее будет wink.gif
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.