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 Offline
    C Offline
    Cp Coder
    wrote on last edited by
    #1

    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 L M M U 15 Replies 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.

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