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

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

  1. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    mov ax, X
    mov cx, Y
    sub ax, cx
    cmp ax, 50
    jae _A
    xor dx, dx
    mov cx, 5
    div cx
    jmp _B
    _A:
    mov cx, 10
    mul cx
    _B:
     
  2. Noga

    Noga New Member

    Публикаций:
    0
    Регистрация:
    10 окт 2008
    Сообщения:
    92
    wreck3d

    Код (Text):
    1. MagicNumber equ 3435973837
    2.  
    3.         mov eax,X
    4.         mov ebx,Y
    5.         sub eax,ebx
    6.         cmp eax,50
    7.         jle below      
    8.         mov edx, MagicNumber
    9.         mul edx
    10.         SHR edx, 2
    11.         jmp exit
    12.     below:
    13.         imul eax,10
    14.     exit:  
    15.         invoke ExitProcess,0
     
  3. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    wreck3d
    Код (Text):
    1. mov    eax,X
    2. sub    eax,Y
    3. mov    ecx,40
    4. mov    edx,3435973837
    5. cmp    eax,50
    6. cmovle edx,ecx
    7. mul    edx
    8. shr    edx,2
     
  4. mitrofanzzz

    mitrofanzzz New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2005
    Сообщения:
    17
    Адрес:
    Russia
    Покорнейше прошу разъяснить неукладывающуюся в голове вещь.
    До отупения простой код на ТАСМ:

    .model small ;модель памяти small
    .stack 100h ;размер стека

    .data ;начало сегмента данных
    vvod db 'Familiya?>>','$'
    str_dat db 0Ch,?,?,?,?,?,?,?,?,?,?,0Dh,0Ah,'$' ;строка под фамилию
    db '$' ;символ конца строки
    crlf db 0Dh,0Ah,'$'
    .code ;начало сегмента кода
    start: ;метка начала программы
    mov ax, @data ;передаем в регистр ds
    mov ds, ax ;метку сегмента данных

    mov dx,OFFSET vvod ;приглашение
    mov ah,9h ;
    int 21h ;

    mov dx,OFFSET crlf ;перевод строки
    mov ah,9h ;
    int 21h ;

    mov dx,OFFSET str_dat ;вывод строки
    mov ah,0Ah
    int 21h

    mov dx,OFFSET crlf ;перевод строки
    mov ah,9h ;
    int 21h ;

    mov ax, 4C00h
    int 21h
    end start

    Казалось бы куда уж проще, но вот вывод программы:
    Z:\temp\docs\asm\TASM\BIN>zadanie3
    Familiya?>>
    Sohin
    ohin

    Z:\temp\docs\asm\TASM\BIN>

    Никак не пойму в чем проблема...
    Ткните пожалуйста пальцем в ошибку.
    Заранее благодарен.
     
  5. mitrofanzzz

    mitrofanzzz New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2005
    Сообщения:
    17
    Адрес:
    Russia
    Извиняюсь опечатался -
    .model small ;модель памяти small
    .stack 100h ;размер стека

    .data ;начало сегмента данных
    vvod db 'Familiya?>>','$'
    str_dat db 0Ch,?,?,?,?,?,?,?,?,?,?,0Dh,0Ah,'$' ;строка под фамилию
    db '$' ;символ конца строки
    crlf db 0Dh,0Ah,'$'
    .code ;начало сегмента кода
    start: ;метка начала программы
    mov ax, @data ;передаем в регистр ds
    mov ds, ax ;метку сегмента данных

    mov dx,OFFSET vvod ;приглашение
    mov ah,9h ;
    int 21h ;

    mov dx,OFFSET crlf ;перевод строки
    mov ah,9h ;
    int 21h ;

    mov dx,OFFSET str_dat ;ввод строки
    mov ah,0Ah
    int 21h

    mov dx,OFFSET crlf ;перевод строки
    mov ah,9h ;
    int 21h ;

    mov dx,OFFSET str_dat ;вывод
    mov ah,9h ;
    int 21h ;


    mov ax, 4C00h
    int 21h
    end start
     
  6. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    mov dx, offset str_dat
    add dx, 2
    Первый байт -- длина буфера
    Второй -- кол-во веденных символов
     
  7. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    ну или сразу
    mov dx, offset str_dat+2
    но censored у него тут что-то еще, т.к. отсутствует первый символ, а на экран реально выводится 0x0C 0x05 'S' 'o' 'h' 'i' 'n' 0x0D ? ? ? ? 0x0D 0x0A, но ни 0x0C - FF
    ни 0x05 - ENQ не очищают последующий символ. т.е. на экране должны были появиться игральная масть трефы (по моему) и еще что-то, а уже за ними фамилия.
     
  8. mitrofanzzz

    mitrofanzzz New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2005
    Сообщения:
    17
    Адрес:
    Russia
    периодически я вижу игральную масть но понять принцип периодики я не в силах
     
  9. mitrofanzzz

    mitrofanzzz New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2005
    Сообщения:
    17
    Адрес:
    Russia
    censored друг если сделать как ты сказал получается вот это:
    Z:\temp\docs\asm\TASM\BIN>zadanie3
    Familiya?>>
    nikita
    kita
    Z:\temp\docs\asm\TASM\BIN>
     
  10. mitrofanzzz

    mitrofanzzz New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2005
    Сообщения:
    17
    Адрес:
    Russia
    а вот что появляется в файлике если скоммандовать zadanie3.exe > zadanie3.out
    для удобства неотображаемые символы в ковычках
    Familiya?>>"CR""LF"
    "CR""LF"
    sohin"CR"
    "CR""LF"
    "CR""LF"
    "LF"
    "ENQ"sohin"CR"
    "NUL""NUL""NUL""CR""LF"
    "LF"
    "ENQ"sohin"CR"
    "CR""LF"

    на "CR""LF" не обращаем внимания это мои бредовые домыслы. следовательно в файл все выводится верно... видимо дело в настройках виндовой консоли... больше вариантов я не вижу
     
  11. Student

    Student New Member

    Публикаций:
    0
    Регистрация:
    16 фев 2009
    Сообщения:
    7
    Помогите с лаб. работой. Нужно написать прогу на VC++ для перебора всех инъекций f:{0,1,…,m-1} --> {0,1,…,n-1}. Числа n и m задаются с клавиатуры. Например m = 3, n = 4. В массиве n хранятся числа 1,2,3,4 . Нада вывести все последовательности этих чисел по три числа, так чтоб числа в последовательности не повторялись, т.е. 123, 124, 132, 134, 142, 143, 213, 214 ... Выводить последовательности с новой строки.
     
  12. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Разве это инъекции? Читать раздел математики, посвященной комбинаторике.
     
  13. Student

    Student New Member

    Публикаций:
    0
    Регистрация:
    16 фев 2009
    Сообщения:
    7
    Не суть. Препод сказал что нада делать перебор последовательностей как я описал. Главное использовать рекурсию и чтоб значения n и m можно было задавать.
     
  14. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Ну преподам как обычно делать нечего.
    а что так сложно при каждом проходе процедуры копировать все элементы из переданного массива в локальный удаляя из них используемый и передавать локальный массив в следующий вызов.
    Код (Text):
    1. proc rec(array[], out[], limit)
    2. {
    3.   if (limit>0)
    4.   {
    5.     temp[];
    6.     for (i=0 to size(array)-1)
    7.     {
    8.       out[size(out)-limit]=array[i];
    9.       for (j=0 to size(array)-1) if (j<i) temp[j]=array[j] else if (j>i) temp[j-1]=array[j];
    10.       rec(temp, out, limit-1);
    11.     }
    12.   } else {
    13.     Write(out);
    14.   }
    15. }
    предупреждаю сразу. это не Си, так что придется переписывать, но алгоритм проледить возможно
     
  15. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Есть другой вариант, но его я приберегу для себя (и писать его надо дольше)
     
  16. delphi_jedi

    delphi_jedi New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2009
    Сообщения:
    8
    Метод Айлиффа. Проблема.

    Всё, решено.
     
  17. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    offset=(z*m*n+y*m+x)*size=((z*n+y)*m+x)*size

    offset - смещение в массиве
    size - размер ячейки
    x,y,z - координаты
    m - ширина
    n - высота
     
  18. Student

    Student New Member

    Публикаций:
    0
    Регистрация:
    16 фев 2009
    Сообщения:
    7
    Помогите кому не сложно

    Решить задачу с помощью алгоритма перебора с возвратом в VC.

    Сверхферзем называется фигура, которая умеет ходить и как ферзь, и как конь. Какое максимальное количество не угрожающих друг другу сверхферзей можно расставить на шахматной доске?
     
  19. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    64 белых ферзя. хотя на доске может поместиться и больше
     
  20. Student

    Student New Member

    Публикаций:
    0
    Регистрация:
    16 фев 2009
    Сообщения:
    7
    Хм.. интересная версия.. мож препод с похмелья и не заметит подвоха..