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

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

  1. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
    #2344,
    jle, воплощаюцщий в себе и jl, следует первым.
     
  2. asm_begginer

    asm_begginer New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2010
    Сообщения:
    4
    скачка файла

    как на ассемблере скачать
    несколько файлов с site .com и
    запустить один из них
     
  3. Miyamoto

    Miyamoto New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2010
    Сообщения:
    46
    Чиво?
     
  4. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    asm_begginer
    так же как на си, делфи и т.д и т.п.
     
  5. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.709
    asm_begginer
    напиши программу на си, делфи и т.д. и т.п. добейся того, чтобы программа оказалась работоспособной, дизассемблируй ее, убери лишнее и получишь программу на ассемблере
     
  6. Kirow

    Kirow New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2010
    Сообщения:
    24
    Нужно определить какая программа наиболее оптимально выполняется.
    есть код на GPSS и 2 на ассемблере.С помощью какой проги я мог бы оценить затраты машинного времени\памяти\итерации\загрузка цп, в общем получить хоть какую-нибудь информацию для качественного сравнения.
     
  7. wsd

    wsd New Member

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

    profiler
     
  8. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    asm_begginer
    1. Ну вот посмотри в гугле все по запросу "invoke InternetOpen" - кавычки обязательны.
    Так ты скачаешь и сохранишь на диске файл.
    2. Дальше посмотри в гугле все по запросу "invoke ShellExecute" или "invoke WinExec"
    Так ты запустишь файл на исполнение, или откроется ассоциат. соответствие
    3. Слепи 1. и 2.
    4. be happy ;)
     
  9. Kirow

    Kirow New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2010
    Сообщения:
    24
    wsd

    если это был конкретный ответ,то не могли бы по-подробнее?
     
  10. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Kirow
    http://developer.amd.com/cpu/CodeAnalyst/Pages/default.aspx
    http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/
     
  11. Godod

    Godod New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2010
    Сообщения:
    16
    Здравствуйте все. Есть код на ассемблере:
    Код (Text):
    1. title Lab7asm.asm
    2. .386
    3. .MODEL flat,Pascal
    4. ; Вариант 23
    5. codeseg
    6. PUBLIC Lab7asm
    7. Lab7asm proc far
    8. EXTERN a:DWord,b:DWord
    9. EXTERN y:DWord
    10. ;Start procedure
    11. mov eax,a   ;<eax>=a
    12. mov ebx,b   ;<ebx>=b
    13. cmp eax,ebx ;сравнение a~b
    14. jA M1       ;a>b goto @@1
    15. jB M2       ;a<b goto @@2
    16. ;a = b
    17. mov eax,-11
    18. mov y,eax
    19. jmp short M3Exit
    20. ;a > b
    21. M1:
    22. mov eax,ebx ;<eax>=b
    23. xor edx,edx ;очищение регистра dx
    24. cdq     ;<eax>===><edx:eax>
    25. div a       ;<eax>=b/a
    26. add eax,2   ;<eax>=b/a+2
    27. mov y,eax
    28. jmp short M3Exit
    29. ;a < b
    30. M2:
    31. sub eax,8   ;<eax>=a-8
    32. xor edx,edx ;очищение регистра dx
    33. cdq     ;<eax>===><edx:eax>
    34. div ebx     ;<eax>=(a-8)/b
    35. mov y,eax
    36. jmp short M3Exit
    37. ;Results
    38. M3Exit:
    39. ret
    40. Lab7asm endp
    41. end
    Но когда запускаю в паскале он мне выдает, что не правильно определенно PUBLIC(Invalid Public Definition).Как от этого избавится?
     
  12. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    Godod
    Just google it:
     
  13. Gesselle

    Gesselle New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2010
    Сообщения:
    1
    Помогите разобраться в программе, работающей с мышью.
    В тексте последовательно встречаются:
    Код (Text):
    1. mov byte ptr scr,0
    2. ....
    3. inc byte ptr scr
    4. ........
    Что это за нечто?
     
  14. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    первая инструкция помещает в переменную scr размером в один байт значение 0
    вторая - увеличивает значение переменной scr на единицу
     
  15. Godod

    Godod New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2010
    Сообщения:
    16
    Спасибо читал, только как исправить если все верно описал?
     
  16. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    Godod
    Ну, раз это неочевидно, так и быть:
    1)
    нужно сделать соответствие описания идетнификатора PUBLIC и EXTERNAL;
    2)
    убрать одну из директив PUBLIC;
    3)
    переместить символы PUBLIC в сегмент CODE.
     
  17. Godod

    Godod New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2010
    Сообщения:
    16
    Аж 3 раза кеп. Спасибо, за то что обьяснил мне тоже что я и знал. Если ты посмотришь на код, все правильно написано и вставлено. Если не знаешь почему оно так выводит тогда не надо быть кепом.
     
  18. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    Godod
    Некоторые без напутствий КЭПа не обходятся. Четвёртый раз:
    Если бы было
    , то ошибки не возникало бы, не правда ли?
    Приведите модуль на паскале, где у Вас тоже всё правильно написано и вставлено, где определены a, b, y и где используется Lab7asm.
    Ну или можете не приводить, если с помощью КЭПа уже нашли ошибку.
     
  19. Godod

    Godod New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2010
    Сообщения:
    16
    Приведу.
    Код (Text):
    1. Program Lab7P
    2. {$l Lab7asm};
    3. {$f+}
    4. Uses CRT;
    5. Const
    6. inv2='Rezultat:';
    7.  
    8. IntMin=-32768;
    9. IntMax=32767;
    10.  
    11. Label L1;
    12. var
    13. a,b,y              :LongInt;
    14. ch                 :Char;
    15.  
    16. {Vnewnie proceduri na assemblere}
    17. Procedure Lab7; external;
    18.  
    19. function F(a,b:LongInt; Min,Max:Integer) : Boolean;
    20. Var x1 : LongInt;
    21.     s  : LongInt;
    22.     x  : LongInt;
    23. Begin
    24. F:=True;
    25. if (a>b) then
    26. begin
    27. x1:=b div a + 2;
    28.   if(x1<Min)OR(x1>Max) then
    29.   begin
    30.   writeln(inv2,x1,Min,'..',Max,'!!!!');
    31.   F:=False;
    32.   Exit;
    33.   end
    34.   else
    35.   writeln('Pascal:');
    36.   writeln('b/a+2');
    37.   writeln(inv2,x1);
    38. End
    39. else
    40.  begin
    41.  x:=(a-8) div b;
    42.     if(x<Min)OR(x>Max) then
    43.      begin
    44.      writeln(inv2,x,Min,'..',Max,'!!!!');
    45.      F:=False;
    46.      Exit;
    47.      End
    48.      else
    49.      if(a=b) then
    50.      begin
    51.      s:=-11;
    52.      writeln('Pascal:');
    53.      writeln('a=b');
    54.      writeln(inv2,s);
    55.      End
    56.      else
    57.      writeln('Pascal:');
    58.      writeln('(a-8)/b');
    59.      writeln(inv2,x);
    60. End;
    61. End;
    62.  
    63.  
    64. Procedure ExpS; {ShortInt}
    65. Label L1;
    66. Begin
    67. Writeln('=================Int===================');
    68. L1:
    69. Write('Vvedite a:');
    70. Readln(a);
    71. Write('Vvedite b:');
    72. Readln(b);
    73. if NOT(F(a,b,IntMin,IntMax)) then
    74. goto L1;
    75. writeln('Assembler:');
    76. Lab7;
    77. writeln(inv2,y);
    78. End;
    79. {------------------------------------------------------}
    80.  
    81. Procedure Main;
    82. Var i:Integer;
    83. Begin
    84. writeln(' Vi4islit: if(a>b) x=b/a+2; if(a<b) x=(a-8)/b; if(a=b) x=-11 ');
    85. Repeat
    86. writeln('Vvedite vaw vibor x,a,b');
    87. writeln('   1 - LongInt');
    88. Writeln('   2 - Vihod');
    89. {$I-}
    90. Readln(i);{Korrektnost' vvoda}
    91. {$I+}
    92. Until(IOResult=0);
    93. case i of
    94. 1:ExpS;
    95. 2:HALT(0)
    96. else Exit;
    97. end
    98. End;
    99. begin
    100. Repeat
    101. ClrScr;
    102. Main;
    103. Writeln('Povrotim?(y/n)');
    104. ch:=ReadKey;
    105. Until(ch='n') or (ch='N');
    106. end.
     
  20. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    Найдите отличие в названии процедуры.

    Не знаю паскаля, возможно нужно a, b и y каким-то образом объявить как public.