здравствуйте ребятки , второй день читаю статью серджио на васм.ру , очень интересно и доходчиво объясняет , но для дальнейшего успешного продолжения чтения не знаю как создать файл . сом , что бы записать туда прогу для дебага . очень прошу объясните
Нужен редактор бинарных файлов, например, что-то похожее есть здесь: http://www.topshareware.com/Free-Hex-Editor-download-38240.htm Но это для простейшего кода типа: "CD 20" как в статье. Для более сложного COM файла советую FASM. Установите FASM и смотрите пример в директории ".\EXAMPLES\COMDEMO".
Roy Вообще того же debug вполне достаточно. Например, следующая последовательность команд выполнит требуемую задачу: Code (Text): C:\Users\Me\Desktop>debug -n com.com ;задаём имя файла командой "n" -e 100 ;начинаем ввод данных с адреса 100h 17EE:0100 00.CD 00.02 ;вводим байт CD (вместо 00), жмём пробел и вводим байт 02 (вместо 00) -r cx ;говорим, что хотим отредактировать содержимое регистра cx (из него берётся число байт, которое требуется сохранить в файл) CX 0000 :2 ;выставляем содержимое регистра cx в 2 (сохранённый файл будет содержать 2 байта) -w 100 ;записываем данные начиная с адреса 100h командой "w" в файл Writing 00002 bytes -q ;сваливаем C:\Users\Me\Desktop> После этого в соответствующей папке (в данном случае на рабочем столе) можно будет лицезреть заветный com-файл.
Royпривет Гуру ,какой то хек эдитор есть , но я насчет подобных прог вообще деревянный , не льзя ли по подробнее , в плане интерфейса этой проги , там все по английски , и я ни чего не понимаю . элементарно нужно ввести код проги в каком нибудь текстовом редакторе , сохранить на рабочем столе , ну и как через дебаг ее открыть я вроде бы знаю ,я последний раз программировал на бейсике в школе , еще до доса , досом вообще не владею , мне нравиться консоль в виндовсе , любая информация для чайников по досу , и по асемблеру в частности для меня очень полезна , Серджио очень доходчиво объясняет по асм , прочитав первую статью , если пошевелить мозгами можно написать , прогу решения квадратного уравнения . на бумаге то она будет работать но вот как ее ввеси в машину . то есть как создать файл в виндовс , а затем запустить эту прогу в консоли через дебаг ?и кстати верно ли что с дебага запускаются только .сом файлы . извиняюсь за тупые вопросы ?асм рулит , бесспорно .
Почитай несколько первых глав рассылки Калашникова, в них находится ответ на твой вопрос и уже потом перейти к статьям Серджио. PS Я понимаю твою радость, но в следующий раз попробуй менее импульсивно писать.
lobzik Указатель на PEB находится в TEB по смещению 0x30. База дескриптора индексируемого селектором в Fs является началом страницы TEB.
GoldFinch Седня первый день как поставил ассемблер )) Clerk хм интересный андеграунд В делфи я так получал mov eax, fs:[$30], а в масме как?
Почитай несколько первых глав рассылки Калашникова, в них находится ответ на твой вопрос и уже потом перейти к ст атьям Серджио я пробовал его читать , Серджио более доходчив
Roy берите фасм, кидайте фасм.ехе в директорию где экспериментировать собрались или по пафу, или паф прописывайте. будете запускать > fasm ваш-файл.asm дока по фасму идет в поставке. тут на сайте в статьях есть перевод на ру сом файл - это обычный изначально 16 разрядный бинарь, где и данные и код предполагаются находящимися в одном сегменте 64кб. все что в нем есть должно начинаться с адреса 100 (орг 100) (може аш-и пропустил, давно с досом не баловался). поэтому вначале вам надо выставить 16 разрядный режим и орг 100. стартует прога с адреса 100, те с первого чего найдет за орг 100. лучше всего последовать совету AsmGuru62 сайт фасма flatassembler.org или тут, в инструментах, но лучше таки посетить сайт
Roy Так я ж дал всю последовательность команд для ввода CD 02, сохранения в файл и выхода. Ввод данных в память командой e, а сохранение данных из памяти в файл командой w.
Re: для чайников Roy Так я ж дал всю последовательность команд для ввода CD 02, сохранения в файл и выхода. Ввод данных в память командой e, а сохранение данных из памяти в файл командой ------------------------ может быть cd 20 ?
Roy Ну... я написал вызов второго прерывания (CD 02), а завершение работы программы (и то, что требуется в статье) - это 20h-е прерывание (CD 20).
Ну... я написал вызов второго прерывания (CD 02), а завершение работы программы (и то, что требуется в статье) - это 20h-е прерывание (CD 20). ------------------------ а где есть список прерываний ?
Roy ...есть у меня подозрение (превращающееся в уверенность), что ты глумишься над нами... Начиная от восторгов, и заканчивая такими вопросами. попробуй спросить у гугля: "список прерываний", результат потрясающий.