Сейчас на форуме: ut2004, vsv1 (+8 невидимых)

 eXeL@B —› Вопросы новичков —› Вопросы по ассемблеру
Посл.ответ Сообщение

Ранг: 2.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 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 файл надо создать и как вообще он создаётся?



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 22 октября 2006 03:13
· Личное сообщение · #2

Используй FASM
8)db- указывает что тип данных: 1 байт
11)FASM =)



Ранг: 24.5 (новичок)
Активность: 0.060
Статус: Участник

Создано: 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.



Ранг: 24.5 (новичок)
Активность: 0.060
Статус: Участник

Создано: 22 октября 2006 11:29
· Личное сообщение · #4

Какой .bat файл надо создать и как вообще он создаётся? [/i]

Какой тебе надо? что он должен выполнять хоть скажи...
А чтоб создать открываеш блакнот пишеш команды... Нажимаеш сохранить и в поле название пишеш имя.bat



Ранг: 2.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 октября 2006 21:51
· Личное сообщение · #5

Gluk,эти инструкции я выполнял до тебя,COM НЕ СОЗДАЁТСЯ.Выдаётся
error A2062:Missing or unreachable CS
47152 + 446396 Bytes symbol space free

а после link.exe имя.obj/t выходит
LINK: fatal error LNK1181:cannot open input file имя.obj/t



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 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 RELEASENAME=crackme2
;Название екзешника

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

Извини, что не на все вопросы ответил. Но я сам чайник. Поэтому все вышенаписанное надо воспринимать с известным скептицизмом.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 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]



Ранг: 79.6 (постоянный), 2thx
Активность: 0.080
Статус: Участник
алХимик

Создано: 23 октября 2006 06:40
· Личное сообщение · #8

ептыть, никто так и не сказал бедной печенюшке, что Олли тока PE-файлы хавает.

-----
Все говорят что мы вместе. Но не многие знают в каком.




Ранг: 24.5 (новичок)
Активность: 0.060
Статус: Участник

Создано: 23 октября 2006 11:13
· Личное сообщение · #9

Может кому нибуть понадобится...

aktaugluki.narod.ru/konvert/COMTOEXE.EXE com в exe
aktaugluki.narod.ru/konvert/bat2com.zip bat в exe
aktaugluki.narod.ru/konvert/com2exe.zip ещё одно com в exe



Ранг: 24.5 (новичок)
Активность: 0.060
Статус: Участник

Создано: 25 октября 2006 12:38
· Личное сообщение · #10

Может кому интерестно будет..
Книги по асму www.codingclub.net/go=Books&in=cat&id=18
Я так посмотрел..Их не много но есть и интерестные...


 eXeL@B —› Вопросы новичков —› Вопросы по ассемблеру
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати