Русский / Russian English / Английский

Сейчас на форуме: (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Софт, инструменты —› X64 Assembler Programming - UASM - JWasm
. 1 . 2 . 3 . >>
Посл.ответ Сообщение

Ранг: 673.3 (! !)
Статус: Участник

Создано: 26 ноября 2016 23:55 · Поправил: Модератор New!
Цитата · Личное сообщение · #1

UASM is a free MASM-compatible assembler based on JWasm with these features (old HJWasm): --> <--

native support for output formats Intel OMF, MS Coff (32/64-bit), Elf (32/64-bit), Binary, Windows PE (32/64-bit) and DOS MZ.
precompiled UASM binaries are available for Windows, Linux and OSX.
Instructions up to AVX2 and AVX512F are supported including all new extensions for VMX, MPX, AES, BND, F16C etc.
Support for MS Vectorcall on x64.
Support for Borland Register Calling Convention.
Full support for SystemV Calling Convention.
Integrated Macro Library with OO support.
Numerous new HLL features (as described in the extended manual).
UASM is written in C. The source is portable and has successfully been tested with Open Watcom, MS VC, GCC and more.
As far as programming for MS Windows is concerned, UASM can be used with both WinInc (32/64-bit) and Masm32 (32-bit).
C header files can be converted to include files for UASM with h2incX.
UASM's source code is released under the Sybase Open Watcom Public License, which allows free commercial and non-commercial use.
There's a bunch of source samples available - they are supplied with the precompiled binary packages.
JWasm started as a fork of Open Watcom's Wasm in March 2008. Today, the part of Wasm source lines still contained in JWasm is approximately 15%.
UASM is a continued evolution of JWasm.

  1. UASM 2.49 (32bit)          21/06/2019        32bit Binary Package (Windows)
  2. UASM 2.49 (64bit)          21/06/2019        64bit Binary Package (Windows)
  3. UASM 2.49 (Linux 64bit)    21/06/2019  64bit Linux Executable (GCC)
  4. UASM 2.47 (OSX Universal)  17/11/2018         64bit OSX Executable (GCC)

--> 32bit <-- , --> 64bit <-- , --> Linux 64bit <-- , --> OSX <--

Full SDK 10.0 translate for 64 and 32 bits --> Link <--
--> Site <--
Примеры с этими хидерами - --> Link <--

Adapting constants switchs to your system,use this tool:
sdkrc81\Before_use_me.exe.He will give you the correct swiths for your system.
Modify with this switchs.The defaut system is windows 10.0

With a correct alignment,all translated structures,can be used as they are.
There is no need of any modifie.

Easy Code IDE 32/64-bit

Easy Code - Visual assembler
(Updated on July 02, 2019)

(Windows 95/98/ME/NT40/2000/XP/2003/2008/Vista/7/8/8.1/10)
- Version 2.x Fasm, GoAsm, JWasm, UASM (HJWasm), Masm and PoAsm, using different tools for the various assemblers
--> Easy Code <--

RadASM 32/64-bit

Current version: - Last updated: 08/01/2018

--> Fork <--

Latest Release - Zips
--> FullPackage <--

  2. 1.74 MB
  3. 1.14 MB
  4. 203 KB
  5. 4.6 MB
  6. 1.03 MB
  7. 549 KB
  8. Source code (zip)
  9. Source code (tar.gz)

RadASM is a lightweight IDE tool for all kinds of programmers who are looking for a straightforward application in which to edit their code.
It supports a wide variety of programming languages and assemblers such has MASM, NASM, FASM, TASM, Borland C, C++, Bcet Basic, VC6 C/C++, Free Pascal and FreeBASIC.
It was created by Ketil Olsen aka KetilO.
This is a fork from the original RadASM v2.x source located on SourceForge here
I have made some very minor adjustments, which are detailed in the WhatsNew.txt


User friendly interface.
Project browsing and properties.
Inbuilt programmer tools: ‘Ascii Table’, ‘Colref’, ‘Toolbar Creator’ etc.
Multiple Undo/Redo.
Find & Replace keywords.
Block indents, outdents and comments.
Syntax highlighting.
Custom controls.
Automatic code completion.
Record macros for ease of use.
Addins to extend its functionality.
Template system for automatic code generation.
Supports various programming languages.

Visit the wiki entry Setting up the RadASM environment for more details.

  1. Written and Programmed by KetilO
  2. Minor updates including Multilingual installer by fearless

Source Code Pro Font

Source Code Pro

Source Code Pro is a set of OpenType fonts that have been designed to work well in user interface (UI) environments. In addition to a functional OpenType font, this open source project provides all of the source files that were used to build this OpenType font by using the AFDKO makeotf tool.

Download the fonts (OTF, TTF, WOFF, WOFF2, EOT) macOS, Windows, Linux/Unix-based systems
--> Link <--

X64 Iczelion's Tutorial -> Автор - Mikl ( --> Link <--

--> Link <--

Актуальные книги программисту на X64 ассемблере - --> Link <--
P a s s - Assembler64


  1. AMD64 Architecture Programmer's Manual\
  2. Russinovich M. - Windows Internals, Part 1, 6th Edition - 2012\
  3. Russinovich M. E., Solomon D. A., Ionescu A. - Windows Internals, 6th ed. - 2012\
  4. Windows 7 Device Driver\
  5. Randall Hyde The Art of Assembly Language.epub
  6. Andrew Whitechapel, Sean McKenna-Windows Phone 8 Development Internals-Microsoft Press (2013).pdf
  7. Ata Elahi, Trevor Arjeski auth. ARM Assembly Language with Hardware Experiments.pdf
  8. coder32.pdf
  9. coder64.pdf
  10. Daniel Kusswurm Modern X86 Assembly Language Programming 32-bit, 64-bit, SSE, and AVX.pdf
  11. Dmitry Vostokov-Memory Dump Analysis Anthology. 7-Opentask (2014).pdf
  12. Heiko Falk, Peter Marwedel auth. Source Code Optimization Techniques for Data Flow Dominated Embedded Software.pdf
  13. Jeff Duntemann Assembly Language Step-by-Step Programming with Linux.pdf
  14. Joseph Cavanagh X86 Assembly Language and C Fundamentals.pdf
  15. Kip Irvine Assembly Language for x86 Processors 6th Edition.pdf
  16. Larry D. Pyeatt Modern Assembly Language Programming with the ARM Processor.pdf
  17. Manuel Sojer auth. Reusing Open Source Code Value Creation and Value Appropriation Perspectives on Knowledge Reuse.pdf
  18. Margush, Timothy S Some Assembly Required  Assembly Language Programming with the AVR Microcontroller.pdf
  19. Mark E. Russinovich, David A. Solomon, Alex Ionescu-Windows Internals, 5th Edition-Microsoft Press (2009).pdf
  20. Mastering CMake. Ken Martin. 2009.pdf
  21. Modern X86 Assembly Language Programming 32-bit, 64-bit, SSE, and AVX.pdf
  22. Muhammad Ali Mazidi, Sarmad Naimi, Sepehr Naimi, Janice Mazidi ARM Assembly Language Programming and Architecture.pdf
  23. Professor James T. Streib auth. Guide to Assembly Language A Concise Introduction.pdf
  24. Randall Hyde The Art of Assembly Language.pdf
  25. Ray Seyfarth Introduction to 64 Bit Intel Assembly Language Programming for Linux.pdf
  26. Susan Elliott Sim auth., Susan Elliott Sim, Rosalva E. Gallardo-Valencia eds. Finding Source Code on the Web for Remix and Reuse.pdf
  27. Vincent Mahout Assembly Language Programming  ARM Cortex-M3.pdf
  28. Windows Driver Foundation.pdf
  29. Yury Magda Visual C++ optimization with assembly code.pdf
  30. М. Руссинович, Д. Соломон - Внутреннее устройство Microsoft Windows 6-е издание (2013).pdf
  31. Род Стивенс - Алгоритмы. Теория и практическое применение.pdf
  32. Руссинович М., Соломон Д. - Внутреннее устройство Microsoft Windows. Часть 2. Основные подсистемы ОС. 6-е издание - 2014.pdf
  33. KIP R. IRVINE-Assembly Language for x86 Processors-Pearson (2014)
  34. +IRVINE Src

Что нужно иметь ещё ?! -
1. PoLink или лучше всю папку bin от --> Pelles C <-- для x64
2. ml64 linker и подобное от MS от Visual Studio 2017, можно без оптимизации тоже скопировать всю папку, сегодня места хватает на всё.
3. Возможно конвертёр .H файлов headinc.exe, который поставляется вместе с одной IDE под названием EditMasm от автора хидер файлов, синтаксис одинаковый. Отдельно здесь - --> Link <--
4. Обновлённые макросы для x64 систем - --> Link <--
5. Мини Пакет разработки драйверов совместно с Full SDK 10.0

| Сообщение посчитали полезным: zds, plutos, VOLKOFF, elch, Gideon Vi, VodoleY, Vintersorg, HandMill, Orlyonok, DenCoder, Isaev, BlackCode, 4kusNick

Ранг: 23.7 (новичок)
Статус: Участник

Создано: 28 ноября 2016 17:49 New!
Цитата · Личное сообщение · #2

у кого заработало? у меня мотивации, похоже, нехватает..
mak может, выложите готовую сборку х64, уже с линкером и либами и расскажете, чем HJWasm лучше fasm?

Ранг: 673.3 (! !)
Статус: Участник

Создано: 28 ноября 2016 20:47 · Поправил: mak New!
Цитата · Личное сообщение · #3

Можно сделать, просто у каждого свои понятия о структуре папок Плюс бинарники студии 1.5 гига .. можно только HJWASM с урезанной версией линкеров и билдеров, плюс настроенный для работы СДК для диска "С". Кто раньше пути настраивал для Масм, у того не должно быть трудностей. На днях сделаю Сборку.

П.С. тема в целом о сложностях в настройке и программинге, можно конкретно спрашивать какие трудности возникли, чтобы другим легче было.

parfetka пишет:
расскажете, чем HJWasm лучше fasm?

Дело вкуса, все кто ранее любил masm32, может легко кодить в этом же стиле, только для х64 битных систем, при этом конвертация старых проектов не занимает много времени. В итоге тема, что выбрать масм или fasm?! Каждый сам для себя решит, мне например макросы масмовые нравятся ...

Добавлено спустя 18 часов 36 минут
Рабочий комплект - --> Link <--

В архиве - либ файлы от 2015 студии последней, все билдеры и линкеры, утилиты, примеры от HJWASM (не настраивал пути примеров), макросы, WinInc208, sdkrc100 для всех версий виндовс, m64lib и самое важное это папка - Projects, в ней лежит testplugin, это плагин который взят от "мистер бесстрашный" и адаптирован под sdkrc100, раньше он собирался вместе с WinInc208. Т.е. можно собрать батником у себя тестовый плагин для x64dbg и посмотреть менюшки Весь комплект настроен на папку C:\masm32\jWasm\, это можно менять, в основном проект testplugin привязан к этому пути и sdkrc100 в главных инклудах, это тоже всё можно менять.

Единственное, что нужно сделать, это запустить before_use_me.exe - и скопировать верхние константы, у меня они такие

  1. ;constants switch for
  2. _WIN32_WINNT equ 00000A00h
  3. NTDDI_VERSION equ 0A000000h
  4. WINVER equ 0A000000h лежит в shared папке ..

P.S. Для чего требуется столько линкеров и билдеров?! Многие ассемблер программисты сейчас пишут двойные макросы под 32 и 64 сразу, проект собирают под обе системы, иногда в целях тестирования или предпочтения размера exe используют другие линкеры, да и просто на всякий случай, пакетом можно собирать как в ml64, так и Hjwasm, в том числе 32 битные и 64 битные приложения. Для 32 Битной системы многие ставят старый masm32, в целях компатибельности был создан такой странный путь.

| Сообщение посчитали полезным: parfetka, Gideon Vi, Orlyonok

Ранг: 673.3 (! !)
Статус: Участник

Создано: 04 февраля 2017 13:37 New!
Цитата · Личное сообщение · #4

Вышла версия - HJWasm 32/64 2.19

Ранг: 673.3 (! !)
Статус: Участник

Создано: 14 марта 2017 12:42 · Поправил: mak New!
Цитата · Личное сообщение · #5

  1. HJWasm 2.21 (32bit)        17/03/2017      32bit Binary Package (Windows)
  2. HJWasm 2.21 (64bit)        17/03/2017      64bit Binary Package (Windows)
  3. HJWasm 2.21 (Linux 64bit)  17/03/2017         hjwasm 2.21      64bit Linux Executable (GCC)

18 Марта правка, новое обновление, добавили

  1. The list of changes is in the documentation :
  3. real4/real8 via xmm support on invoke
  4. fixed align 16 on stack local
  5. fixed rogue sub rsp,8
  6. fixed rbp relative stack locations
  7. added command line switches -archSSE, -archAVX and OPTION ARCH:AVX|SSE to switch between generating sse or avx instructions in generated code
  8. refactored the entire code-base to make use of this arch setup instead of hardcoded vmovdqa/movdqu etc..

| Сообщение посчитали полезным: Abraham, Bronco

Ранг: 673.3 (! !)
Статус: Участник

Создано: 08 апреля 2017 11:45 New!
Цитата · Личное сообщение · #6

  1. HJWasm 2.25 (32bit)        07/04/2017      32bit Binary Package (Windows)
  2. HJWasm 2.25 (64bit)        07/04/2017      64bit Binary Package (Windows)
  3. HJWasm 2.25 (Linux 64bit)  07/04/2017         hjwasm 2.25      64bit Linux Executable (GCC)
  4. HJWasm 2.25 (OSX Universal)         07/04/2017       64bit OSX Executable (GCC)

--> bin <--
--> Src <--

Добавлено спустя 2 часа 38 минут
HJWasm Object Oriented Language Extension

  1. ; Demonstration of HJWasm 2.25 OO and additional features:
  3. ; Build with:
  4. ;..\hjwasm64 -win64 -c -Zp8 -Zi -Zd -Zf oo1.asm
  5. ;d:\vs2015\vc\bin\link /subsystem:console /machine:x64 /debug /Libpath:"%WINSDK%\v7.1\Lib\x64" oo1.obj
  7. .X64
  9. OPTION WIN64:15               ; 11/15 for RSP and 1-7 for RBP.
  10. OPTION STACKBASE:RSP             ; RSP or RBP are supported options for the stackbase.
  12.          .nolist
  13.     .nocref
  14.          WIN32_LEAN_AND_MEAN equ 1
  15.          _WIN64                          equ 1
  16.     include ..\wininc\Include\
  17.     .list
  18.     .cref
  20.     include ..\wininc\Include\
  21.          include ..\wininc\Include\
  23.     includelib <kernel32.lib>
  24.     includelib <user32.lib>
  26. ;=====================================================================================================================================================
  27. ;
  28. ; CLASS Definition inclusion guard.
  29. ;
  30. ;=====================================================================================================================================================
  34. ;---------------------------------------------------------------------------------------------------------------
  35. ; Define our Person class with 2 instance methods, 1 static method and 3 member fields.
  36. ;---------------------------------------------------------------------------------------------------------------
  37. CLASS Person
  38.          CMETHOD PrintName
  39.          CMETHOD SetName
  40.          CSTATIC IsHuman
  41.          pName   dq 0
  42.          age     db 0
  43.          human   db 0     
  44.          handle  dq 0
  47. ; A Pointer to Object type.
  48. pPerson TYPEDEF PTR Person
  50. ;---------------------------------------------------------------------------------------------------------------
  51. ; Constructor
  52. ; Can take optional arguments.
  53. ;---------------------------------------------------------------------------------------------------------------
  54. METHOD Person, Init, age:BYTE, consoleHandle:QWORD, ptrName:QWORD
  56.          LOCAL isAlive:DWORD
  57.          ; Internally the METHOD forms a traditional procedure, so anything that you can do in a PROC you can do in a method.
  59.          ; Store console output handle.
  60.          mov rax,consoleHandle
  61.          mov [rcx].handle,rax
  63.          ; Store pointer to passed in name. (r9 can be used directly)
  64.          ; -> The proc arguments conform to calling convention: rcx=thisPtr, dl=age, r8=consoleHandle, r9=ptrName
  65.          mov [rcx].pName,r9
  67.          ; On entry into any method RCX is a pointer to the instance
  68.          ; and the correct reference type is assumed.
  69.          mov [rcx].human, 1                              ; Hence this is possible.
  70.          mov (Person PTR [rcx]).human, 1       ; Alternative forms of reference.
  71.          mov [rcx].Person.human, 1                  ; " "
  73.          mov isAlive,0
  74.          mov al,age
  75.          mov [rcx].age,al
  77.          .if( age < 100 )
  78.                  mov isAlive,1
  79.          .endif  
  81.          ; The constructor MUST return it's this pointer in RAX.
  82.          mov rax,thisPtr
  84.          ret
  87. ;---------------------------------------------------------------------------------------------------------------
  88. ; Destructor
  89. ; Takes no arguments.
  90. ;---------------------------------------------------------------------------------------------------------------
  91. METHOD Person, Destroy
  92.          mov [rcx].age,0
  93.          ret
  96. ;---------------------------------------------------------------------------------------------------------------
  97. ; Print the persons name to the console.
  98. ;---------------------------------------------------------------------------------------------------------------
  99. METHOD Person, PrintName
  101.          LOCAL bWritten:DWORD
  103.          invoke lstrlen,[rcx].pName
  104.          mov r10d,eax
  106.          mov rcx,thisPtr
  107.          mov rax,[rcx].handle
  108.          mov rbx,[rcx].pName
  110.          invoke WriteConsole,rax,rbx,r10d,ADDR bWritten,NULL  
  112.          ret
  115. ;---------------------------------------------------------------------------------------------------------------
  116. ; Set person name.
  117. ;---------------------------------------------------------------------------------------------------------------
  118. METHOD Person, SetName, pNameStr:QWORD
  120.          mov rax,pNameStr
  121.          mov [rcx].pName,rax
  123.          ret
  126. ;---------------------------------------------------------------------------------------------------------------
  127. ; Static method to check if a person is a human.
  128. ;---------------------------------------------------------------------------------------------------------------
  129. STATICMETHOD Person, IsHuman, somebody:PTR Person
  131.          mov rax,somebody
  132.          mov al,(Person PTR [rax]).human
  134.          ret
  137. ENDIF
  139. ;=====================================================================================================================================================
  141. ;=====================================================================================================================================================
  143. .DATA
  145.          hOutput dq 0
  146.          person1 pPerson 0                 ; A global variable to hold a reference to a Person type.
  148.          avgAge REAL4 0      ; Integer to real type promotion. (You can use an integer initializer instead of N.n format).
  150. .CODE
  152. ; All default procedures are now FRAME based (so there is no need to specify FRAME).
  153. ; -> Using a FRAME PROC as the entry point for both Console and Windows applications is advised to ensure correct stack startup.
  154. MainCRTStartup PROC 
  155.          LOCAL person2:PTR Person  ; A local variable to hold a reference to a Person type. (Note you can also use $DECLARE if the Object name includes <>).
  157.          invoke GetStdHandle,STD_OUTPUT_HANDLE
  158.     mov hOutput,rax
  160.     ; Create two Person instances.
  161.     mov person1, $NEW(Person, 30, hOutput, "Jane Doe ")
  162.     mov person2, $NEW(Person, 40, hOutput, "Peter Smith ")
  164.     $INVOKE Person, PrintName, person1             ; Direct call (Type, Method, arguments)
  165.     $VINVOKE person2, Person, PrintName           ; Vtable call (instance, Type, Method)
  166.     $INVOKE Person, SetName, person1, "Michael Smith "
  167.     $INVOKE Person, PrintName, person1             
  169.     mov rax, $STATIC(Person, IsHuman, person1)        ; Default return type from $STATIC is 64bit integer.
  171.     ; Delete the objects.
  172.     $DELETE(person1)
  173.     $DELETE(person2)
  175.          ret
  176. MainCRTStartup ENDP
  178. END MainCRTStartup

{ Атач доступен только для участников форума } - HJWasm Object Oriented Language Extension.pdf

| Сообщение посчитали полезным: v00doo, Abraham

Ранг: 15.5 (новичок)
Статус: Участник

Создано: 10 апреля 2017 00:06 New!
Цитата · Личное сообщение · #7

почему интересно Хатчинсон за столько лет не запилил MASM64 ? ведь и время и ресурсы для этого есть -- комьюнити ассемблерщиков со всего мира у него на форуме тусуется.

сейчас я так понимаю для х64-кодинга пригодны оригинальный jWasm, ныне заброшенный; HJWasm, ну и fasm. для линухов хз что там, вообще не интересно.

Ранг: 307.9 (мудрец)
Статус: Участник

Создано: 10 апреля 2017 00:23 New!
Цитата · Личное сообщение · #8

SND запилили MASM64 - по крайней мере такой релиз от них есть.

Ранг: 15.5 (новичок)
Статус: Участник

Создано: 10 апреля 2017 00:50 New!
Цитата · Личное сообщение · #9

да есть какие-то разрозненные релизы, скажем вот или вот, про это я знаю.

интересует именно масм64 от Хатчинсона, почему не было релиза хз. с другой стороны уже и масм32 давно не обновлялся, я так понимаю программирование на ассемблере умирает ?

Ранг: 673.3 (! !)
Статус: Участник

Создано: 10 апреля 2017 19:24 New!
Цитата · Личное сообщение · #10

Будет релиз, только чуть позже, он работает над ним почти всё своё свободное время .. пишет утилиты.

Ранг: 488.1 (мудрец)
Статус: Участник

Создано: 10 апреля 2017 20:32 New!
Цитата · Личное сообщение · #11

VanHelsing программирование на асме умрет вместе с процом) на чистом асме редко кто пишет, в основном из пефекционизма, но иногда без него тускло

Ранг: 15.5 (новичок)
Статус: Участник

Создано: 10 апреля 2017 21:21 New!
Цитата · Личное сообщение · #12

makmak пишет:
Будет релиз, только чуть позже, он работает над ним почти всё своё свободное время .. пишет утилиты.

приятное известие, спасибо!!

VodoleY пишет:
программирование на асме умрет вместе с процом) на чистом асме редко кто пишет, в основном из пефекционизма, но иногда без него тускло

да это понятно конечно )) просто я давно не следил, раньше масм32 регулярно обновлялся, а с 2012 или 2013 года как была 11 версия так и осталась. вот и подумал, может Хатчу надоело или еще что )э

з.ы. удивлен кстати что Tomasz Grysztar cвой ассемблер уже сколько лет поддерживает, святой человек на самом деле! помню что о нем писал Крис:

  1. Наконец, ни у кого нет гарантий, что создатель FASM'а не утратит к нему интереса, а ведь без поддержки новых процессорных инструкций всякий транслятор обречен на медленное, но неизбежное вымирание. Открытость исходных текстов тут не поможет, помимо них нужна еще и команда. Нужны "носители знания", способные удержать детали проекта у себя в голове, а тот факт, что FASM написан на себе самом, увы, читаемости листингам отнюдь не добавляет.

как видим, fasm пережил Касперски.

Добавлено спустя 8 минут
mak пишет:
Будет релиз, только чуть позже, он работает над ним почти всё своё свободное время .. пишет утилиты.

кстати еще вопрос, может вы знаете -- насколько мне известно ml64.exe изначально не поддерживал никаких макросов, как эта проблема будет решена в масм64 от Хатча ? или масм64 будет без макросов, чисто инструментарий + конпиль/линковщек ?

Ранг: 673.3 (! !)
Статус: Участник

Создано: 11 апреля 2017 20:40 New!
Цитата · Личное сообщение · #13

VanHelsing пишет:
Добавлено спустя 8 минут
mak пишет:
Будет релиз, только чуть позже, он работает над ним почти всё своё свободное время .. пишет утилиты.

кстати еще вопрос, может вы знаете -- насколько мне известно ml64.exe изначально не поддерживал никаких макросов, как эта проблема будет решена в масм64 от Хатча ? или масм64 будет без макросов, чисто инструментарий + конпиль/линковщек ?

Всё работает, макросы нужно писать, invoke заменили своим макро, чтобы сделать комплект для релиза нужна база с примерами, которую сейчас наполняют функционалом. Парсер хидеров тоже обкатывается. Пакет будет поставляться без бинарников, но всё остальное будет как и в прошлой 32ой версии, плюс новый редактор под 64 бит, сейчас Ассемблер переживает новое рождение, гибкость настолько классная, что существуют коммерческие проекты, которые написаны на чистом ассемблере.

{ Атач доступен только для участников форума } - Macro Sample.rar

| Сообщение посчитали полезным: VanHelsing

Ранг: 15.5 (новичок)
Статус: Участник

Создано: 12 апреля 2017 20:42 New!
Цитата · Личное сообщение · #14

бинари и не нужны, их и для масм32 со студии свежие обычно берутся

Ранг: 64.9 (постоянный)
Статус: Участник

Создано: 12 апреля 2017 22:18 · Поправил: hash87szf New!
Цитата · Личное сообщение · #15

Попытался минимальную x64 версию собрать.
И чё линк.ехе на отсутствие mspdbcore.dll рычит? Эт с того что они частично дебаг инфу теперь и в /release пихают?

Ранг: 337.6 (мудрец)
Статус: Участник
born to be evil

Создано: 12 апреля 2017 23:23 · Поправил: ajax New!
Цитата · Личное сообщение · #16

щерт! (форс-мажоры/suits). меня терзают сомнения, когда fs/gs префиксы юзать в 64, правильно ли опкодится. затейка интересная, несмотря на мс-асм, который меня устраивает

Ранг: 64.9 (постоянный)
Статус: Участник

Создано: 13 апреля 2017 01:06 New!
Цитата · Личное сообщение · #17

на х64 всё gs помоему, eg gs:[60h] == peb

Ранг: 673.3 (! !)
Статус: Участник

Создано: 13 апреля 2017 14:36 · Поправил: mak New!
Цитата · Личное сообщение · #18

hash87szf пишет:

Попытался минимальную x64 версию собрать.
И чё линк.ехе на отсутствие mspdbcore.dll рычит? Эт с того что они частично дебаг инфу теперь и в /release пихают?

Может быть ..

  1. It’s emitted by the linker in Visual Studio 2015 and later. 
  2. The linker calls it “COFF group information” and you can prevent this 
  3. directory from being emitted by specifying the additional linker option 
  4. /nocoffgrpinfo.

--> Link <--

--> Link <--

Ранг: 673.3 (! !)
Статус: Участник

Создано: 23 апреля 2017 01:00 New!
Цитата · Личное сообщение · #19

Интересная статья о том, что код визуал студии быстрее ручного кода на ассемблере Need for Speed - C++ versus Assembly Language --> Link <--

Ранг: 64.9 (постоянный)
Статус: Участник

Создано: 23 апреля 2017 02:46 New!
Цитата · Личное сообщение · #20

> Интересная статья
Щютка да?
Чё там буквально сказано то кроме того что его асм медленней сишки?

> At first sight, we tend to believe that assembled code, i.e. machine code obtained from ASM (Assembly Language) source through an Assembler, should run faster than compiled code
С первой строки говно, its 2017!
Вставил бы хоть VTune листинг, эта пиздец... ёпт да ходь бы дисасм!

>As mentioned, I made a number of optimizations to the ASM
> mov r11,0

>Most of the time is spend doing recursion and looping.
И юзает hjwasm .while .if макросы...

Помнится AMD CodeAnalyst хелпы читал, так там пример оптимизации как раз матрицы с det были...

| Сообщение посчитали полезным: mak

Ранг: 673.3 (! !)
Статус: Участник

Создано: 15 мая 2017 21:07 · Поправил: mak New!
Цитата · Личное сообщение · #21

Проект переименовали второй раз, новый линк --> Link <--

Новая версия
  1. UASM 2.33 (32bit) 20/05/2017 32bit Binary Package (Windows)
  2. UASM 2.33 (64bit) 20/05/2017 64bit Binary Package (Windows)
  3. UASM 2.33 (Linux 64bit)    20/05/2017         64bit Linux Executable (GCC)
  4. UASM 2.32 (OSX Universal)  20/05/2017  64bit OSX Executable (GCC)

Ранг: 673.3 (! !)
Статус: Участник

Создано: 12 июля 2017 10:57 New!
Цитата · Личное сообщение · #22

В шапке обновил линк на новый UASM 2.37 и Easy Code IDE, добавлен RadASM2 с последними фиксами за эти годы.

Добавлен классный шрифт для IDE и Отладчика Source Code Pro Font , можно просто установить один ТТФ Regular и этого хватит. Пример шрифта можно увидеть на картинке RadASM2

Удачных обновлений!

| Сообщение посчитали полезным: VOLKOFF

Ранг: 173.8 (ветеран)
Статус: Участник

Создано: 12 июля 2017 11:46 · Поправил: VOLKOFF New!
Цитата · Личное сообщение · #23

Для коллекции если кому нужно --> RadASM version <--

  1. RadASM 3.0 is a complete rewrite of RadASM.
  2. It is in no way compatible with older versions of RadASM.
  3. Ini files, project files, template files, api files and addins are all incompatible.
  5. Do NOT install RadASM 3.0 in the same directory as an older version of RadASM.
  7. Version 2013-02-18
  8. ---------------------------
  9. o Fixed a dialog editor bug when deleting controls.
  11. Version 2012-10-29
  12. ---------------------------
  13. o Added Copy Name To Code to project menu.
  15. Version 2012-06-12
  16. --------------------------
  17. o Added option to use Shift+Space to show codecomplete list.
  19. Version 2012-02-13
  20. --------------------------
  21. o Fixed bug where running your app could generate an exception (thanks justice).
  23. Version 2012-01-30
  24. --------------------------
  25. o Fixed bug where code complete list and tooltip did not get its colors set. Thanks ragdog.
  26. o Fixed a paint bug when output was shown during build.
  28. Version 2011-12-23
  29. --------------------------
  30. o Improved build options so that linkers not producing windows executeable code still can
  31.   have the Run button enabled.
  32.   This is useful when assembling / linking microcontroller projects and running it in a
  33.   simulator.
  35. Version 2011-05-06
  36. ---------------------------
  37. o The number of environment entries has been changed from max 8 to max 16.
  38. o The size of each environment entry has been chaged from max 384 to max 1024.
  39. o Changed tool windows caption text colors. The color is now from the currently selected windows theme.
  40. o Added Debug to view menu. Shows hides debug tool window.
  41. o Fixed bug with debug tool window colors.
  42. o Fixed bug where Open Include did not work (thanks qWord).
  43. o Fixed dialog control sizes (thanks remus2k / ragdog) 
  44. o Fixed a menu draw bug.
  45. o Added support for mouse wheel in code complete list (thanks ragdog).
  47. Version 2011-04-11
  48. ---------------------------
  49. o Added option to turn on / off auto case convert (Option / Code Editor / Auto Case Convert).
  50. o Fixed an MASM structure code complete bug in .if statements.
  51. o Fixed an asemw bug where RadASM could crash on a new empty project.
  53. Version 2011-02-20
  54. ---------------------------
  55. o Added support for vkim debug macros with result to RadASM's output window.
  57. Version 2011-01-05
  58. ---------------------------
  59. o Added manifest to RadASM.exe.
  61. Version 2010-12-30
  62. ---------------------------
  63. o Fixed a menu draw bug.
  64. o Added AIM_ACTIVATE addin message. Sendt when RadASM is activated or deactivated. Same parameters as WM_ACTIVATE.
  66. Version 2010-12-09
  67. ---------------------------
  68. o Adjusted the size of some dialogs.
  69. o Added Donkey's goasm build options and templates.
  71. Version 2010-11-08
  72. ---------------------------
  73. o Updated donkey's Favourites addin.
  74. o RadASM should now handle library projects with modules only (no main file).
  76. Version 2010-11-04
  77. ---------------------------
  78. o Updated donkey's Favourites addin.
  79. o Fixed a bug where the fonts weight was not saved to ini file.
  81. Version 2010-10-29
  82. ---------------------------
  83. o Included donkey's Favourites addin.
  85. Version 2010-10-25
  86. ---------------------------
  87. o Fixed the bug where RadASM could terminate if a block of text was inserted or deleted.
  88.   Thanks to WillASM for helping me track down this bug.
  90. Version 2010-10-18
  91. ---------------------------
  92. o Adjusted height of listbox items in codecomplete listbox.
  93. o Added AIM_CODECOMPLETESHOW addin message.
  94.   The codecomplete listbox is about to be shown or hidden. Always return FALSE.
  95.   hWin=Main window, wParam=-2 if list is shown,-1 or index if list is hidden,
  96.   lParam=handle of codecomplete listbox
  98. Version 2010-09-13
  99. ---------------------------
  100. o Fixed dialogs where labels was too small to show all text.
  101. o Fixed a menu bug if a large menu font was used.
  103. Version 2010-08-23
  104. --------------------------
  105. 0 Added double click on a tab to close it.
  107. o Added hidden option to disable SEH handling. Section [Win], NoSEH=1
  108.   Uesful when debugging addins.
  109. o Added click on statusbar to shopw / hide output window.
  110. o Added Empty Undo Buffer to Edit menu.
  111. o Fixed bug with Comment / Uncomment. Did not work as it should for languages other than assembly.
  113. Version 2010-07-26
  114. --------------------------
  115. o Fixed bug where opening a project asm file as hex would crash RadASM.
  117. Version 2010-07-05
  118. --------------------------
  119. o Added support for FreeBASIC.
  120. o Added AIM_OUTPUTDBLCLK addin message.
  121. o Toolwindows now gets an active caption when they get focus.
  122. o Fixed bugs.
  124. Version 2010-06-28
  125. --------------------------
  126. o Added $(main codefile), $(main resourcefile) and $(project file) to tools menu
  127.   command parser.
  128. o Fixed bug where projects did not work on win95,98 and me.
  130. Version 2010-06-24
  131. --------------------------
  132. o Fixed several register preservation bugs.
  134. Version 2010-06-23
  135. --------------------------
  136. o Nicer looking menu.
  137. o Added ProjectZip addin.
  138. o Added Code files to Option / Code Editor.
  139. o Added Multiline tabtool to Option / Code Editor.
  140. o Fixed a property tool bug. Scrolling behaved weird when using the mouse wheel
  141.   to scroll the list.
  142. O Fixed a project bug introduced in
  143. o Fixed a buffer ovverrun bug. Might fix the cut / paste bug.
  145. Version 2010-06-18
  146. --------------------------
  147. o The properties toolbar now works.
  148. o Changed dialogs font to Tahoma.
  149. o The second pane of the statusbar now shows current edit mode.
  150. o Added Open Include (Ctrl+Alt+O) to edit menu.
  151. o Added accelerators to make menu.
  152. o Added nicer looking menu.
  153. o Added selection length to first pane in statusbar.
  154. o Fixed a project bug. Changes to the project was not always saved.
  155. o Fixed bug in the tasm parser. Locals could be inherited from previous proc.
  156. o Fixed a bug where changing a filename in project browser crashed RadASM.
  157. o Fixed a bug with Open Include.
  159. Version 2010-06-14
  160. --------------------------
  161. o Added support for sol_asm.
  162. o Added support for FreePASCAL.
  163. o Added support for MinGW.
  164. o Changed Make / Set Current As Main to Make / Toggle Current As Main
  165. o Ctrl+Alt+O now opens the included file. Note that the environment setup must include
  166.   the path to the file.
  167. o Fixed bug when using Option / Code Editor. The output and immediate windows did
  168.   not have its font updated.
  169. o Fixed bug in ProjectConvert addin.
  171. Version 2010-06-10
  172. --------------------------
  173. o Implemented Make / Run With Debug.
  174.   Use Option / Environment to add the path to the debugger.
  175.   Use Option / Make Options to add the debugger exe file.
  176. o Added Increment build to project options.
  177.   The resource file must be open and have a versioninfo.
  178. o Added ConvertProject addin.
  179.   It converts a project from RadASM 2.x to RadASM 3.0
  180. o Added Edit / Goto Line.
  181. o Added RadASM help file. Not complete yet.
  183. Version 2010-06-03
  184. --------------------------
  185. o Added JWasm programming language. Thanks to PauloH.
  186. o Added user defined resource names export.
  187. o Rebuildt all addins since there is a change in RESOPT / ADDINDATA.resopt
  188. o Updated programming language ini files. Debug=0 on all except masm.ini and jWasm.ini.
  189. o Added support for Objects and Methods to Masm.
  190. o Automated updating when using Tools / Check for Updates.
  191. o Fixed some minor resource editor bugs.
  192. o Fixed a bug when building a library. Thanks to madprgmr.
  193. o Fixed a bug where RadASM could crash on exit.
  195. KetilO

Resource editor
--> ResEd Version <--
--> ResEd Version <--

| Сообщение посчитали полезным: mak

Ранг: 23.7 (новичок)
Статус: Участник

Создано: 12 июля 2017 20:06 New!
Цитата · Личное сообщение · #24

1. в чем идеологическое различие masm и UASM, зачем развивать сразу два компилятора?
2. если есть опенсорсный развивающийся fasm, то не проще ли было сделать к нему надстройку, понимающую синтаксис masm?

Ранг: 673.3 (! !)
Статус: Участник

Создано: 12 июля 2017 21:09 New!
Цитата · Личное сообщение · #25

VOLKOFF тройка совсем непопулярная , я тоже от неё отказался, у меня были с ней трудности и я остался на 2.2, это было правда давно, с тех пор её не обновляли, а вот 2.2 обновляли сначала приватными сериями, а потом кажется fearless собрал всё в один пакет, даже забыл что есть 3.0.

1. masm остался более строгий классический, программисту самому нужно заботиться о правилах ассемблера, например учитывать пролог и эпилог, учитывать стековый размер, размер переменных и типы. UASM развивается в сторону сохранения основ ассемблера, но с дополнением высокоуровневых функций и автоматизации, автоматически следит за стеком, следит за типами переменных и типами данных, некоторые макросы типа invoke встроены на уровне ассемблера, в парсер кода. Масм остался строго системным, UASM с удобствами для программиста. UASM опенсорс, подход к продукту наверное разный.
2. Мне не понравился синтаксис фасм, пробовал более 10 раз, это дело вкуса. Как устроены хидеры в фасм даже не знаю, но в УАСМ они аутентичны относительно masm и студии. Смысл надстройки теряется из-за синтаксиса ... она никому не нужна.

| Сообщение посчитали полезным: parfetka

Ранг: 23.7 (новичок)
Статус: Участник

Создано: 16 июля 2017 15:37 New!
Цитата · Личное сообщение · #26

подскажите по Easy Code: как при создании визуального проекта посмотреть ID контролов?
Например, а папке с примерами есть пример "CpuID", в котором единственная кнопка на форме. В коде указан "IDC_CPUID_BUTTON1", который нигде не просматривается.

Ранг: 673.3 (! !)
Статус: Участник

Создано: 16 июля 2017 18:55 · Поправил: mak New!
Цитата · Личное сообщение · #27

parfetka пишет:

подскажите по Easy Code: как при создании визуального проекта посмотреть ID контролов?
Например, а папке с примерами есть пример "CpuID", в котором единственная кнопка на форме. В коде указан "IDC_CPUID_BUTTON1", который нигде не просматривается.

Немного сбивает с толку, если выбрать баттон, то в правом меню это как обычно поле Name, ради эксперимента можно поменять название и мы получим изменения в проекте, IDC_CPUID_BUTTON17 поменялось, если добавить скажем ещё одну кнопку и вновь поменять имя, то и название процедуры меняется. CPUID добавление это я так понял название проекта в настройках проекта, тоже можно менять, а идс стандарт. Автор программы конечно слишком жёстко привязал не только в этих местах. Например отдельно файл асма без проекта открыть нельзя. Я использую радасм2 и РесЕд на который указал VOLKOFF, хотя многие любят работать в Easy Code. В радасм нет подобных ограничений .. или удобств, кому как ..

  1.  .If uCtlID == IDC_CPUID_BUTTON17
  2.         .If uCode == BN_CLICKED
  3.             Invoke ShowCpuInfo
  4.             Return TRUE
  5.         .EndIf
  6.     .EndIf

Ранг: 23.7 (новичок)
Статус: Участник

Создано: 16 июля 2017 20:27 New!
Цитата · Личное сообщение · #28

при создании своего нового проекта этих строк:
нет!!! Обычно редактор ресурсов позволяет прописать произвольное:
#define IDC_CPUID_BUTTON1 1000
в *.rc или *.h файле. Остаётся только создавать проект, компилить, подсматривать значения в Project1Res.h, а затем писать обработчик процедуры.. или читать справку..


At run time, all child controls you added in each window object are already created and ready to use when receiving the WM_CREATE message of the window they belong to, that is, the owner window (no children yet in the WM_NCCREATE message). Each child control has an identifier or ID, with its corresponding constant name (upper case). To refer to any control using this constant, once again, you should take into account a simple rule. The constant name is all upper case and is formed by 'IDC_' plus the name of the owner window, plus '_', plus the control object name. For example, the ID constant name for a Static control named stcLabel, belonging to a window named wndMain, will be:


просто хотелось больше контроля..

Ранг: 673.3 (! !)
Статус: Участник

Создано: 16 июля 2017 21:56 · Поправил: mak New!
Цитата · Личное сообщение · #29


Файл генерируется при первом билде (4 - Easy Code generates an RC file and its corresponding header file (*.H)
When compiling an RC file with all Easy Code resources, it will be generated and placed in the folder of the project directory.), там появляется файл CPUidRes.h в котором есть строки -

  1. #define IDR_VERSION                     1
  2. #define IDI_APP_ICON                    100
  3. #define IDR_EC_ACCEL_TABLE              101
  4. #define RT_FILEDATA                     256
  5. #define IDC_CPUID_BUTTON1               1000

Если редактировать файл ресурсов, ничего не поменяется, но изикод использует свою структуру даже здесь, для меня удобнее иметь бат сборку, в RADASM2 можно иметь два варианта сразу, хотя батник это святое. Как вариант, добавить все контролы, потом сделать ген ресурсов, тогда можно увидеть имена. В хэлпе вероятно есть другое решение, так как сам изикод не использую, сказать точно не могу.

Вот из хэлпа
  3. At run time, all child controls you added in each window object are already created 
  4. and ready to use when receiving the WM_CREATE message of the window they belong to, 
  5. that is, the owner window (no children yet in the WM_NCCREATE message). Each child 
  6. control has an identifier or ID, with its corresponding constant name (upper case). 
  7. To refer to any control using this constant, once again, you should take into account 
  8. a simple rule. The constant name is all upper case and is formed by 'IDC_' plus the 
  9. name of the owner window, plus '_', plus the control object name. For example, the 
  10. ID constant name for a Static control named stcLabel, belonging to a window named 
  11. wndMain, will be:
  15. In most cases, the owner window and the parent of the control object are the same 
  16. (i.e. when you place a control object directly on the window object), but as we 
  17. saw before, there are three type of controls (Group, Picture and Rebar) which are 
  18. containers and may have child controls inside them. When that is the case, it DOES
  19.  NOT AFFECT the ID constant name! It continues being formed by IDC_, plus the owner
  20.  window name (not its parent, if any other), plus '_', plus its own name, 
  21. what makes your work easier not having to remember which is parent of which.

Ранг: 673.3 (! !)
Статус: Участник

Создано: 20 августа 2017 15:18 · Поправил: mak New!
Цитата · Личное сообщение · #30

Видимо есть ограничения на размер одного поста, т.к. текст уже не влезает в первый пост

VanHelsing пишет:
почему интересно Хатчинсон за столько лет не запилил MASM64 ?

Первая полная beta MASM64 - бинарники от студии как обычно самостоятельно копировать в папку бин. Ему кстати уже 69 лет, возраст тоже влияет на скорость хобби , может через год будет финальная версия.

. 1 . 2 . 3 . >>
 eXeL@B —› Софт, инструменты —› X64 Assembler Programming - UASM - JWasm

Видеокурс ВЗЛОМ