Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Learning Assembler (64 bit)

Learning Assembler (64 bit)

Scheduled Pinned Locked Moved The Lounge
csharpvisual-studiolinuxhardwareperformance
35 Posts 15 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Cp Coder

    Many moons ago, before I retired, for many decades, I programmed embedded devices (8 / 16 bit) in both plain C and Assembler. In the early 1980s I even programmed my first PC in Assembler. This was one of the first genuine IBM PCs that they produced in Scotland. It's processor was an Intel 8080 running at the stunning clock speed of 4.7 MHz! At the time that was considered revolutionary! Since my retirement a decade ago, I have been dabbling with C# just to keep the grey cells busy. Lord knows I have lost too many of them due to the stoopid aging process! :mad: But lately I have been looking around for another challenge. Learning 64 bit Assembler sounds interesting. Checked Amazon for not-too-expensive books on the subject, but some of the better books are for the Linux operating system. I just don't have the energy left to learn both Assembler and Linux. :sigh: Can any of you recommend any good resources covering 64 bit Assembler programming on Windows, preferably using Visual Studio? Please understand that I have done a Google search. Got plenty possibilities from Google. But I would like options that come with your personal recommendations, please. It is so much easier to pick options that your trusted friends recommend.

    L Offline
    L Offline
    Lost User
    wrote on last edited by
    #5

    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.

    C B 2 Replies Last reply
    0
    • H honey the codewitch

      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.

      C Offline
      C Offline
      Cp Coder
      wrote on last edited by
      #6

      Thanks for responding! :)

      1 Reply Last reply
      0
      • L Lost User

        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

        C Offline
        C Offline
        Cp Coder
        wrote on last edited by
        #7

        Thanks for your response! I will check the forum out. :)

        1 Reply Last reply
        0
        • L Lost User

          Intel itself has an [introduction](https://software.intel.com/en-us/articles/introduction-to-x64-assembly). I wouldn't recommend this to people who have never touched assembly before, but for you it should be good. [This table](https://www.sandpile.org/x86/opc\_rm.htm) (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](https://software.intel.com/en-us/articles/intel-sdm) (ISDM) as a reference. And you can use [x86 and amd64 instruction reference](https://www.felixcloutier.com/x86/), but that's only the instructions not the other details. Once you know the basics you will probably find [this](https://www.agner.org/optimize/) interesting.

          C Offline
          C Offline
          Cp Coder
          wrote on last edited by
          #8

          Good advice! Thanks. :)

          1 Reply Last reply
          0
          • L Lost User

            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.

            C Offline
            C Offline
            Cp Coder
            wrote on last edited by
            #9

            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?

            H N 2 Replies Last reply
            0
            • C Cp Coder

              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?

              H Offline
              H Offline
              honey the codewitch
              wrote on last edited by
              #10

              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.

              C 1 Reply Last reply
              0
              • H honey the codewitch

                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.

                C Offline
                C Offline
                Cp Coder
                wrote on last edited by
                #11

                I have downloaded the ISO for version 19.10, thanks!

                H 1 Reply Last reply
                0
                • C Cp Coder

                  I have downloaded the ISO for version 19.10, thanks!

                  H Offline
                  H Offline
                  honey the codewitch
                  wrote on last edited by
                  #12

                  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.

                  1 Reply Last reply
                  0
                  • C Cp Coder

                    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?

                    N Offline
                    N Offline
                    Nelek
                    wrote on last edited by
                    #13

                    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.

                    1 Reply Last reply
                    0
                    • C Cp Coder

                      Many moons ago, before I retired, for many decades, I programmed embedded devices (8 / 16 bit) in both plain C and Assembler. In the early 1980s I even programmed my first PC in Assembler. This was one of the first genuine IBM PCs that they produced in Scotland. It's processor was an Intel 8080 running at the stunning clock speed of 4.7 MHz! At the time that was considered revolutionary! Since my retirement a decade ago, I have been dabbling with C# just to keep the grey cells busy. Lord knows I have lost too many of them due to the stoopid aging process! :mad: But lately I have been looking around for another challenge. Learning 64 bit Assembler sounds interesting. Checked Amazon for not-too-expensive books on the subject, but some of the better books are for the Linux operating system. I just don't have the energy left to learn both Assembler and Linux. :sigh: Can any of you recommend any good resources covering 64 bit Assembler programming on Windows, preferably using Visual Studio? Please understand that I have done a Google search. Got plenty possibilities from Google. But I would like options that come with your personal recommendations, please. It is so much easier to pick options that your trusted friends recommend.

                      M Offline
                      M Offline
                      Member 7790817
                      wrote on last edited by
                      #14

                      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.

                      C 1 Reply Last reply
                      0
                      • C Cp Coder

                        Many moons ago, before I retired, for many decades, I programmed embedded devices (8 / 16 bit) in both plain C and Assembler. In the early 1980s I even programmed my first PC in Assembler. This was one of the first genuine IBM PCs that they produced in Scotland. It's processor was an Intel 8080 running at the stunning clock speed of 4.7 MHz! At the time that was considered revolutionary! Since my retirement a decade ago, I have been dabbling with C# just to keep the grey cells busy. Lord knows I have lost too many of them due to the stoopid aging process! :mad: But lately I have been looking around for another challenge. Learning 64 bit Assembler sounds interesting. Checked Amazon for not-too-expensive books on the subject, but some of the better books are for the Linux operating system. I just don't have the energy left to learn both Assembler and Linux. :sigh: Can any of you recommend any good resources covering 64 bit Assembler programming on Windows, preferably using Visual Studio? Please understand that I have done a Google search. Got plenty possibilities from Google. But I would like options that come with your personal recommendations, please. It is so much easier to pick options that your trusted friends recommend.

                        M Offline
                        M Offline
                        maze3
                        wrote on last edited by
                        #15

                        Do you have any ideas that you want to implement, or just generally learn 64 bit assembler?

                        C 1 Reply Last reply
                        0
                        • L Lost User

                          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.

                          B Offline
                          B Offline
                          BryanFazekas
                          wrote on last edited by
                          #16

                          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[^]

                          L C 2 Replies Last reply
                          0
                          • B BryanFazekas

                            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[^]

                            L Offline
                            L Offline
                            Lost User
                            wrote on last edited by
                            #17

                            I don't think this message was meant for me.

                            1 Reply Last reply
                            0
                            • C Cp Coder

                              Many moons ago, before I retired, for many decades, I programmed embedded devices (8 / 16 bit) in both plain C and Assembler. In the early 1980s I even programmed my first PC in Assembler. This was one of the first genuine IBM PCs that they produced in Scotland. It's processor was an Intel 8080 running at the stunning clock speed of 4.7 MHz! At the time that was considered revolutionary! Since my retirement a decade ago, I have been dabbling with C# just to keep the grey cells busy. Lord knows I have lost too many of them due to the stoopid aging process! :mad: But lately I have been looking around for another challenge. Learning 64 bit Assembler sounds interesting. Checked Amazon for not-too-expensive books on the subject, but some of the better books are for the Linux operating system. I just don't have the energy left to learn both Assembler and Linux. :sigh: Can any of you recommend any good resources covering 64 bit Assembler programming on Windows, preferably using Visual Studio? Please understand that I have done a Google search. Got plenty possibilities from Google. But I would like options that come with your personal recommendations, please. It is so much easier to pick options that your trusted friends recommend.

                              U Offline
                              U Offline
                              User 10388727
                              wrote on last edited by
                              #18

                              Check out

                              http://asmirvine.com/
                              
                              C 1 Reply Last reply
                              0
                              • B BryanFazekas

                                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[^]

                                C Offline
                                C Offline
                                Cp Coder
                                wrote on last edited by
                                #19

                                Noted. Thanks! :)

                                1 Reply Last reply
                                0
                                • M Member 7790817

                                  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.

                                  C Offline
                                  C Offline
                                  Cp Coder
                                  wrote on last edited by
                                  #20

                                  Thanks! :)

                                  1 Reply Last reply
                                  0
                                  • M maze3

                                    Do you have any ideas that you want to implement, or just generally learn 64 bit assembler?

                                    C Offline
                                    C Offline
                                    Cp Coder
                                    wrote on last edited by
                                    #21

                                    The main focus at the moment is just to get to know Assembler. :)

                                    1 Reply Last reply
                                    0
                                    • U User 10388727

                                      Check out

                                      http://asmirvine.com/
                                      
                                      C Offline
                                      C Offline
                                      Cp Coder
                                      wrote on last edited by
                                      #22

                                      Thanks! Kip Irvine's book is on order, thanks. :)

                                      1 Reply Last reply
                                      0
                                      • C Cp Coder

                                        Many moons ago, before I retired, for many decades, I programmed embedded devices (8 / 16 bit) in both plain C and Assembler. In the early 1980s I even programmed my first PC in Assembler. This was one of the first genuine IBM PCs that they produced in Scotland. It's processor was an Intel 8080 running at the stunning clock speed of 4.7 MHz! At the time that was considered revolutionary! Since my retirement a decade ago, I have been dabbling with C# just to keep the grey cells busy. Lord knows I have lost too many of them due to the stoopid aging process! :mad: But lately I have been looking around for another challenge. Learning 64 bit Assembler sounds interesting. Checked Amazon for not-too-expensive books on the subject, but some of the better books are for the Linux operating system. I just don't have the energy left to learn both Assembler and Linux. :sigh: Can any of you recommend any good resources covering 64 bit Assembler programming on Windows, preferably using Visual Studio? Please understand that I have done a Google search. Got plenty possibilities from Google. But I would like options that come with your personal recommendations, please. It is so much easier to pick options that your trusted friends recommend.

                                        B Offline
                                        B Offline
                                        bfi67
                                        wrote on last edited by
                                        #23

                                        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.

                                        C 1 Reply Last reply
                                        0
                                        • C Cp Coder

                                          Many moons ago, before I retired, for many decades, I programmed embedded devices (8 / 16 bit) in both plain C and Assembler. In the early 1980s I even programmed my first PC in Assembler. This was one of the first genuine IBM PCs that they produced in Scotland. It's processor was an Intel 8080 running at the stunning clock speed of 4.7 MHz! At the time that was considered revolutionary! Since my retirement a decade ago, I have been dabbling with C# just to keep the grey cells busy. Lord knows I have lost too many of them due to the stoopid aging process! :mad: But lately I have been looking around for another challenge. Learning 64 bit Assembler sounds interesting. Checked Amazon for not-too-expensive books on the subject, but some of the better books are for the Linux operating system. I just don't have the energy left to learn both Assembler and Linux. :sigh: Can any of you recommend any good resources covering 64 bit Assembler programming on Windows, preferably using Visual Studio? Please understand that I have done a Google search. Got plenty possibilities from Google. But I would like options that come with your personal recommendations, please. It is so much easier to pick options that your trusted friends recommend.

                                          S Offline
                                          S Offline
                                          Stuart Dootson
                                          wrote on last edited by
                                          #24

                                          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

                                          C 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups