Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

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

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

Создано: 22 октября 2006 01:53
· Личное сообщение · #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 файл надо создать и как вообще он создаётся?



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

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

Ndj. vfnm! Иди читай Калашникова!




Ранг: 238.8 (наставник), 67thx
Активность: 0.20
Статус: Участник
CyberHunter

Создано: 22 октября 2006 02:08
· Личное сообщение · #3

TOR пишет:
Здесь db-регистр?

Аццки жжешь
См. тут http://exelab.ru/pro/asm.php

-----
Nulla aetas ad discendum sera




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

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

Flint пишет:
Аццки жжешь

А ты уверен что это я написал? Бля, я даже когда компа еще не видел в жизни,уже неплохо програмил на асме! Чтобы я задавал такие тупые вопросы? Проснись!



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

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

>1)Зачем сообщение для вывода(любая строка ) мы не пишем перед прерыванием int 20h(всё-таки ВЫХОД)?
Ты хоть следишь за логикой программы?

CSEG segment ; сегмент кода
org 100h ; для .com программ

Start: ;точка входа в программу
mov ax,0B800h ; адресс начала видео буффера
mov es,ax ; es -> ax
mov di,0 ;di -> 0

mov ah,31 ;ah ->31 код символа
mov al,1 ;al -> 1 подсветка
mov es:[di],ax ;вывод символа прямой записью в видео буффер.

mov ah,10h ;
int 16h ; уже не помню

int 20h ; выход из .com программы

CSEG ends ;конец сегмента кода
end Start ; конец нашей программы

4)А как из .com файла сделать .exe ,потому что OllyDbg компилятор у меня не обнаруживает .com!
Нихуя у тебя не получиться!Иди читай на wasme эту статью : wasm.ru/article.php?article=1022001
5-11 туда же!




Ранг: 238.8 (наставник), 67thx
Активность: 0.20
Статус: Участник
CyberHunter

Создано: 22 октября 2006 02:35 · Поправил: Flint
· Личное сообщение · #6

TOR Пардон, даже не заметил как такое вышло! Было адресовано Xtreme
Xtreme пишет:
как из .com файла сделать .exe

Есть же конвертер com2exe

-----
Nulla aetas ad discendum sera




Ранг: 29.0 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 22 октября 2006 08:30
· Личное сообщение · #7

code segment
assume cs:code,ds:code,es:code - указатель компилятору где что находиться(error A2062:Missing or unreachable CS)
org 100h - чтобы было можно сделать сом позже
start:

code ends - закрытие сигмента кода
end start -закрытие процедуры start

mov ah,10h
int 16h - если по памяти, то ввод символа(для задержки видимо)
ввобще всё что инт 16 это клава ))

пользуй Tasm file
Tlink file.obj /t/x - com



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

Создано: 24 октября 2006 08:20
· Личное сообщение · #8

Xtreme пользуйся лутше MASM32 , помоему переводить из com в exe ето тупость легче просто поменять разшырение. Если ты даже перегониш com в exe то свойств файла ето не изменит!



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

Создано: 24 октября 2006 12:32
· Личное сообщение · #9

Смена расширения ничего не даст так как дос грузит файлы не по расширению а по первым двум байтам смотрит: MZ - exe, не MZ - com



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

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

_FILIN_ Так он под dos а не под win учится прогромиовать или хотя бы пытается....



Ранг: 52.2 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 25 октября 2006 03:50 · Поправил: Vitek
· Личное сообщение · #11

Gluk
на МАСМе тож можна *.сом создавать



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

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

Gluk ето я по поводу 5 вопроса отвечал, в MASM32 линковка легче делается (есть автомат для новичков)



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

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

Vitek извеняюсь..Не обращал внимания...Я другими средствами пользуюсь...



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

Создано: 27 октября 2006 22:57
· Личное сообщение · #14

Xtreme
"рожица" не появляется, т.к. ДОС-окно в Виндах имеет другой видео-режим - не текстовый.
Добавь
mov al,3
int 10
Отлаживать ДОС проги можно, либо ДОС-овыми отладчиками, типа турбо-дебаггера, либо debug.exe -
он кстати автоматом видео-режим устанавливает.
Про CS тебе уже сказали, в 5.1 надо было в конце ; поставить
Превращение com в exe не спасет, т.к. все равно не PE будет и олли не возьмет.
А в PE B800 , INT 16 и INT 20 - нонсенс.



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 28 октября 2006 03:45
· Личное сообщение · #15

tundra37 пишет:
INT 16 и INT 20 - нонсенс.

+1

P. S.
Особенно в чистом DOS`е ;)

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 28 октября 2006 19:09
· Личное сообщение · #16

FlintFlint пишет:
как из .com файла сделать .exe
Есть же конвертер com2exe


Наверное всетаки exe2bin,он переводит из *.exe в *.com ,а ненаоборот и ито невсегда.

-----
Что один человек сделал , другой всегда сломать может...





Ранг: 238.8 (наставник), 67thx
Активность: 0.20
Статус: Участник
CyberHunter

Создано: 29 октября 2006 00:24
· Личное сообщение · #17

MACKLIA я же сказал com2exe


d2cf_29.10.2006_CRACKLAB.rU.tgz - com2exe.rar

-----
Nulla aetas ad discendum sera





Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 29 октября 2006 05:13
· Личное сообщение · #18

Flint извини ошибся , я про такую штуку не знал.Только немогу понять зачем
переводить из EXE в COM - размер проги увеличивать , для чего?

-----
Что один человек сделал , другой всегда сломать может...




Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 30 октября 2006 05:32
· Личное сообщение · #19

[offtop]
А есть у кого SDK для PEiD под MASM32?
[/offtop]

-----
все багрепорты - в личные сообщения



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


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