· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Касательно FASM/

<< . 1 . 2 . 3 . >>

Посл.отвђт Сообщенiе


Дата: Ноя 14, 2004 18:27:59

AsmGuru62
В примерах самого fasm'а кажется есть использование локальных переменных, или вот мой пример ;-)
;@echo off
;goto make

include '%fasminc%\win32axp.inc'

.code

align 4
proc EnumChildWindowsFunc, hwnd, lParam
.Buff  rb  64
enter
  invoke GetWindowText, [hwnd], ADDR .Buff, 64
  invoke lstrcmpi, ButtonText, ADDR .Buff
  test eax, eax
  jnz @F
;  invoke ShowWindow, [hwnd], SW_HIDE
  invoke EnableWindow, [hwnd], FALSE
  xor eax, eax
  jmp .finish
@@:
  xor eax, eax
  inc eax
.finish:
  return
endp

align 4
proc EnumWindowsFunc, hwnd, lParam
.Buff  rb  256
enter
  invoke GetWindowText, [hwnd], ADDR .Buff, 256
  invoke lstrcmpi, WindowText, ADDR .Buff
  test eax, eax
  jnz @F
  invoke EnumChildWindows, [hwnd], EnumChildWindowsFunc, 0
  xor eax, eax
  jmp .finish
@@:
  xor eax, eax
  inc eax
.finish:
  return
endp

align 4
start:
  invoke EnumWindows, EnumWindowsFunc, 0
  invoke ExitProcess, 0

.data

WindowText   db   'Калькулятор',0
ButtonText   db   'Hex',0

.end start

;:make
;SET PROJECTNAME=HideButton
;if exist %PROJECTNAME%.exe del %PROJECTNAME%.exe
;C:\FasmC\fasm.exe %PROJECTNAME%.bat %PROJECTNAME%.exe
;pause
;cls


Дата: Ноя 14, 2004 18:37:44


Дата: Ноя 14, 2004 18:48:20

Спасибо конечно но нет ли чего нмбудь виндусового? Я думаю для ламеров, в часности для меня это проще будет.


Дата: Ноя 14, 2004 18:51:51 · Поправил: KiNDeR

> нет ли чего нмбудь виндусового?
так пиши сразу под винду и пользуйся олей!
или ставь софтайс и делай dldr.exe прога.com


Дата: Ноя 14, 2004 19:03:33

„так пиши сразу под винду и пользуйся олей! “
Ну мне хотелось бы хоть как нибудь научиться писать под dos. Так сказать для расширения знаний.
„или ставь софтайс и делай dldr.exe прога.com“
А SoftICE для Windows? Версия Lite 10 метров кушает! Что то многовато, придется подождать с выкачкой пару недель.


Дата: Ноя 14, 2004 19:12:14

Rohan
Советую TRW2000 полную версию естно, но он только под win98.


Дата: Ноя 14, 2004 19:24:57

Блин как все сложно! Я уже под конец запутался с чего начинать!


Дата: Ноя 14, 2004 22:03:00
Правка

Rohan
„мне б найти тех кто хвалит RadAsm“
Это очень хорошее и функциональное IDE для написания приложений на ассемблере.

С пакетом распространяются настройки для 5 разных компиляторов. Как что-то найти в нём? Да просто посмотрите и разберитесь во всех командах его меню. На сайте RadASM'a лежит также довольно неплохая справка.


Дата: Ноя 15, 2004 15:08:09

Я понимаю что нужно просто полазить по менюнкам, но мне стремно менять там все что мне кажется не так! Всеж это не в Винде пару галочек поставить. Если несложно то просто назовите мне раздел где смотреть.


Дата: Ноя 16, 2004 06:30:38

Asterix
А эта переменная разве объявлена в стеке?
Похоже на объявление в секции кода - а это ухудшает производительность.
Хорошо бы иметь в FASM простую поддержку на уровне компилятора:
proc foo
vars {
  .object WNDCLASS
}
...
mov .object.pfnWndProc, eax
...
return


Дата: Ноя 16, 2004 07:24:15

Пример Asterix использует стековые переменные, реальзуется всё это макросами.
IMHO если же будет поддержка на уровне компилятора, то возможности ухудьшатся - потеряется гибкость.. В MASM например нельзя из-за этого по-нормальному реализовать ESP-based stackframes :-\


Дата: Ноя 16, 2004 22:29:35

S_T_A_S_
В MASM например нельзя из-за этого по-нормальному реализовать ESP-based stackframes

Хотя это и не выглядит так элегантно, как в fasm'е, но реализовать можно и в MASM'e.


Дата: Ноя 16, 2004 22:42:15

AsmGuru62
> А эта переменная разве объявлена в стеке?

Да, всё что между proc и enter стековые переменные


ЗЫ: Как там дела с IDE? Уже хотелось бы затестить.


Дата: Ноя 17, 2004 03:42:02

Johnikum

Дык я не спорю, сам пытался. Но в MASM это очень криво получается :-)
Все его HLL прибомбасы (proc, invoke) при этом только мешают.

Ключевой момент - в FASM можно сделать макросы push и pop, которые берут на себя рутину вычислений значения ESP.
А в MASM - только ручками. Тогда зачем там PROC, LOCAL и т.п.


Дата: Ноя 17, 2004 04:19:55

„В MASM например нельзя из-за этого по-нормальному реализовать ESP-based stackframes :-\“
А оно сильно надо? Какие при этом преимущества? Лишний регистр освобождается, что еще? Я лично этим этим года полтора назад воспользовался один раз из-за лени, когда над AES работал.

Если уже так хочется извращаться, то пишем что-то типа blabla equ [esp+4*5]

<< . 1 . 2 . 3 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.072