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.

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

    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 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.

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

      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 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.

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

        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 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.

          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
                                          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