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

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

  1. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    FreaK
    ну, я же сказал, что это не законченный код.
     
  2. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.784
    Кто сказал, что будет легко?
    1) Здесь нет экстрасенсов -- поэтому напиши какие ошибки выдал компилятор, на какие строки компилятор ссылается и содержимое этих строк, ибо не очевидно переписал ли ты, то что тебе дал Microedition без изменений или написал что-то самостоятельно
    2) из имен переменных a, b, c, d, n и m замени с на с1 -- в ассемблере с зарезервированное слово -- может быть из-за этого и не компилируется
     
  3. FreaK

    FreaK New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2009
    Сообщения:
    4
    у меня он на все подряд ругается.

    .model small
    .stack 100h
    .data

    .code
    start:

    mov ax, a
    mul a
    dec ax
    mov bx, ax

    mov ax, c1
    shl ax, 1
    mov dx, d
    shr dx, 2
    add ax, dx
    add ax, 23
    xor dx, dx
    div bx
    mov m, ax


    end start


    так листинг должен выглядеть?
     
  4. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    нет, примерно вот так:
    Код (Text):
    1. .model    small
    2. .stack    100h
    3. .data
    4.  
    5. .code
    6. start:
    7.  
    8. mov    ax, a  
    9. mul     a      
    10. dec     ax    
    11. mov    bx, ax
    12.  
    13. mov    ax, c1  
    14. shl      ax, 1  
    15. mov    dx, d  
    16. shr      dx, 2  
    17. add     ax, dx  
    18. add     ax, 23
    19. xor      dx, dx  
    20. div      bx      
    21. mov    m, ax
    22.  
    23. end    start
    а также, не хватает у вас переменных с именами a, m, d...
     
  5. rdtsc

    rdtsc Параллелепипедов Артем

    Публикаций:
    0
    Регистрация:
    10 мар 2009
    Сообщения:
    180
    Адрес:
    Москва
    На nasm :
    m=(2*c+d/4+23)/(a*a-1)

    mov eax,a
    mov ecx,c
    mov edx,d
    mul eax
    dec eax
    shr edx,2
    lea ecx,[ecx*2+edx+23]
    xchg eax,ecx
    xor edx,edx
    div ecx
    ;OTVET: [m]=eax, m-[m]=edx
     
  6. rdtsc

    rdtsc Параллелепипедов Артем

    Публикаций:
    0
    Регистрация:
    10 мар 2009
    Сообщения:
    180
    Адрес:
    Москва
    n=(2*b-38*c)/(b+a/c+1)

    mov eax,a
    mov ebx,b
    mov ecx,c

    xor edx,edx
    div ecx
    inc eax
    add eax,ebx

    shl ebx,1
    push eax
    mov eax,byte 38
    mul ecx
    sub ebx,eax
    pop eax
    xchg eax,ebx
    div ebx

    ;n=eax
     
  7. MEPOX

    MEPOX New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2008
    Сообщения:
    259
    Задача о ферзях. Вроде все её знают. Когда стал искать решение, то наткнулся на вот это:

    Код (Text):
    1. program ferz;
    2. uses crt;
    3. var s,i:integer;
    4. a:array[1..8] of boolean;
    5. b:array[2..16] of boolean;
    6. c:array[-7..7] of boolean;
    7. x:array[1..8]of integer;
    8.  
    9. procedure print;
    10. var k:integer;
    11. begin
    12. s:=s+1;
    13. write('Решение номер ',s:2,' : ');
    14. for k:=1 to 8 do write(x[k]:4);
    15. writeln;
    16. write('Press <Enter>');
    17. readln;
    18. end;{of print}
    19.  
    20. procedure try(i:integer);
    21. var j:integer;
    22. begin
    23. for j:=1 to 8 do
    24. if a[j]and b[i+j]and c[i-j] then
    25. begin
    26. x[i]:=j;
    27. a[j]:=false;b[i+j]:=false;c[i-j]:=false;
    28. if i<8 then try(i+1) else print;
    29. a[j]:=true;b[i+j]:=true;c[i-j]:=true;
    30. end;
    31. end;{of try}
    32.  
    33. begin{of main}
    34. clrscr;
    35. for i:=1 to 8 do a[i]:=true;
    36. for i:=2 to 16 do b[i]:=true;
    37. for i:=-7 to 7 do c[i]:=true;
    38. s:=0;
    39. try(1)
    40. end.
    чем такое решение лучше чем просто
    for(i1=1;i1<8;i1++)....for(i2=1;i2<8;i2++).... и тд ?? (ну то есть просто перебор с отсечением)
    да и вообще что он тут делает? какие-то непонятные отрицательные массивы..
     
  8. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    MEPOX
    Вот была тема - http://www.wasm.ru/forum/viewtopic.php?id=15169

    Сейчас попытаюсь понять.
     
  9. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    Похоже, что
    b,c - диагонали (30 штук)
    a - столбцы
    x - строки
    i - номер строки
    j - номер столбца

    Логика такая:

    1) i=1
    2) j=1
    3) находим очередной свободный столбец j в i-ой строке (при этом сответствующие диагонали должны быть также свободны)
    4) если не найден - выход
    5) помечаем столбец и диагонали как занятые, записываем номер столбца в x
    6) если i=1, то k=j
    7) если i<8, то увеличиваем i на единицу и переходим к шагу 2
    8) иначе выводим на экран массив x
    9) освобождаем все столбцы и диагонали, j=k
    10) переходим к шагу 3
     
  10. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    На девятом шаге i=1
     
  11. MEPOX

    MEPOX New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2008
    Сообщения:
    259
    murder ну в общем я понял, это решение похоже на моё, только моё ищет сразу все 92 расстановки(без поворотов, отражений и прочего), а не по частям, как здесь.
     
  12. Max_Cohen

    Max_Cohen New Member

    Публикаций:
    0
    Регистрация:
    10 янв 2009
    Сообщения:
    19
    Адрес:
    Где-то здесь
    Здравствуйте, народ! У меня вопрос про "Байты" :)

    Ну так, есть файл "*.mp3" и я незнаю в каких байтах хранится "продолжительность" музыки? Может быть кто-то и вас знает :)

    Если можно по подробнее. Большое спасибо!
     
  13. Clear__Energy

    Clear__Energy New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2009
    Сообщения:
    432
  14. Max_Cohen

    Max_Cohen New Member

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

    Clear__Energy New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2009
    Сообщения:
    432
    вот это почитай. в одном из постов там есть ссылка на перловый модуль парсинга ID3v2. а там и содержится длительность
     
  16. Max_Cohen

    Max_Cohen New Member

    Публикаций:
    0
    Регистрация:
    10 янв 2009
    Сообщения:
    19
    Адрес:
    Где-то здесь
    Clear__Energy
    я ничего не понял из того что вы писали :dntknw: А можно по подробнее. Спасибо.
     
  17. Clear__Energy

    Clear__Energy New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2009
    Сообщения:
    432
    я писал, что есть решение вашей проблемы, но на языке Perl. если вы действительно хотите её решить, то, думаю разобраться с этим кодом будет несложно. пожалуй, всё.
     
  18. Max_Cohen

    Max_Cohen New Member

    Публикаций:
    0
    Регистрация:
    10 янв 2009
    Сообщения:
    19
    Адрес:
    Где-то здесь
    Clear__Energy
    Спасибо. И теперь мне нужно изучить Perl :)
     
  19. Clear__Energy

    Clear__Energy New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2009
    Сообщения:
    432
    хуже от этого не станет =)
    либо пользуй гугл, посмотри сорцы лялих-плееров...
     
  20. ganesha007

    ganesha007 New Member

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

    Парни, выручайте. Я в программировании полный 0, а край как надо сделать лабы. Я готов даже за деньги. Вот собственно сами задания:

    1)
    Цель работы
    Научиться писать системные программы для операционной системы MS DOS.

    Задание
    • Напишите программу на ассемблере. Откомпилируйте ее. Попытайтесь изучить ее исходный текст с помощью отладчика и дизассемблера.
    • Проделайте то же самое для программы, написанной на языке высокого уровня. Сделайте вывод о причинах высокой скорости работы программ, написанных на ассемблере?
    • Напишите простейшую защиту от отладки программ.
    • Напишите целевую процедуру своего прерывания, которая бы выводила на экран слово “DOS” и при этом не использовала бы прерывания 21h или 10h.
    • Напишите программу, которая бы работала с файлами и клавиатурой через функции int21h
    • Напишите программу, перехватывающую любое прерывание на любом языке высокого уровня
    • Сделайте то же самое, но на ассемблере. Сравните качественные характе-ристики двух программ
    • Перехватите прерывание 9h. Объясните возникшие проблемы.
    • Реализуйте все примеры из методички.

    2)
    Цель работы
    Понять принципы построения реентерабельных программ и научиться организовывать повторное вхождение в уже запущенную программу.

    Задание
    • Напишите программу, которая по нажатию на ATL+L записывала бы в файл информацию по заданию преподавателя и выгружалась бы после этого. Оформите программу в виде отчета с приведением алгоритма.
    • Напишите резидентную программу c преодолением нереентерабельно-сти на языке высокого уровня.


    Помогите, кто чем может. Можно стучать в асю 441177ноль95 Александр