eXeL@B —› Вопросы новичков —› Вопросы по ассемблеру |
Посл.ответ | Сообщение |
|
Создано: 22 октября 2006 02:04 · Личное сообщение · #1 Hello всем.Нуждаюсь в помощи.Только сильно не ругайте за тупые вопросы.Спасибо: 1)Зачем сообщение для вывода(любая строка ) мы не пишем перед прерыванием int 20h(всё-таки ВЫХОД)? 2)Почему CSEG ends пишется не после end Start(CSEG segment до Start? 3)Не работает,вернее работает,но не так,как нужно(один чёрный экран!), прога,которая выводит в верхний левый угол экрана веселую рожицу на синем фоне: CSEG segment org 100h Start: mov ax,0B800h mov es,ax mov di,0 mov ah,31 mov al,1 mov es:[di],ax mov ah,10h int 16h int 20h CSEG ends end Start Пользуюсь я MASM'ом 6.12! 4)А как из .com файла сделать .exe ,потому что OllyDbg компилятор у меня не обнаруживает .com! 5)Пользуюсь также MASM 5.1 Для ассемблирования набираю masm.exe имя_файлa.asm, но выдаётся вот эта фигня: Object filename [Название.obj]: Source listing [NUL.LST]: Cross-reference [NUL.CRF]: Что не пишу(а я не знаю ,что писать),появляется: error A2062:Missing or unreachable CS 47152 + 446396 Bytes symbol space free Как линковать тоже не расскажете? 6)Как узнать,есть ли в файле,объём которого я хочу узнать,символы Unicode? 7)Я недавно прочитал: "Когда компы были 16-битными,процессор не мог работать с памятью размером более 64 килобайт (максимум,что можно записать в 2 байта)"-видимо здесь имеется в виду адресация.А как она работает? 8)My_string db 'Строка!$' Здесь db-регистр? 9)Что это за ошибка-fatal error LNK1190: invalid fixup found, type 0*00001(на MASM32)? 10)В ASCII таблице 256 символов(от 0 до 255) и каждому символу выделяется по 1 байту(от 0 до 255 значений).Вышло случайно,что значение в скобках ОДНО И ТОЖЕ? 11)Какоe IDE использовать,и простите за LamerOffский вопрос: Какой .bat файл надо создать и как вообще он создаётся? |
|
Создано: 22 октября 2006 03:13 · Личное сообщение · #2 |
|
Создано: 22 октября 2006 11:12 · Личное сообщение · #3 Xtreme пишет: 4)А как из .com файла сделать .exe ,потому что OllyDbg компилятор у меня не обнаруживает .com! Для сом файлов олли не пойдет...Все таки древность это сом... Иши отладчик "AFD PRO".... Xtreme пишет: 5)Пользуюсь также MASM 5.1 Для ассемблирования набираю masm.exe имя_файлa.asm, но выдаётся вот эта фигня: Object filename [Название.obj]: Source listing [NUL.LST]: Cross-reference [NUL.CRF]: Что не пишу(а я не знаю ,что писать),появляется: error A2062:Missing or unreachable CS 47152 + 446396 Bytes symbol space free Как линковать тоже не расскажете? В командной строке необходимо указать следующее: > MASM.EXE имя.ASM В результате создается файл имя.OBJ, который нужно слинковать при помощи компоновщика (линковщика) LINK.EXE, который входит в комплект данного пакета: > LINK.EXE имя.OBJ /t Компоновщик создаст имя.COM, который и необходимо запускать. Это и будет машинный код ассемблерной программы. Параметр "/t" указывает LINK.EXE, что необходимо создать файл типа COM. |
|
Создано: 22 октября 2006 11:29 · Личное сообщение · #4 |
|
Создано: 22 октября 2006 21:51 · Личное сообщение · #5 |
|
Создано: 23 октября 2006 01:17 · Поправил: Sturgeon · Личное сообщение · #6 Xtreme пишет: 1)Зачем сообщение для вывода(любая строка ) мы не пишем перед прерыванием int 20h(всё-таки ВЫХОД)? Почему ты решил, что ВЫХОД? Вовсе нет. Кажое прерывание само об этом заботится. 2)Почему CSEG ends пишется не после end Start(CSEG segment до Start? Как раз таки ПОСЛЕ!! 3)Не работает,вернее работает,но не так,как нужно Вытекает из пункта 2. В соседнем подфоруме тоже товарищ это спрашивает 11)Какоe IDE использовать Какое тебе больше нравиться. Я пользусь RadAsmом, но не считаю, что все должны им пользоваться. Чем больше попробуешь разных, те проще будет подобрать свое. Какой .bat файл надо создать и как вообще он создаётся? В блокноте создаешь файл и сохраняешь его с расширением .bat. Вот пример содержимого файла (после точки с запятой не надо ничего писать): @echo off
;Название екзешника
SET MASMBINPATH=\masm32\BIN ;Путь к папке BIN
%MASMBINPATH%\RC /l0 crackme2.rc ;Компиляция ресурсов. После "/" указываются ключи компиляции. Подробнее о них можно прочитать в документации к МАСМ или в любой книжке по ассемблеру.
%MASMBINPATH%\ML /c /Cp /coff crackme2.asm ;Создается .obj файл, который является промежуточным между . asm и .exe.
%MASMBINPATH%\LINK /SECTION:.text,RWE /RELEASE /SUBSYSTEM:WINDOWS,4.0 crackme2.obj crackme2.res ;собственно сам получение екзешника. Указываются ключи трансляции и имена файлов, которые будут транслироваться. Здесь crackme2.obj и crackme2.res, но могут быть и .inc.
pause
Извини, что не на все вопросы ответил. Но я сам чайник. Поэтому все вышенаписанное надо воспринимать с известным скептицизмом. |
|
Создано: 23 октября 2006 05:44 · Поправил: tundra37 · Личное сообщение · #7 1) Для Masm 5.1 надо задать masm.exe имя_файлa.asm; ; - означает ввод остальных имен по умолчанию Либо надо через запятую все задать. 2) Не знаю в чем дело, но если использовать отладчик ДОС от Микрософта, то рожа появляется. Правда она не мигает, т.к. этот атрибут не поддерживается или точнее надо INT 10 соответствующий выдать. Используй debug rozha.com 3) Вставил установку текстового режима : [HIGHLIGHT=asm] mov ah,3 int 10[/HIGHLIGHT] рожи есть. Вывод - ДОС-окно не в текстовом режиме по умолчанию. 4) INT 20 приводит к вылету по ошибке. Лучше использовать [HIGHLIGHT=asm] mov ah,4С int 21[/HIGHLIGHT] |
|
Создано: 23 октября 2006 06:40 · Личное сообщение · #8 |
|
Создано: 23 октября 2006 11:13 · Личное сообщение · #9 |
|
Создано: 25 октября 2006 12:38 · Личное сообщение · #10 |
eXeL@B —› Вопросы новичков —› Вопросы по ассемблеру |