Студентам с вопросами о лабораторных работах сюда

Тема в разделе "WASM.BEGINNERS", создана пользователем IceStudent, 11 ноя 2006.

  1. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.784
    Черт, забыл что редактирование отключено
    правильно будет
    Код (Text):
    1. a0:   cmp al,[bx]
    2.        jnl a1
    3.        mov al,[bx]
    4. a1:     inc bx
    5.        loop a0
     
  2. Debro

    Debro New Member

    Публикаций:
    0
    Регистрация:
    16 сен 2009
    Сообщения:
    5
    да не халявщик я, просто вообще пока не соображаю в нем =)
    а еще вот парочка, последние:

    2. Используя стек, найти значение выражения: (2*4+6)/((20-4)*(17+3))
    3. Вычислить разность между произведением первой тройки чисел массива из 6 элементов и произведением второй тройки чисел: -2, -5, 8, -1, 25, 4

    Это все, больше тупых вопросов не буду задавать. Не дайте пропасть бедному студенту >_<
     
  3. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.784
    Debro именно халявщик, второе задание не понятно как делать, а третье
    Код (Text):
    1. ;Вычислить разность между произведением первой тройки чисел массива из 6 элементов и произведением второй тройки чисел
    2. .data
    3. massiv dw -2, -5, 8, -1, 25, 4
    4. .code
    5. mov di,offset massiv
    6. mov dx,0
    7. mov ax,[di]
    8. imul [di+2]
    9. imul [di+4]
    10. mov cx,dx
    11. mov bx,ax
    12. mov dx,0
    13. mov ax,[di+6]
    14. imul [di+8]
    15. imul [di+10]
    16. sub bx,ax
    17. sbb cx,dx; в паре cx:bx разность между произведением первой тройки чисел массива и произведением второй тройки чисел
     
  4. Debro

    Debro New Member

    Публикаций:
    0
    Регистрация:
    16 сен 2009
    Сообщения:
    5
    ладно-ладно, халявщик =)
    спасибо и за это
     
  5. Debro

    Debro New Member

    Публикаций:
    0
    Регистрация:
    16 сен 2009
    Сообщения:
    5
    а еще один тупой вопрос:
    я работаю через эмулятор i86 какой-то...там половина функций не пашет Т_Т
     
  6. splean

    splean New Member

    Публикаций:
    0
    Регистрация:
    9 сен 2009
    Сообщения:
    4
    Mikl___
    по моему вопросу на пред. странице ничего не можешь ответить?
     
  7. ganesha007

    ganesha007 New Member

    Публикаций:
    0
    Регистрация:
    27 авг 2009
    Сообщения:
    8
    Парни, есть желающие помочь мне с лабами? Надо очень
     
  8. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    ganesha007
    http://wasm.ru/forum/viewtopic.php?pid=339925#p339925
     
  9. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.784
    Если большой опыт в программировании и к томуже сообразительный, то совет следующий -- пишешь "программу компрессор-декомпрессор данных, используя алгоритм сжатия Хаффмана" на языке, который знаешь, а затем получившийся ехе прогоняешь через дизассемблер и получившийся листинг, после обязательной подчистки и редактирования, выдаешь за написанный тобой на "языке Assembler". Если тебе в чем-то "разбираться совершенно не хочется" -- почему этим должны заниматься другие?
     
  10. ganesha007

    ganesha007 New Member

    Публикаций:
    0
    Регистрация:
    27 авг 2009
    Сообщения:
    8
    max7C4

    Microedition вызвался помочь, уже начал выполнять лабы, но пропал уже вот как полмесяца. Поэтому мое предложение остается в силе
     
  11. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.784
    ganesha007
    а вы пожалуйтесь на Microedition администрации сайта :)
    кому-то еще 27 августа надо было "край как надо сделать лабы" видимо еще с прошлого года, но он в "программировании полный 0" хотя требовалось сделать "еще вчера", то есть до 26 августа, ganesha007 даже "готов был заплатить за это деньги" хотя его за язык никто не тянул... А вот интересно, как он отблагодарил Microedition, если у того после частично выполненого задания почему-то пропал интерес к ganesha007 и его лабам...
     
  12. ganesha007

    ganesha007 New Member

    Публикаций:
    0
    Регистрация:
    27 авг 2009
    Сообщения:
    8
    Mikl___

    ты за базаром следи! Как мы с Microedition договоримся - это наши с ним дела и тебя они не касаются. Если человек не отвечает, то у него может быть какие-то проблемы. Почему я на него должен жаловаться? По себе людей не судят.

    Обращаюсь ко всем пользователям данного форума: у кого есть возможность и желание помочь, прошу писать в личку или стучать в асю
     
  13. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    ganesha007
    WASM.COMMERCE заработал, туда пишите.
     
  14. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.784
    ganesha007
    За базаром пусть быдло-кодеры следят, вроде тебя
     
  15. Max_Cohen

    Max_Cohen New Member

    Публикаций:
    0
    Регистрация:
    10 янв 2009
    Сообщения:
    19
    Адрес:
    Где-то здесь
    Здравствуйте, помогите мне плиз! Сам на Delphi 7 быстро сделал такую задачу !(http://www.samplewebsite.narod.ru/a1.rar). А теперь хочу на Assembler-e (TASM32) сделать. Вот только я еще слаб на Assembler-e.
     
  16. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Max_Cohen
    Сорсы в студию. Что прикажите бинарник реверсить. Или как?
     
  17. Max_Cohen

    Max_Cohen New Member

    Публикаций:
    0
    Регистрация:
    10 янв 2009
    Сообщения:
    19
    Адрес:
    Где-то здесь
    max7C4
    Я вас что то не понял ?
     
  18. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Max_Cohen
    Типа помогите переписать и лепите бинарник. Я вот даже не собираюсь смотреть как он работает. Лучше пришлите текст исходника и тогда посмотрим.
     
  19. Max_Cohen

    Max_Cohen New Member

    Публикаций:
    0
    Регистрация:
    10 янв 2009
    Сообщения:
    19
    Адрес:
    Где-то здесь
    Вот исходник на Delphi 7:
    Код (Text):
    1. unit aaaaaaaaaa;
    2.  
    3. interface
    4.  
    5. uses
    6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    7.   Dialogs, StdCtrls;
    8.  
    9. type
    10.   TForm1 = class(TForm)
    11.     Edit1: TEdit;
    12.     Edit2: TEdit;
    13.     Edit5: TEdit;
    14.     Edit6: TEdit;
    15.     Edit7: TEdit;
    16.     Edit9: TEdit;
    17.     Label1: TLabel;
    18.     Label2: TLabel;
    19.     Label3: TLabel;
    20.     Label4: TLabel;
    21.     Label5: TLabel;
    22.     Label6: TLabel;
    23.     Edit3: TEdit;
    24.     Edit4: TEdit;
    25.     Edit8: TEdit;
    26.     Label7: TLabel;
    27.     Button1: TButton;
    28.     procedure Button1Click(Sender: TObject);
    29.   private
    30.     { Private declarations }
    31.   public
    32.     { Public declarations }
    33.   end;
    34.  
    35. var
    36.   Form1: TForm1;
    37.  
    38. implementation
    39.  
    40. {$R *.dfm}
    41.  
    42. procedure TForm1.Button1Click(Sender: TObject);
    43. var
    44.   a, b:integer;
    45. begin
    46.   a:=strtoint(edit1.Text);
    47.   b:=strtoint(edit2.Text);
    48.   edit3.Text:=inttostr(a+b);
    49.   a:=strtoint(edit6.Text);
    50.   b:=strtoint(edit5.Text);
    51.   edit4.Text:=inttostr(a+b);
    52.   a:=strtoint(edit9.Text);
    53.   b:=strtoint(edit7.Text);
    54.   edit8.Text:=inttostr(a+b);
    55. end;
    56.  
    57. end.
    Вот скриншот:
    [​IMG]
     
  20. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Код (Text):
    1. main proc
    2. call LoadIconW, 0, 32512
    3. mov ebx, eax
    4. call CreateSolidBrush, 000808080h, 0, offset ClassName, eax
    5. call LoadCursorW, 0, 32512, eax
    6. call GetModuleHandleW, 0, ebx, eax
    7. mov ebx, eax
    8. call RegisterClassExW, esp, 48, 4003h, offset WndProc, 0, 0, eax
    9. add esp, [esp]
    10. call CreateWindowExW, 00010100h, offset ClassName, offset Title, 06CF0000h, 8000h, 8000h, 8000h, 8000h, 0, 0, ebx, 0
    11. mov ebx, eax
    12. call ShowWindow, ebx, 5
    13. call UpdateWindow, ebx
    14. sub esp, 64
    15. jmp @@begin_loop
    16. @@loop:
    17. call TranslateMessage, esp
    18. call DispatchMessageW, esp
    19. @@begin_start:
    20. mov eax, esp
    21. call GetMessage, eax, 0, 0, 0
    22. inc eax
    23. jz @@error
    24. dec eax
    25. jnz @@loop
    26. mov eax, [esp+8]
    27. add esp, 64
    28. call ExitProcess, eax
    29. main endp
    30. ClassName  dw 'TForm',0
    31. Title  dw 'Form1',0
    32. EditClass dw 'EDIT',0
    33. ButtonClass dw 'BUTTON',0
    34. ButtonTitle dw 'Summa',0
    35. WndProc proc
    36. mov eax, [esp+8]
    37. cmp eax, 1
    38. jz @@create
    39. cmp eax, 111h
    40. jz @@command
    41. cmp eax, 2
    42. jmp DefWindowProcW
    43. @@create:
    44. push ebx
    45. mov ebx, [esp+8]
    46. call MakeEdit, 1, 100, 100, 100, 24
    47. call MakeEdit, 2, 100, 132, 100, 24
    48. call MakeEdit, 3, 100, 164, 100, 24
    49. call MakeEdit, 4, 208, 100, 100, 24
    50. call MakeEdit, 5, 208, 132, 100, 24
    51. call MakeEdit, 6, 208, 164, 100, 24
    52. call MakeEdit, 7, 316, 100, 100, 24
    53. call MakeEdit, 8, 316, 132, 100, 24
    54. call MakeEdit, 9, 316, 164, 100, 24
    55. call MakeButton, 10, 8, 8, 92, 18, offset ButtonTitle
    56. pop ebx
    57. xor eax, eax
    58. inc eax
    59. ret 16
    60. @@command:
    61. mov eax, [esp+12]
    62. cmp ax, 10
    63. jnz @@quit
    64. shr eax, 16
    65. test eax, eax
    66. jnz @@quit
    67. ;Button1OnClick()
    68. push ebx
    69. push ebp
    70. push esi
    71. push edi
    72. xor ebx, ebx
    73. call Summ
    74. call Summ
    75. call Summ
    76. pop edi
    77. pop esi
    78. pop ebp
    79. pop ebx
    80. jmp @@quit
    81. @@destroy:
    82. call PostQuitMessage, 0
    83. @@quit:
    84. xor eax, eax
    85. ret 16
    86. WndProc endp
    87. MakeEdit proc
    88. call GetModuleHandleW, 0
    89. lea edx, [esp+8]
    90. mov ecx, [esp+4]
    91. call CreateWindowExW, 0, offset EditClass, 0, 40000000h or 10000000h, dword [edx+0], dword [edx+4], dword [edx+8], dword [edx+12], ebx, ecx, eax, 0
    92. ret 20
    93. MakeEdit endp
    94. MakeButton proc
    95. call GetModuleHandleW, 0
    96. lea edx, [esp+8]
    97. mov ecx, [esp+4]
    98. call CreateWindowExW, 0, offset ButtonClass, [edx+16], 40000000h or 10000000h, dword [edx+0], dword [edx+4], dword [edx+8], dword [edx+12], ebx, ecx, eax, 0
    99. ret 24
    100. MakeButton endp
    101. Summ proc
    102. call FindWindowExW, dword [esp+36], ebx, offset EditClass, 0
    103. mov ebx, eax
    104. call GetTextLengthW, ebx
    105. lea [eax*2+2]
    106. call GlobalAlloc, 0, eax, eax
    107. mov esi, eax
    108. call GetWindowTextW, ebx, eax
    109. call FindWindowExW, dword [esp+36], ebx, offset EditClass, 0
    110. mov ebx, eax
    111. call GetWindowTextLengthW, ebx
    112. lea [eax*2+2]
    113. call GlobalAlloc, 0, eax, eax
    114. mov edi, eax
    115. call GetWindowTextW, ebx, eax
    116. call strtointW, esi
    117. mov ebp, eax
    118. call GlobalFree, esi
    119. call strtointW, edi
    120. add eax, ebp
    121. call GlobalFree, edi
    122. push 0
    123. sub esp, 12
    124. call inttostrW, eax, 15, esp
    125. call FindWindowExW, dword [esp+48], ebx, offset EditClass, 0
    126. mov ebx, eax
    127. call SetWindowTextW, ebx, esp
    128. add esp, 16
    129. ret
    130. Summ endp
    Вот примерно так. Не проверял. Просто набрал в браузере. И тасмом давно не пользовался, так что извините если где оффсеты забыл и в скобочки функции взял