|
Everything I've found on windows programming in 64 bit assembler leads me to the windows DDK.
That's both expensive and hard to work with.
Offhand - and this is just one witch's opinion - using the basics of linux is easy. Enough to run an assembler. And OS level programming in asm is going to be far less arduous in linux even if you're not familiar with the driver model and such, just because they don't have all the info on it paywalled like MS does.
I'd recommend familiarizing yourself with linux. you only need a little bit, and i think it will pay for itself for you in terms of effort invested if you want to code 64 bit asm code that actually does stuff.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
Thanks for responding!
|
|
|
|
|
Hi,
Cp-Coder wrote: Can any of you recommend any good resources covering 64 bit Assembler programming on Windows, preferably using Visual Studio? 64 bit inline assembler isn't supported in Visual Studio. But you should have no problem compiling ASM files. I would recommend The MASM Forum[^] as a great resource.
Best Wishes,
-David Delaune
|
|
|
|
|
Thanks for your response! I will check the forum out.
|
|
|
|
|
Intel itself has an introduction. I wouldn't recommend this to people who have never touched assembly before, but for you it should be good.
This table (and the linked SIB table) is also useful, even if you don't really care about the exact encoding of the operands, just to remind you of what forms the memory operand can have (a lot more flexible than the 8080). The ISDM has tables like that as well but this way it's more convenient IMO.
Of course get the Intel® 64 and IA-32 Architectures Software Developer Manuals (ISDM) as a reference. And you can use x86 and amd64 instruction reference, but that's only the instructions not the other details.
Once you know the basics you will probably find this interesting.
|
|
|
|
|
Good advice! Thanks.
|
|
|
|
|
There is nothing very difficult to understand with Linux. Get a copy of Ubuntu and if you don't have a spare PC, you can install it on a spare raw partition and do dual booting. I have it on my home system.
BTW, like you I retired (almost) a decade ago.
|
|
|
|
|
I dabbled with Ubuntu many years ago (I think it was their version 11) but at that time it did not have a driver for the Soundblaster card I had in my machine, so I dumped it. Anyway, thanks for the advice!
Quote: do dual booting
Yes, or run it in a virtual engine?
modified 7-Dec-19 7:20am.
|
|
|
|
|
The drivers have gotten far better.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
I have downloaded the ISO for version 19.10, thanks!
|
|
|
|
|
good luck to you, and have fun.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
Cp-Coder wrote: Yes, or run it in a virtual engine? Actually most people do it the other way... Linux main OS and Windows in a VM... specially Win10
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
There are several programs that will produce a bootable flash drive using any Linux distro. I've tried a couple, although not recently, and they worked fine.
Set your BIOS to boot from a stick before the internal HD, and you're set. This is nice, as anyone inclined can easily play with multiple distros.
I can't recall the program I used, but found this one: How to Create Bootable Linux USB Drive | Linuxize[^]
|
|
|
|
|
I don't think this message was meant for me.
|
|
|
|
|
Noted. Thanks!
|
|
|
|
|
You might use wsl (windows subsystem for linux). It's command line, but linux command line in Windows 10. Just install Ubuntu from Microsoft store.
|
|
|
|
|
Thanks!
|
|
|
|
|
Do you have any ideas that you want to implement, or just generally learn 64 bit assembler?
|
|
|
|
|
The main focus at the moment is just to get to know Assembler.
|
|
|
|
|
|
Thanks! Kip Irvine's book is on order, thanks.
modified 9-Dec-19 18:54pm.
|
|
|
|
|
If you are used to Visual Studio you can check out this link in Microsoft docs:
MASM for x64 (ml64.exe) | Microsoft Docs
And for the instructions set, the Intel documentation described in a previous reply is very helpful.
|
|
|
|
|
Noted! Thanks! And yes: I am very familiar with VS. Have used every version from 2010 (which cost me $500!) through 2012 (another $500 ) to 2019 CE, which is free.
Thanks MS! I for one appreciate what you do for me! A free upgrade to Windows 10 on all my family's machines, and the world's premier IDE free of charge.
modified 9-Dec-19 18:56pm.
|
|
|
|
|
I'll second the suggestion to use WSL - I do cross-platform (Linux/Windows) C++ development & use a Windows 10 laptop with a WSL Ubuntu 18.04 installation, and I wouldn't want to work any other way. I use Ubuntu bash as my main shell. I can invoke both Windows and Linux executables from that shell. I use Visual Studio Code as my editor, and can either interact with Windows tools, or Linux ones if I use the Remote-WSL extension.
If you use WSL1, you're using the Windows kernel through a translation layer, while WSL2 uses a lightweight VM with a Linux kernel - oh, and you can switch between WSL1 and 2 at will... In either case, your userspace experience should be pretty much the same...
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Ugh! I will keep your suggestion on the back burner, but quite frankly, I will lie if I tell you I understood every word you wrote. Note: The problem is my comprehension, not your suggestion! I just have to read your posting a few more times.
And: I have already downloaded the iso for Ubuntu (version 19 something). So I am ready to go the Ubuntu route if needed.
|
|
|
|