для чайников

Тема в разделе "WASM.BEGINNERS", создана пользователем Roy, 27 апр 2009.

  1. Roy

    Roy New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2009
    Сообщения:
    11
    здравствуйте ребятки , второй день читаю статью серджио на васм.ру , очень интересно и доходчиво объясняет , но для дальнейшего успешного продолжения чтения не знаю как создать файл . сом , что бы записать туда прогу для дебага . очень прошу объясните
     
  2. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Нужен редактор бинарных файлов, например, что-то похожее есть здесь:
    http://www.topshareware.com/Free-Hex-Editor-download-38240.htm

    Но это для простейшего кода типа: "CD 20" как в статье.
    Для более сложного COM файла советую FASM.
    Установите FASM и смотрите пример в директории ".\EXAMPLES\COMDEMO".
     
  3. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Roy
    Вообще того же debug вполне достаточно. Например, следующая последовательность команд выполнит требуемую задачу:
    Код (Text):
    1. C:\Users\Me\Desktop>debug
    2. -n com.com                                 ;задаём имя файла командой "n"
    3. -e 100                                        ;начинаем ввод данных с адреса 100h
    4. 17EE:0100  00.CD   00.02               ;вводим байт CD (вместо 00), жмём пробел и вводим байт 02 (вместо 00)
    5. -r cx                                          ;говорим, что хотим отредактировать содержимое регистра cx (из него берётся число байт, которое требуется сохранить в файл)
    6. CX 0000
    7. :2                                              ;выставляем содержимое регистра cx в 2 (сохранённый файл будет содержать 2 байта)
    8. -w 100                                        ;записываем данные начиная с адреса 100h командой "w" в файл
    9. Writing 00002 bytes
    10. -q                                              ;сваливаем
    11.  
    12. C:\Users\Me\Desktop>
    После этого в соответствующей папке (в данном случае на рабочем столе) можно будет лицезреть заветный com-файл.
     
  4. Roy

    Roy New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2009
    Сообщения:
    11
    Royпривет Гуру ,какой то хек эдитор есть , но я насчет подобных прог вообще деревянный , не льзя ли по подробнее , в плане интерфейса этой проги , там все по английски , и я ни чего не понимаю . элементарно нужно ввести код проги в каком нибудь текстовом редакторе , сохранить на рабочем столе , ну и как через дебаг ее открыть я вроде бы знаю ,я последний раз программировал на бейсике в школе , еще до доса , досом вообще не владею , мне нравиться консоль в виндовсе , любая информация для чайников по досу , и по асемблеру в частности для меня очень полезна , Серджио очень доходчиво объясняет по асм , прочитав первую статью , если пошевелить мозгами можно написать , прогу решения квадратного уравнения . на бумаге то она будет работать но вот как ее ввеси в машину . то есть как создать файл в виндовс , а затем запустить эту прогу в консоли через дебаг ?и кстати верно ли что с дебага запускаются только .сом файлы . извиняюсь за тупые вопросы ?асм рулит , бесспорно .
     
  5. karpen

    karpen New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2009
    Сообщения:
    31
    Почитай несколько первых глав рассылки Калашникова, в них находится ответ на твой вопрос и уже потом перейти к статьям Серджио.

    PS Я понимаю твою радость, но в следующий раз попробуй менее импульсивно писать.
     
  6. lobzik

    lobzik New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2009
    Сообщения:
    34
    подскажите как на масме получить PEB +)
     
  7. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    lobzik
    также как и на фасме, других асмах, в том числе ассемблерных вставках различных ЯВУ
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    lobzik
    Указатель на PEB находится в TEB по смещению 0x30. База дескриптора индексируемого селектором в Fs является началом страницы TEB.
     
  9. lobzik

    lobzik New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2009
    Сообщения:
    34
    GoldFinch Седня первый день как поставил ассемблер ))
    Clerk хм интересный андеграунд

    В делфи я так получал mov eax, fs:[$30], а в масме как?
     
  10. lobzik

    lobzik New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2009
    Сообщения:
    34
    На предпоследней странице был ответ xD assume fs:nothing
     
  11. Roy

    Roy New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2009
    Сообщения:
    11
    Почитай несколько первых глав рассылки Калашникова, в них находится ответ на твой вопрос и уже потом перейти к ст
    атьям Серджио
    я пробовал его читать , Серджио более доходчив
     
  12. _basmp_

    _basmp_ New Member

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

    > fasm ваш-файл.asm

    дока по фасму идет в поставке. тут на сайте в статьях есть перевод на ру

    сом файл - это обычный изначально 16 разрядный бинарь, где и данные и код предполагаются находящимися в одном сегменте 64кб. все что в нем есть должно начинаться с адреса 100 (орг 100) (може аш-и пропустил, давно с досом не баловался). поэтому вначале вам надо выставить 16 разрядный режим и орг 100. стартует прога с адреса 100, те с первого чего найдет за орг 100.

    лучше всего последовать совету AsmGuru62

    сайт фасма flatassembler.org или тут, в инструментах, но лучше таки посетить сайт
     
  13. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    _basmp_
    поправлю
    на
    орг 100h
     
  14. Roy

    Roy New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2009
    Сообщения:
    11
    l_inc
    а как в этот созданный файл через дебаг ввести код ?
     
  15. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Roy
    Так я ж дал всю последовательность команд для ввода CD 02, сохранения в файл и выхода. Ввод данных в память командой e, а сохранение данных из памяти в файл командой w.
     
  16. Roy

    Roy New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2009
    Сообщения:
    11
    Re: для чайников

    Roy
    Так я ж дал всю последовательность команд для ввода CD 02, сохранения в файл и выхода. Ввод данных в память командой e, а сохранение данных из памяти в файл командой
    ------------------------
    может быть cd 20 ?
     
  17. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Roy
    Ну... я написал вызов второго прерывания (CD 02), а завершение работы программы (и то, что требуется в статье) - это 20h-е прерывание (CD 20). :)
     
  18. Roy

    Roy New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2009
    Сообщения:
    11
    Ну... я написал вызов второго прерывания (CD 02), а завершение работы программы (и то, что требуется в статье) - это 20h-е прерывание (CD 20). :)
    ------------------------
    а где есть список прерываний ?
     
  19. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    Roy
    ...есть у меня подозрение (превращающееся в уверенность), что ты глумишься над нами... Начиная от восторгов, и заканчивая такими вопросами.

    попробуй спросить у гугля: "список прерываний", результат потрясающий.
     
  20. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566