News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

64 bit variables

Started by zedd151, October 20, 2024, 02:33:34 PM

Previous topic - Next topic

C3

Quote from: zedd151 on October 20, 2024, 05:22:14 PMNow I am totally confused. There seems to be a lot of conflicting information around, or maybe I simply don't understand it.    :smiley:

Didn't you already got the Intel 64 and IA-32 Architectures Software Developers Manual? Check MOV's manual page. Theres all possible ways to use MOV instruction, for both 32bit and 64bit use.

zedd151

@C3, nope. Reading that stuff makes my eyes bleed.   :tongue:
I prefer explanations in plain language, from others with experience with such things.   :biggrin:

C3

Quote from: zedd151 on October 21, 2024, 03:19:55 AM@C3, nope. Reading that stuff makes my eyes bleed.   :tongue:
I prefer explanations in plain language, from others with experience with such things.   :biggrin:

Well, I do not know Intel copyright policy of that manual, so I'm not doing a screenshot of one page.

zedd151

Thats okay, I have already googled for the reason and explanation.  :smiley:
.. in addition to the info already posted here.
Quote from: sinsi on October 20, 2024, 03:02:58 PMPretty sure that mov mem,imm is restricted to a 32-bit value only.

C3

Quote from: zedd151 on October 21, 2024, 03:23:47 AMThats okay, I have already googled for the reason and explanation.   :smiley:

But another reason you to have the manual is.. that there is how instructions are build using machine language. So you can read and write the binary code/machine language. And I already know that you can do that too. But there is how the work is done by CPU Manufacturer.

NoCforMe

Quote from: zedd151 on October 21, 2024, 03:19:55 AM@C3, nope. Reading that stuff makes my eyes bleed.  :tongue:
I prefer explanations in plain language, from others with experience with such things.  :biggrin:

Check out this page; it shows all the possible permuations of MOV.

Look at the end for all the variations that allow immediate values to be moved: notice that there are 4 sizes, imm8, imm16, imm32 and imm64. The only place that an immediate 64-bit value is allowed is when the destination is a register, not memory. (Keep in mind that r/mXX means "register or memory".)

It's not rocket science.
Assembly language programming should be fun. That's why I do it.