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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2007, 00:20   #1
samosval
 
Регистрация: 17.12.2007
Сообщений: 7
По умолчанию

что означает почти каждая строчка в коде ??? в итоге программа - вводишь строку из цисел от 0 до 9 и она выдеёт число этих цифр !!! ?????

Код:
program lab4;
uses windows;
var
i : integer;
procedure MessageBoxA;
external 'user32.dll' name 'MessageBoxA';
procedure stroka;
var
st1 : shortstring;
begin
   asm
      jmp @start
      @st2 : db 39h, 58d, 30h, 13d
             db 38h, 58d, 30h, 13d
             db 37h, 58d, 30h, 13d
             db 36h, 58d, 30h, 13d
             db 35h, 58d, 30h, 13d
             db 34h, 58d, 30h, 13d
             db 33h, 58d, 30h, 13d
             db 32h, 58d, 30h, 13d
             db 31h, 58d, 30h, 13d
             db 30h, 58d, 30h, 13d, 0
      @start:
      mov bl, byte ptr i
      add bl, 30h
      mov byte ptr @st2[edx], bl
      add dx, 4d
      cmp al, 30h
      je @label_k
      jmp @start_1
      @label_k: push 0
                push 0
                push offset @st2
                push 0
                call messageboxa
      @start_1:
   end;
end;
procedure dll;
var
st1 : shortstring;
begin
   write('‚ўҐ¤ЁвҐ бва®Єг: ');
   read(st1);
   i := 0;
   asm
   jmp @start_1
   @data_:
   @start_1:
   lea eax, [esp - 4]
   push eax
   push $00000040
   push offset @start
   sub dword ptr [esp], offset @data_
   push offset @data_
   call VirtualProtect
      xor ecx, ecx
      mov cl, 39h
      xor edx, edx
      mov edx, 2d
         @label_1:
            mov al, cl
            xor ecx, ecx
            mov cl, byte ptr st1[0]
               @label_2:
                  cmp al, byte ptr st1[ecx]
                  je @label_go
                  jmp @start
                     @label_go:
                        add byte ptr i, 1d
                  @start:
               loop @label_2
            call stroka
            mov cl, al
            cmp cl, 1h
            je @label_esc
            mov byte ptr i, 0000h
         loop @label_1
      @label_esc:
   end;
end;              {/dll}
begin   {main}
   asm
      call dll
   end;
end.    {/main}

Последний раз редактировалось rpy3uH; 27.12.2007 в 19:55.
samosval вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с кодом! sid Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 13.04.2010 17:53
Помогите разобраться с кодом WINApi Zaraki Общие вопросы C/C++ 13 23.03.2008 21:39
Просьба разобраться с кодом на С++ deazer Помощь студентам 1 08.11.2007 07:55
Помогите разобраться с кодом С++ Noor Помощь студентам 20 10.10.2007 17:42