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

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

  1. DANILA

    DANILA New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    4
    спасибо что помогаете . так на асме как ето будет выглядеть мне напишет ктонить ?
     
  2. FireFox

    FireFox New Member

    Публикаций:
    0
    Регистрация:
    9 май 2008
    Сообщения:
    19
    Arwen, вот этот кусок:
    Код (Text):
    1. 00401034  |.  B8 00000000   MOV EAX,0
    2. 00401039  |.  B2 0A         MOV DL,0A
    3. 0040103B  |.  B6 02         MOV DH,2
    4. 0040103D  |.  8AC2          MOV AL,DL
    Нужно тебе вот так:
    Код (Text):
    1. 00401034  |.  B8 00000000   MOV EAX,0
    2. 00401039      B6 0A         MOV DH,0A
    3. 0040103B      B2 02         MOV DL,2
    4. 0040103D  |.  8AC2          MOV AL,DL
    Если нажать кнопку "Вивод", то вместо "00000A" будет "0000002". Просто найти каким-нибудь хекс редактором цепочку B800000000B20AB602 и исправь ее на B800000000B60AB202

    А правильный пароль - VUc. Интересный у тебя препод - crackme задает. =)
     
  3. Arwen

    Arwen New Member

    Публикаций:
    0
    Регистрация:
    16 май 2008
    Сообщения:
    10
    FireFox
    ой спасибки большущее :)))
    а где в программе вы узнали правильный пароль?
     
  4. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    Там он не прописан изначально. Он генерится одним довольно странным алгосом. Кстати, можно искать и не такую длинную строку. Поиск по 8AC2 выдал единственный результат. Хорошее крекми. Всегда б так %) Шутка
     
  5. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    Помогите с курсовой.
    Язык: Паскаль

    Вот одно из заданий

    Сформируйте матрицу А размера NxN из чисел от n2 до 1, расположив их по спирали. Обход начните с правого нижнего угла в направлении против часо-вой стрелки; N=5.
     
  6. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    Вот, набросал чего-то. Алгоритм далеко не оптимален, а оптимальный мне искать лень. Пусть будет хоть так:
    (P - указатель на первый байт статического массива N*N)

    Код (Text):
    1. procedure FillArr(P:Pointer; N:DWORD);
    2. asm
    3.   PUSHAD;
    4.  
    5.   PUSH EAX;
    6.   XOR ECX, ECX;
    7.   MOV ESI, ECX;
    8.   MOV EBX, EDX;
    9.  
    10.   MOV EBP, EDX;
    11.   SHR EBP, 1;
    12.   JC @nfrm;
    13.   SUB EBP, 1;
    14.  
    15.   @nfrm:
    16.     MOV DWORD PTR [ESP], EAX;
    17.     LEA EDI, [EDX*4];
    18.     LEA EDI, [EDI+ECX*4-4];
    19.     @frst:
    20.       MOV DWORD PTR [EAX+EDI], EBX;
    21.       ADD EBX, 1;
    22.       SUB EDI, 4;
    23.     JGE @frst;
    24.  
    25.     LEA EDI, [EDX+ECX-1];
    26.     PUSH ECX;
    27.     ADD ECX, EDX;
    28.     @clmn:
    29.       LEA EAX, [EAX+EDX*4];
    30.       MOV DWORD PTR [EAX], EBX;
    31.       MOV DWORD PTR [EAX+ECX*4-4], EDI;
    32.       ADD DWORD PTR [EAX+ECX*4-4], ESI;
    33.       ADD EBX, 1;
    34.       SUB EDI, 1;
    35.     JG @clmn;
    36.     POP ECX;
    37.  
    38.     LEA EDI, [EDX+ECX-2];
    39.     @last:
    40.       MOV DWORD PTR [EAX+4], EBX;
    41.       ADD EAX, 4;
    42.       ADD EBX, 1;
    43.       SUB EDI, 1;
    44.     JG @last;
    45.    
    46.     LEA ESI, [EBX-1];
    47.     SUB ECX, 2;
    48.     LEA EBX, [EBX+EDX];
    49.     LEA EBX, [EBX+ECX-1];
    50.     MOV EAX, DWORD PTR [ESP];
    51.     LEA EAX, [EAX+EDX*4+4];
    52.     SUB EBP, 1;
    53.   JG @nfrm;
    54.  
    55.   BT EDX, 0;
    56.   JNC @jprt;
    57.     POP EAX;
    58.     LEA EAX, [EAX+EDX*4+4];
    59.     MOV DWORD PTR [EAX], EBX;
    60.     JMP @quit;
    61.   @jprt:
    62.     POP EAX;
    63.     LEA EAX, [EAX+EDX*4+4];
    64.     MOV DWORD PTR [EAX+4], EBX;
    65.     ADD EBX, 1;
    66.     MOV DWORD PTR [EAX], EBX;
    67.     ADD EBX, 1;
    68.     MOV DWORD PTR [EAX+EDX*4], EBX;
    69.     SUB EBX, 3;
    70.     MOV DWORD PTR [EAX+EDX*4+4], EBX;
    71.  
    72.   @quit:
    73.   POPAD;
    74. end;
    Добавлено: Прошу сильно ногами не бить, писалось за 12 с копейками минут =)
    Размер ячейки массива - двойное слово.
    Ах да. минимальное N - это 3. Если нужноещё и 2, то лучше просто вручную записать в массив цепочку чисел 3, 2, 4 и1 :)
     
  7. npopokkk

    npopokkk New Member

    Публикаций:
    0
    Регистрация:
    18 май 2008
    Сообщения:
    1
    Вопрос таков: как подсчитать длительность нажатия клавиши? Есть ли такое прерывание или нужно подключать счётчик?
    сколько уже ищу, всё не то выводит...
     
  8. LostUser

    LostUser New Member

    Публикаций:
    0
    Регистрация:
    18 май 2008
    Сообщения:
    1
    Здраствуйте! Срочно нужна ваша помощь...
    Завтра нужно сдать лабораторную, а у меня не получается ее сделать.
    Задание такое:
    Вводится с клавиатуры последовательность символов, которая заносится в массив, в таком виде: +10 +05 -10 -10 +08.
    По значениям элементов массива нужно значение этой функции:
    [​IMG]
    Учитываются только элементы меньше одинадцати, количество вводимых чисел указывается параметром компиляции n

    Я это делал так, но не получается (ошибка скорее всего в idiv):

    Код (Text):
    1. masm
    2. model small
    3. stack 256
    4. .data
    5. vvod    db  0ah,0dh,"vvod",0ah,0dh,'$'
    6. resul   db  0ah, 0dh, 'resultat', 0ah, 0dh, '$'
    7. num db (2)
    8. sum db (0)
    9. i   dw  1
    10. zn  db  ?
    11. pr  db  -1
    12. a   db  n dup(?)   
    13. .code
    14. main:          
    15.     mov ax,@data
    16.     mov ds,ax
    17. ;вывод текста
    18.     mov ah,09h
    19.     lea dx,vvod
    20.     int 21h
    21. ;ввод однозначного числа и преобразование в дв. число с ФТ
    22.     mov cx,n
    23.     lea si,a
    24. per:   
    25.     mov ah,01h
    26.     int 21h
    27.     mov zn,al
    28.     int 21h
    29.     mov bh,al
    30.     int 21h
    31.     mov bl,al
    32.     mov ax,bx
    33.     and ax,0f0fh
    34.     aad
    35.  
    36.     cmp     zn,'+'
    37.     je  met
    38.     imul    pr
    39. met:    mov byte ptr[si],al
    40.     inc si
    41.     mov ah,02h
    42.     mov     dl,' '
    43.     int 21h
    44.     loop    per
    45.  
    46.     lea     dx,resul
    47.     mov ah,09h
    48.     int 21h
    49.  
    50. ;далее вычисление
    51.     mov cx, n
    52.     xor ax,ax
    53.     lea si, a
    54.    
    55.     sub cx,2           ; чтобы удовлетворить условие "n-1"
    56.     inc si             ; чтобы удовл. условие "i=2"
    57.  
    58. calc:
    59.     mov al, byte ptr[si]
    60.     cmp al, 11
    61.     inc si
    62.     jae skip2        ; если a(i)    >=11 то пропускаем число
    63.     ;cbw             ; преобразуем тип байт в AL в слово, кот. заносится в AX
    64.     inc num
    65.     idiv num
    66.     add sum, al
    67. skip2:
    68.     loop calc;
    69.  
    70.  
    71.     xor ax,ax
    72.     mov al,sum
    73.  
    74. ;преобразование в десят. распак. число
    75.     cmp ax,0
    76.     jge met1
    77.     imul    pr
    78.     mov bx,ax
    79.     mov dl,'-'
    80.     mov ah,02h
    81.     int 21h
    82.     mov ax,bx  
    83. met1:   aam
    84. ;вывод результата
    85.     mov dx,ax
    86.    
    87.     or  dx,3030h
    88.     mov ah,02h
    89.     rol dx,8
    90.     int 21h
    91.     rol dx,8
    92.     int 21h
    93.    
    94. exit:
    95.     mov ax,4c00h
    96.     int 21h
    97. end main
    Буду благодарен, если поможете разобраться :)
     
  9. Rupof

    Rupof New Member

    Публикаций:
    0
    Регистрация:
    21 май 2008
    Сообщения:
    2
    Доброго времени.
    Нужна Ваша помощь, буду благодарен за потраченное время на мой небольшой пример.

    Требуется сделать на Tasm (с прерываниями под дос) следующую задачу:
    1) - просмотр содержимого заданного каталога
    2) - отображение информации о выбранном файле с возможностью изменения его атрибутов
    3) - создание файла с вводом его содержимого в текстовом формате

    Приму любые куски кода по любой задачи, примеры, отрывки :)
     
  10. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Rupof
    тут понимаеш какое дело ...
    если тебе прояснить надо что-то конкретное, то пожалуйста.
    а писать за тебя ни кто не будет просто так.
    типа начинающий риппер???
    или хочеш найти оленей заучек, которые за тебя всё сделают, типа для рейтинга?

    Будет кто банить этот бардак?
    ну достали уже эти "IT попрашайки"
     
  11. Rupof

    Rupof New Member

    Публикаций:
    0
    Регистрация:
    21 май 2008
    Сообщения:
    2
    C меня пиво в WMZ\WMR.
     
  12. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Rupof
    1) - просмотр содержимого заданного каталога
    поиска файлов по шаблону *.* int 21h AH=4Eh начало поиска, AH=4Fh для продолжения поиска файлов по шаблону. Для поиска всех файлов соответствующих данному шаблону, надо вызвать функцию 4Eh, после чего вызывать функцию 4Fh, до тех пор, пока CF=0
    2) - отображение информации о выбранном файле с возможностью изменения его атрибутов
    Поиск файла int 21h AH=4Eh DS:lol: X адрес строки с именем файла В CX должен находиться шаблон атрибутов (биты 0 и 5 игнорируются). При выходе, если ошибки не произошло, то флаг CF = 0. Область DTA (после загрузки программы эта область находится по адресу DS:0080h или ES:0080h) содержит информацию о файле
    Смещение Длина Содержимое Расшифровка
    0h 15h Резерв -
    15h 01h атрибут файла -
    16h 02h Время создания или последнего
    обновления файла Биты:11-15: час
    Биты 5-10: минута
    Биты 0-4: секунды/2
    18h 02h Дата создания или последнего
    обновления файла Биты 9-15: год после 1980,
    биты 5-8: месяц, биты 0-4: день
    1Ah 04h Длина файла --
    1Eh 0Dh Имя файла + расширение файла + символ нуля
    Для определения атрибутов заданного файла int 21h AX=4300h. DS:lol: X содержат адрес строки с именем файла, строка должна заканчиваться нулем и может содержать путь к файлу. Если не было ошибки, то флаг CF=0, в CX возвращаются атрибуты. Если произошла ошибка, то CF=1 в AX находится код ошибки.
    Для установки атрибутов заданного файла int 21h AX=4301h. DS:lol: X содержат адрес строки с именем файла, строка должна заканчиваться нулем и может содержать путь к файлу. В CX должны содержаться новые атрибуты файла. Если не было ошибки, то CF = 0. Если ошибка, то CF=1 в AX находится код ошибки. Функция не может изменить метки тома или каталога
    3) - создание файла с вводом его содержимого в текстовом формате
    Файл можно создать с помощью int 21h функция 3Ch. в DS:lol: X находится адрес строки с именем файла. Строка должна заканчиваться нулем и может содержать не только название файла, но и путь к нему. AH=3Ch. В CX содержится атрибут будущего файла. Для обычного файла CX=0. Обычный файл после создания является архивным. При выходе из функции создания файла если не было ошибки, то CF=0 и в AX находится файловый номер, который будет нужен для последующих операций (записи, чтения и закрытия файла). Если произошла ошибка, то CF=1 и в AX находится код ошибки. После создания файла его открывают для записи. AX=3D02h. DS:lol: X содержат адрес строки с именем файла, строка должна заканчиваться нулем и может содержать путь к файлу. Запись файла AH=40h. При вызове этой функции в BX должен находиться файловый номер, в регистре CX – количество байт, которое нужно записать, в DS:lol: X должен находиться адрес области памяти, из которой будет производиться запись в файл. При выходе, если ошибки не было, то CF= 0 в AX находится количество записанных байт. Если ошибка, то CF=1 в AX находится код ошибки. После работы с файлом его необходимо закрыть AH=3Eh. в BX должен находиться файловый номер
     
  13. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Rupof
    сложность твоей задачи определяется намного большим
    количеством пива чем ты представляеш :)
    ты просто в силу своего не знания не можеш определить сложность задачи ;)
    и на будущее публикуй это в ветке COMMERCE.
    и кстати, сами преподы, берут за это меньше бабла, чем это стоит сделать.
    попробуй преподу лапку подмазать :)
     
  14. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    wsd
    Что ты советуешь в разгар "борьбы с коррупцией":)
     
  15. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Mikl__
    похвально!
    ты вот для чего это сделал?
    думаеш ему это чем-то помогло?
     
  16. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    wsd
    Как показывает практика:dntknw: но есть надежда
     
  17. CocoJombo

    CocoJombo New Member

    Публикаций:
    0
    Регистрация:
    2 май 2008
    Сообщения:
    10
    С меня 20 долларов за две задачи..
    Первая с разложением числа(ввод с делфи) ТАСМ
    Вторая ввод с ассемблера.. ТАСМ
     
  18. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    Помогите, нужно решить

    Составить уравнения сторон треугольника с вершинами A(X1, Y1), B(X2, Y2), C(X3, Y3). Ввод координат точек реализовать в виде процедуры. Вывод результатов на экран или принтер задавать в диалоге. Результат выдавать в следую-щем виде:
    "Искомое уравнение имеет вид:
    У = АХ + В",
    Где: А и В – коэффициенты, вычисленные в программе.
    Получить результаты для контрольного варианта, просчитанного вручную.

    Найдите сумму элементов четных строк матрицы А = (aii) (I = 1,2,…,m; j = 1,2,…,n), в которых на главной диагонали расположены числа, кратные k; m=6, n=6, k=13.
     
  19. karinacka

    karinacka New Member

    Публикаций:
    0
    Регистрация:
    23 май 2008
    Сообщения:
    1
    Ребят помогите с лабой (Из последовательности чисел выбрать все простые числа) решение на ассемблере, помогите ,надеюсь на вас
     
  20. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    хм. и сразу возникают вопросы: под какой проц, под какую ось, под какой компилятор?