The MASM Forum

64 bit assembler => UASM Assembler Development => Topic started by: DebugBSD on November 11, 2020, 11:16:12 PM

Title: Support to ARM32/64 Architectures into UASM
Post by: DebugBSD on November 11, 2020, 11:16:12 PM
Hi, good morning!

Although I think I already know the answer :P, I would like to ask if there is a thought about adding support to ARM architecture into UASM?

Have a nice day!
Guille
Title: Re: Support to ARM32/64 Architectures into UASM
Post by: TouEnMasm on November 12, 2020, 12:21:58 AM

There is ARM library given with the windows SDK.isn't enough ?
Title: Re: Support to ARM32/64 Architectures into UASM
Post by: Vortex on November 12, 2020, 02:08:44 AM
Hi TouEnMasm,

If I remember well, the latest Windows SDKs are offering a C\C++ compiler for the ARM platform.
Title: Re: Support to ARM32/64 Architectures into UASM
Post by: DebugBSD on November 12, 2020, 02:14:27 AM
Quote from: TouEnMasm on November 12, 2020, 12:21:58 AM

There is ARM library given with the windows SDK.isn't enough ?

Are you talking about the C/C++ library which comes with Visual Studio? If yes, I'm not sure about how to use it with MASM or UASM. Right now Visual Studio uses arm64asm.exe and I'm sure that masm doesn't support arm instruction set architecture the same way gas does it.
Title: Re: Support to ARM32/64 Architectures into UASM
Post by: TouEnMasm on November 12, 2020, 04:23:46 AM

The windows sdk give arm library and arm binaries (rc,midl...)
The c++ visual studio don't seem to get anything for arm

Title: Re: Support to ARM32/64 Architectures into UASM
Post by: LiaoMi on November 12, 2020, 09:03:37 AM
FASMARM - https://arm.flatassembler.net/

The ARM Compiler armasm User Guide provides user information for the ARM assembler, armasm. It contains information on command-line options, instruction sets, and assembler directives - https://developer.arm.com/documentation/dui0473/m/preface/about-this-book (PDF - https://documentation-service.arm.com/static/5ea074249931941038de698a?token= )

Download Arm Compiler Version 6.15 Windows 64-bit Released: October 09, 2020 - armasm, armlink - https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/version-6

ARM Assembler Reference - https://docs.microsoft.com/en-us/cpp/assembler/arm/arm-assembler-reference?view=msvc-160
Compiler intrinsics and assembly language - https://docs.microsoft.com/en-us/cpp/intrinsics/?view=msvc-160
Title: Re: Support to ARM32/64 Architectures into UASM
Post by: DebugBSD on November 14, 2020, 04:28:30 AM
Quote from: LiaoMi on November 12, 2020, 09:03:37 AM
FASMARM - https://arm.flatassembler.net/

The ARM Compiler armasm User Guide provides user information for the ARM assembler, armasm. It contains information on command-line options, instruction sets, and assembler directives - https://developer.arm.com/documentation/dui0473/m/preface/about-this-book (PDF - https://documentation-service.arm.com/static/5ea074249931941038de698a?token= )

Download Arm Compiler Version 6.15 Windows 64-bit Released: October 09, 2020 - armasm, armlink - https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/version-6

ARM Assembler Reference - https://docs.microsoft.com/en-us/cpp/assembler/arm/arm-assembler-reference?view=msvc-160
Compiler intrinsics and assembly language - https://docs.microsoft.com/en-us/cpp/intrinsics/?view=msvc-160

Thanks for the info!

I didn't know about fasmarm. I'll take a look on it. Do you know if it's possible to use with the Oculus Quest?
Title: Re: Support to ARM32/64 Architectures into UASM
Post by: mazegen on November 17, 2020, 09:03:52 AM
Beware, FASMARM doesn't support relocations. You can run into problems quickly.
Title: Re: Support to ARM32/64 Architectures into UASM
Post by: TouEnMasm on November 23, 2020, 08:06:26 PM

The windows sdk offer cppwinrt for arm.Seem to be a compiler (i couldn't test it).
C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\arm\cppwinrt.exe

Title: Re: Support to ARM32/64 Architectures into UASM
Post by: johnsa on December 05, 2020, 05:18:23 AM
Believe it or I had considered this.. I don't think it would ever be possible to integrate ARM support into the existing UASM as the whole assembler from inception was never geared to targeting different back-ends.

I am also in the plans of making a version of UASM for 68k (specifically to support all of the new 080 features, some of which are available in VASM but not all) as well as bringing the UASM/HLL macro style flavour to 68k. I'm working with the Apollo team on the new Amiga FPGA machines, part of which include the 68080 process which is a very exciting CPU.. I always loved 68k coding and it's ISA.

For both of these projects a new assembler needs to be created from the ground-up, possibly one with a modular architecture for targeting different instruction sets and CPUs.
Title: Re: Support to ARM32/64 Architectures into UASM
Post by: DebugBSD on December 05, 2020, 08:19:16 AM
Quote from: johnsa on December 05, 2020, 05:18:23 AM
Believe it or I had considered this.. I don't think it would ever be possible to integrate ARM support into the existing UASM as the whole assembler from inception was never geared to targeting different back-ends.

I am also in the plans of making a version of UASM for 68k (specifically to support all of the new 080 features, some of which are available in VASM but not all) as well as bringing the UASM/HLL macro style flavour to 68k. I'm working with the Apollo team on the new Amiga FPGA machines, part of which include the 68080 process which is a very exciting CPU.. I always loved 68k coding and it's ISA.

For both of these projects a new assembler needs to be created from the ground-up, possibly one with a modular architecture for targeting different instruction sets and CPUs.

Thank you so much!

I knew that adding support to different kind of architectures could be a hard task to achieve. I've asked about the ARM support just for curiosity. Some times I develop software using the GNU Assembler (and here I have to add that GNU Assembler has support for different kind of architectures althought with different kind of compilations) targeting ARM devices and most of the time I have problems with the AT&T Syntax which is useless today unless you are programming some OLD Motorolla device or maybe an older PowerPC architecture. Today most software is written using Intel Sytnax even for ARM devices. Furthermore, in the next few years we'll see new desktop systems using ARM processors (not just mobile devices or embedded systems) instead of the Intel/AMD processors (See Apple) so that is a plus to UASM.

Thank you so much for your time and sorry for any inconvenience,
Guille