Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2014, 20:05   #1
User0001
Новичок
Джуниор
 
Регистрация: 12.02.2014
Сообщений: 1
По умолчанию Помогите заюзать процедуры в FASMWе?

Вношу данные в массив строк. Помогите передать тестовую строку процедуре как параметр и вывести внесённые данные по адресу строки в массиве строк на екран с помощью MessageBoxA.
Код:
format PE GUI 4.0

include 'win32ax.inc'

.data
        ;--------------------------------------------------------------
        ; Структура данных(массив строк)
        ;--------------------------------------------------------------
        mb_array db 8 dup 0
        mb_mem dd 255 dup(mb_array)

        mb_mem_size db 0

        s0 db 'Ето тестовая строка.',0

.code
        start:
                proc main
                     lea ebx,[s0]
                     push ebx
                     invoke  MessageBoxA,0,'DBG msg','DBG msg',MB_OK
                     call mb_add_data
                     lea ebx,[s0]
                     call mb_srh_data
                     ret
                endp

                call main
        ;--------------------------------------------------------------
        ; Добавление данных
        ;--------------------------------------------------------------
                proc mb_add_data
                     pop esi
                     lea edi,[mb_mem]
                     mov ecx,8
                     xor eax,eax
                     mov al,[mb_mem_size]
                     mul ecx
                     @add8:
                        mov dl,[esi]
                        mov [edi+eax],dl
                        inc esi
                        inc edi
                        cmp dl,0
                        loopne @add8
                     inc [mb_mem_size]
                     ret
                endp
        ;--------------------------------------------------------------
        ; Поиск данных
        ;--------------------------------------------------------------
                proc mb_srh_data
                     pop esi
                     mov edi,[mb_mem]
                     mov ecx,[mb_mem_size]
                     @srh255:
                        push ecx
                        mov eax,ecx
                        mov ecx,8
                        mul 8
                        @srh8:
                                mov dh,[esi]
                                mov dl,[edi+eax]
                                cmp dh,dl
                                jne @stop_srh8
                                cmp dh,0
                                je @zero_dhdl
                                inc esi
                                inc eax
                                loop @srh8
                                @stop_srh8:
                                        pop ecx
                        loop @srh255
                        move eax,0
                        ret

                        @data_finded:
                                add eax,edi
                                sub eax,ecx
                                ret

                        @zero_dhdl:
                                cmp dl,0
                                je @data_finded
                                jne @stop_srh8
                endp
        ;--------------------------------------------------------------
        ; Конец
        ;--------------------------------------------------------------

                invoke ExitProcess,0
        .end start
User0001 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
заюзать DLL в PHP на Linux'e ADSoft Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 5 17.10.2013 07:01
В надежде заюзать платку HellMercenariess Компьютерное железо 2 22.12.2009 11:17
Как заюзать прокси Lemo Помощь студентам 2 29.07.2009 15:04
Помогите с написанием процедуры... Bkmz66 Помощь студентам 1 15.05.2008 13:27