Сейчас на форуме: Alf, Adler, Rio, vsv1, site-pro (+8 невидимых)

 eXeL@B —› Софт, инструменты —› WAsm и структуры
<< . 1 . 2 .
Посл.ответ Сообщение

Ранг: 40.9 (посетитель), 8thx
Активность: 0.040.01
Статус: Участник

Создано: 12 июля 2016 23:58
· Личное сообщение · #1

Задавал этот вопрос на WASM.RU, но там глухо, так что попытаю счастья здесь. Если кто юзал ваткомовский ассемблер, подскажите, способен ли он работать со структурами или только одна видимость? Объясняю ситуацию. Компилю нижеследующий тестовый код:
Code:
  1. .386
  2. .MODEL FLAT
  3. IDEAL
  4.  
  5. STRUC MyType
  6.          Field1 dd ?
  7.          Field2 db ?
  8. ENDS
  9.  
  10. SEGMENT _DATA DWORD
  11.  
  12. MyVar MyType <1,1>
  13.  
  14. ENDS
  15.  
  16. SEGMENT CODE PARA
  17.  
  18. PROC TestProc
  19.          movzx   eax, [MyVar.Field2]
  20.          ret
  21. ENDP
  22.  
  23. ENDS
  24.  
  25. PUBLIC TestProc
  26.  
  27. END
, подключаю изготовленный объектник к проекту на Делфи… и получаю шиш с маслом: после генерации экзешника в map-файле переменная отсутствует, а дизасм показывает, что она находится по адресу 00000004, т.е. смещение поля в структуре транслятор обработал правильно, а саму переменную почему-то забыл. При компиляции этого же кода TAsm'ом, адрес получается валидным. Если же написать просто "MyType <1,1>" или "MyType {}", то вообще происходит выход с зксцепшном по AV. Может есть какой-нибудь нюанс, очень уж мне понравился этот транслятор – в режиме эмуляции 'Ideal', синтаксис действительно идеальный в отличие от самого TAsm'а. Очень будет обидно, если фичи фейковые, а о копании в потрохах TAsm'а я даже думать боюсь.



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

Создано: 02 апреля 2017 20:28
· Личное сообщение · #2

difexacaw пишет:
Фасм же стал популярен из за сего компиля --> Link <--

Не знаю - меня фасм привлёк в первую очередь тем, что в нём намного проще делать x64 - крошечный SDK, ни от чего (либов, системы, процессора и т. д.) не зависящий, в отличие от масм. И не только x64, с тем же юникодом гораздо удобней, также секции/релоки и прочие параметры PE можно прям в исходнике крутить.



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

Создано: 02 апреля 2017 21:16 · Поправил: dosprog
· Личное сообщение · #3

FalseMaster пишет:
В каком смысле: привить чистоплотность некой прожке или сорцы позырить?

Да хорошо бы как-то оформить эту концепцию в виде утилиты, имеющей конфигурационный скрипт для разных программ.
А так-то каждый раз в коде ковыряться оно невдобняк.
Смутно представляю детали реализации, сорри.






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

Создано: 02 апреля 2017 21:28 · Поправил: difexacaw
· Личное сообщение · #4

elch

А есчо есть апликухи для автоматической разработки, тогда вы скажите что это есчо более удобно. Тут смысл в другом, человек который хочет знать всё досконально и иметь какой то скул рад непонятностям и проблемам, так это причина разобраться. Такова идеология асма/ll-коденга. Человек которые хочет понять суть ничего не упрощает. Ну и я не просто так упомянул выше пурик - это кроссплатформ нэйтив компиль с инлайн фасм. Идеальный выбор.

-----
vx




Ранг: 40.9 (посетитель), 8thx
Активность: 0.040.01
Статус: Участник

Создано: 03 апреля 2017 07:30
· Личное сообщение · #5

dosprog
>Да хорошо бы как-то оформить эту концепцию в виде утилиты…
Меня такая мысля посещала, но я её забраковал, т.к. по здравому размышлению отредактировать (иногда в основном копипастой) небольшой текстовый файл куда быстрее, проще и гибше, чем городить огороды с заполнением полей и крыженьем чекбоксов в гуе. К тому же некоторые инклюды помимо функций работы с реестром содержат патчи разной степени тяжести, да и условия загрузки конфига могут быть неординарными. В душе… кхм… не представляю, какой должна быть унифицированная форма диалога для генерации кода из вложения.

elch, difexacaw
Ребятушки, а не могли бы вы вместо прений пособить в моей просьбе?

e0b8_03.04.2017_EXELAB.rU.tgz - WinWord.inc.zip



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

Создано: 03 апреля 2017 12:55 · Поправил: dosprog
· Личное сообщение · #6

Так а в чём пособлять-то?



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

Создано: 03 апреля 2017 13:36 · Поправил: elch
· Личное сообщение · #7

Пособить особо не могу, т. к. с паскалем вообще не дружу. Ради интереса попробовал собрать в фасме coff c TestProc и приделать его к tasm'скому exe - вроде работает. Может, чем поможет, хз.

b2e7_03.04.2017_EXELAB.rU.tgz - TestProc.rar



Ранг: 40.9 (посетитель), 8thx
Активность: 0.040.01
Статус: Участник

Создано: 03 апреля 2017 21:40 · Поправил: FalseMaster
· Личное сообщение · #8

dosprog
>Так а в чём пособлять-то?
В тестах, батенька, в тестах.

elch
>с паскалем вообще не дружу
Ну и замечательно, ибо с паскалем всё пучком и даже лучше. А мне надобно выявить косяки в работе пропатченного TAsm'a, дабы не наступать в дальнейшем на свои же грабли.


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


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