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

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

  1. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    edemko
    да и если адрес в релтаме не вычисляется( корректируется), то без переменных
    Код (Text):
    1. lea eax, my_funk ;  my_funk метка функи в программе
    2. call eax
     
  2. kamax70

    kamax70 New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    36
    Пишу на делфи :
    Код (Text):
    1. function Getmemory(n: Integer; Size: Integer): Pointer;
    2. asm
    3.    test eax, eax
    4.    jle @@10
    5.    test edx, edx
    6.    jle @@10
    7.    imul edx
    8.    push eax
    9.    push LHND
    10.    call LocalAlloc
    11.    push eax
    12.    call LocalLock
    13.    ret
    14. @@10:
    15.    xor eax, eax
    16. end;
    17. //---------------------------------
    18. type
    19.   TRecord =packed Record
    20.     cmd : byte;
    21.     adr  : pointer;
    22.   end;
    23. var
    24.   p : ^TRecord;
    25. begin
    26.   P:=AllocateMem(1,sizeof(Trecord));
    27.   p.name:=$E9;
    28.   p.age :=@myfunc;
    А вот как дальше эту память вызвать я не знаю
    Код (Text):
    1. mov eax, p
    2. call eax
    Выдает ошибку..
     
  3. kamax70

    kamax70 New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    36
    там P:=Getmemory(1,sizeof(Trecord));
     
  4. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    kamax70
    здесь передаётся смещение, его надо вычислять.
    через регистр( абсолютно) другой опкод, FF /4
    и это коды jmp , а тебе наверно нужен call = FF /2
    вообщем подожди паскалистов и они тебе максимально точно и эффективно сделают
     
  5. adgam

    adgam New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2010
    Сообщения:
    3
    Подскажите,пожалуйста,как можно осуществить поиск подстрок в строке.

    К примеру у меня есть две строки:в одной осуществляется поиск подстроки,а вторая содержит имена регистров.Каждое имя нужно найти в первой строке.
     
  6. aggro

    aggro New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2010
    Сообщения:
    8
    Помогите пожалуйста.
    [​IMG]
    Написать модуль на языке Ассемблера для обработки строк (в виде процедуры или макроса).
    Написать на языке Ассемблера программу корректного ввода исходных данных.
     
  7. kamax70

    kamax70 New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2010
    Сообщения:
    36
    Что-то делфисты так и не пришли.. А мне крайне срочно))
     
  8. wsd

    wsd New Member

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

    SouL New Member

    Публикаций:
    0
    Регистрация:
    12 май 2010
    Сообщения:
    3
    Помогите! Нужна процедура для удаления каталогов (непустых, т.е. могут быть подкаталоги, заполненные файлами). Понятно, что легко удалить один файл или пустую директорию, а как быть с непустой? Гугл ни разу не помог ( Я понимаю, что через рекурсию нужно делать, но пока не представляю как :dntknw:
     
  10. SouL

    SouL New Member

    Публикаций:
    0
    Регистрация:
    12 май 2010
    Сообщения:
    3
    Забыл добавить, что под DOS :dntknw:
     
  11. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    SouL
    int 13h//ah=3 удаляет также легко как пустые так и не пустые директории
     
  12. mozgoboi

    mozgoboi New Member

    Публикаций:
    0
    Регистрация:
    13 май 2010
    Сообщения:
    2
    Подскажите как преобразовать данный код ввода с клавиатуры n-разрядных десятичных (16-ричных, 2-х) чисел в ввод четверичных чисел
    Код (Text):
    1. TITLE   VVOD ввод 16 бит двоичного числа, начиная со старших.
    2. .Model Small
    3. .STACK 100h
    4. Public VVOD  
    5. .data
    6. message db 10,13,’ввод очередного бита $’
    7. .code
    8. VVOD    PROC
    9. mov     ax,@data
    10. mov ds,ax
    11. mov cx,16
    12. vv_0_1:
    13.     mov ah,9
    14.     lea dx,message
    15.     int 21h
    16.     mov ah,1
    17.     int 21h
    18.     cmp al,31h
    19.     jz  vv1
    20.     cmp al,30h
    21.     jz  vv0
    22.     jmp vv_0_1
    23. vv1:
    24.     stc
    25.     rcl word ptr[di],1  ;di содержит адрес переменной, используемой для ;хранения вводимого числа. Этот адрес помещают в di перед вызовом модуля VVOD.
    26.     jmp loo
    27. vv0:
    28.     clc
    29.     rcl word ptr[di],1
    30. loo:
    31.     loop    vv_0_1
    32.     ret
    33.     vvod    endp
    34.     end
     
  13. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    mozgoboi
    может проще заново написать
    Код (Text):
    1. .data
    2. mes db 'input number: $'
    3. .code
    4. ...
    5. xor bx, bx
    6. mov cx, 8
    7. mov ah, 9
    8. mov dx, offset mes
    9. int 21h
    10. lp:
    11. mov ah, 8
    12. int 21h
    13. mov dl, al
    14. sub al, 48
    15. jc lp
    16. cmp al, 3
    17. jnc lp
    18. shl bx, 2
    19. or bl, al
    20. mov ah, 2
    21. int 21h
    22. loop lp
    23. ; в bx число
    24. ...
     
  14. Macheda

    Macheda New Member

    Публикаций:
    0
    Регистрация:
    7 май 2010
    Сообщения:
    4
    Люди,блокнот реализованный на ассемблере,мот есть у кого)?
     
  15. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
    http://www.wasm.ru/baixado.php?mode=src&id=146
    http://www.wasm.ru/baixado.php?mode=src&id=166
    http://www.wasm.ru/baixado.php?mode=src&id=238
    http://www.flatassembler.net/fasmw16914.zip
    http://www.wasm.ru/baixado.php?mode=src&id=154
    http://www.wasm.ru/baixado.php?mode=src&id=160
    http://www.wasm.ru/baixado.php?mode=src&id=155
     
  16. mozgoboi

    mozgoboi New Member

    Публикаций:
    0
    Регистрация:
    13 май 2010
    Сообщения:
    2
    нужна помощь с лабой.пишите, договоримся.
    mozgoboika@gmail.com
    или skype login:mozgoboikaa
     
  17. SouL

    SouL New Member

    Публикаций:
    0
    Регистрация:
    12 май 2010
    Сообщения:
    3
    Есть процедура копирования файла. Из нее нужно забадяжить копирование папки с файлами и подпапками через рекурсию ( Под DOS. Может, кто-то писал что-то подобное?
     
  18. Macheda

    Macheda New Member

    Публикаций:
    0
    Регистрация:
    7 май 2010
    Сообщения:
    4
    немножко не то с блокнотами)надо бы блокнот не под DOS, а консольный?Мот есть такой?)
     
  19. 7Friday

    7Friday New Member

    Публикаций:
    0
    Регистрация:
    13 май 2010
    Сообщения:
    7
    Возник вопрос. Есть флешка с фс FAT32, необходимо найти номер кластера корневого кталога. Делал следующим образом:

    hFile := CreateFile(PChar('\.PhysicalDrive'+IntToStr(Drive)),
    GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0);
    if hFile = INVALID_HANDLE_VALUE then Exit;

    А вот как считать байты отвечающие за адресацию корневого каталога? И каким образом эти значения перевести в нормальные? Кто знает напишите пожалуйста вместе с описанием параметров функций!
     
  20. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    7Friday
    На фат 32 эти значения располагаются в загрузочном секторе. Прочитайте его и просто возьмите оттуда необходимые значения (необходимые смещения см. в google этого добра навалом). А что значит перевести в нормальные?