С++ в Assembler

  • Автор темы doctor
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

doctor

#1
Помогите найти программу, которая переводит код cpp файла в ассемблерный, или экзэшник, написанный на С++. Или же подскажите как называются такого рода программы(переводчики), я там уже разберусь.
 
?

????

#2
вообще, почти каждый компилятор может конвертировать в asm. если уже готовая прога (exe), то дизассемблируй (прога - дизассемблер). на w a s m . r u можешь взять в разделе инструменты.
 
G

Guest

#3
<!--QuoteBegin-doctor+25:01:2004, 18:51 -->
<span class="vbquote">(doctor @ 25:01:2004, 18:51 )</span><!--QuoteEBegin-->Помогите найти программу, которая переводит код cpp файла в ассемблерный, или экзэшник, написанный на С++. Или же подскажите как называются такого рода программы(переводчики), я там уже разберусь.[/quote]
Вообщето это называется транслятор или компилятор поищи что - то вроде этого.
 
G

Gosh@

#4
Возник такой вопрос...
Объявляю два массива
IN_STR DB 80 DUP('')
OUT_STR DB 80 DUP(' ')
после ввода данные загружаются в массив IN_STR корректно все в шоколаде
специально пробегаю по строке все корректно забивается в массив IN_STR
далее делаю следующее
загружаю эффетивные адреса в регистры SI и DI
LEA SI,IN_STR
LEA DI,OUT_STR
;actlen - актуальная длина строки
movzx cx,actlen
иду по строке побайтно
next:
;загружаю в al значение текущего элемента
lodsb
;сохраняю данные в строку ПО ИДЕЕ в OUT_STR
stosb
loop next
;делаю обход строки(массива) IN_STR
LEA SI,IN_STR
movzx cx,actlen
next:
;загружаю в al значение текущего элемента
lodsb
loop next
и ЧТО Я ВИЖУ ? при копировании изменялась строка IN_STR
т.е. при загрузке этих строк командой LEA или offset неважно загружается один и тот же адрес т.е. оба и si и di указывают на одну и ту же область памяти спрашивается С КАКОГО ... массивы то РАЗНЫЕ
 
Статус
Закрыто для дальнейших ответов.