Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Программирование —› Вопросы по асме
<< . 1 . 2 . 3 .
Посл.ответ Сообщение

Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 06 июля 2007 19:06 · Поправил: locker_fx
· Личное сообщение · #1

Здравствуйте уважаемые про-асм кодеры!
Я всё-таки решился научиться этому древнему мега-искусству кода на асме. Второй день читаю и читаю(набираюсь инфой, а потом начну практику). Вот всё вроде бы хорошо, но вот думаю для практики напишу одну школьную несложную задачку: есть число(именно число) его надо перевести в письменную запись(к примеру 1367,25 тысяча тристо шестьдесят семь рублей двадцать пять копеек). Но тут я понял что во всех туторах прочитанных мною ОЧЕНЬ много API, но нет по работе со строками...
Подскажите плиз где можно почитать про аботу со строками? И ещё как вы обходитесь без массивов? Всё в строчке хранить и вырезать нужное?

Понимаю что для всех гуру это элементарно и неинтересно, но всё же прощу отнестись с пониманием, к тем кто недавно стал на путь истинный...

P.S. Забыл сказать: Гугл за за свет незаплатил, а Яндекс'у интернет отключили за спам )))))))))))

Заранее благодарен за помощь!!!

-----
моя подпись!





Ранг: 44.2 (посетитель), 69thx
Активность: 0.140.02
Статус: Участник

Создано: 13 июля 2007 21:18
· Личное сообщение · #2

мясо убейся, тебе незачем существовать, а родителям мои соболезнования..




Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 13 июля 2007 21:26
· Личное сообщение · #3

locker_fx
Ты забыл добавить указатели на строки.
Правильно будет так:
invoke lstrcat, ADDR str1,ADDR text
invoke lstrcpy, ADDR text, ADDR str1


-----
Программист SkyNet





Ранг: 85.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 13 июля 2007 21:30 · Поправил: Icelot
· Личное сообщение · #4

locker_fx ты знаешь что такое отладчик??? Делой так:
invoke lstrcat, addr str1, addr text
invoke lstrcpy, addr text, addr str1


соре, опередили)

-----
radio uno in ibisa ...




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 13 июля 2007 21:33
· Личное сообщение · #5

FrenFolio пишет:
locker_fx
Ты забыл добавить указатели на строки.
Правильно будет так:
invoke lstrcat, ADDR str1,ADDR text
invoke lstrcpy, ADDR text, ADDR str1

бля ступил правдо... а МАСМ хотьбы чё сказал.

-----
моя подпись!




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 13 июля 2007 21:35
· Личное сообщение · #6

Прога работает, УРА!

Теперь осталось дело за малым разобраться как она работает и почему... всё ушёл в отладку.... завтра вернусь

-----
моя подпись!




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 14 июля 2007 03:36
· Личное сообщение · #7

n0name пишет:
GlobalAlloc - зло, намного лучше юзать HeapAlloc.

n0name
Хм.., а причину вкратце такого утверждения можно услышать?
Просто для примера при динамически подгруженной DLL и определенных условиях у меня не получилось использовать HeapAlloc и LocalAlloc (образно они обе являются локальными, по этой причине выскакивала бага), а вот как раз GlobalAlloc справился с поставленной задачей на ура…
После этого юзаю только GlobalAlloc, но, прочитав твое утверждение, стало интересно, может действительно не стоит ее постоянно использовать, почему зло?

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 85.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 14 июля 2007 03:42
· Личное сообщение · #8

Demon666 он вот тут уже высказался:
www.wasm.ru/forum/viewtopic.php?pid=185530

-----
radio uno in ibisa ...




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 14 июля 2007 06:04
· Личное сообщение · #9

Короче не убедило, останусь при своем мнении, эти рассуждения как обычно касаются тривиальных Iczelion-уроков, но когда доходит дело до ситуаций нестандартного характера(мне постоянно на такие везет ), вся эта теория идет лесом
Я точно помню, перепробовал все варианты, получал в результате системную ошибку, применил GlobalAlloc все ОК!, после этого применяю только ее, а об оптимизации в наше время разговаривать это грех, если учесть сколько не оптимизированных прог в том числе и системных процессов работает обычно впустую, а ради этого еще и в ядре ковыряться это точно зло! ЗЫ:ИМХО
Насчет GMEM_MOVEABLE да, это вообще отдельная история…

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 61.4 (постоянный), 1thx
Активность: 0.020
Статус: Участник

Создано: 14 июля 2007 07:04
· Личное сообщение · #10

Demon666
Почитай тред который дал Icelot, а там есть ссылка на коммент leo. Он более подробно расписал как GlobalAlloc сводится к HeapAlloc.
Незнаю что за нестандартные ситуации, но код буквально следующий:
/* Make sure the flags are valid */
if (uFlags & ~GMEM_VALID_FLAGS)
{
/* They aren't, fail */
BASE_TRACE_FAILURE();
SetLastError(ERROR_INVALID_PARAMETER);
return NULL;
}

/* Convert ZEROINIT */
if (uFlags & GMEM_ZEROINIT) Flags |= HEAP_ZERO_MEMORY;

/* Check if we're not movable, which means pointer-based heap */
if (!(uFlags & GMEM_MOVEABLE))
{
/* Check if this is DDESHARE (deprecated) */
if (uFlags & GMEM_DDESHARE) Flags |= BASE_HEAP_ENTRY_FLAG_DDESHARE;

/* Allocate heap for it */
Ptr = RtlAllocateHeap(hProcessHeap, Flags, dwBytes);
BASE_TRACE_ALLOC2(Ptr);
return Ptr;
}

Потом обрабатывается тупой флаг GMEM_MOVEABLE. leo в принципе всё это расписал.



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 14 июля 2007 08:08
· Личное сообщение · #11

locker_fx пишет:
чтобы долго непариться решил спросить

А мы чтобы долго не отвечать решили закрыть.

-----
Всем привет, я вернулся



<< . 1 . 2 . 3 .
 eXeL@B —› Программирование —› Вопросы по асме
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати