Hi everyone,
first of all, i'm a newby in assembler so please apologize my question. :red
What exactly is the difference between 32Bit and 64Bit programming?
What for a special hard or software needs a programmer who is
interested in 64Bit programming?
Thank you.
regards,
stk
Hi stk,
Excuse Me, but this week I'm very busy! :dazzled:
I have found these links for you in a few minutes, but when I come back, I will write to you again.
http://en.wikipedia.org/wiki/AMD64
http://www.short-media.com/forum/showthread.php?t=10385
http://www.softwaretipsandtricks.com/windowsxp/articles/581/1/The-difference-between-64-and-32-bit-processors
http://msdn2.microsoft.com/en-us/visualc/aa336463.aspx
http://en.wikipedia.org/wiki/64-bit
http://www.geocities.com/firepower_50ae/CodeNote/WinAPIfaq.html
http://www.answers.com/topic/64-bit-computing
Regards.
:bg
# Device drivers must be 64-bit versions; there is no support for running 32-bit kernel-mode executables within the 64-bit OS. (Talking about Windows).
Damn! :snooty:
hi Tom
it is true, but non only....! :dazzled:
x64 versions of Windows Vista require Kernel Mode Code Signing (KMCS) in order to load kernel-mode software ! :snooty:
Unsigned drivers will be rejected from the kernel !
These papers describe how to manage the signing process for kernel-mode software for Windows Vista.
http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/KMCS_Walkthrough.doc
http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/64bitDriverSigning.doc
stk
Since you are a GoAsm user, this article will help to answer your question (although it is relevant generally):-
writing 64-bit programs (http://www.jorgon.freeserve.co.uk/GoasmHelp/64bits.htm).
Hello,
thank you to all for the information.
So far i have only the 32Bit versions of GoASM (the first 5 or 6 downloads of the site).
What is with the MASM32 programmers, do they need a MASM64 version?
regards,
stk
QuoteSo far i have only the 32Bit versions of GoASM (the first 5 or 6 downloads of the site).
The GoAsm version you already have works as a 64-bit assembler if you specify the /x64 switch in the command line.
Hi,
so i do only need the sites and information what you and the others have posted before.
Thank you.
stk
I would suggest you start with the Hello64World examples in the GoAsm help file and work from there.
Hi jorgon,
in assembly, i have no other choice than to start with "Hello World", no matter if it's
16, 32 or 64Bit :U
I've posted a question in the campus section, i think (no i know) you can explain my
question! :bg
regards,
stk
As a matter of interest, ml64 is NOT a 64-bit clone of ml. Its functionality is severely diminished, and is designed only for bare-bones use. Thus if you wish to code for a 64-bit platform in assembly, i think most people on this board would recommend looking anywhere other than Microsoft.
Hope this helps, Ehtyar.
Hi,
thank you, i only want to know the differences, first of all i'll learn the
basics of the assembly language, i think that means 16Bit and MS-DOS.
stk
Personally I would skip 16-bit assembly but a few MS-DOS commands are useful.
Hi jorgon,
but i have read that the most assemblers (32Bit and up) have the attention on
using WinAPI, and that this should be not very helpful to learn the basics of
assembler right, and that beginners should first learn assembly under 16Bit and
MS-DOS. Or is this different in your Tutorial?
stk
If that is the advice, then I do not agree with it.
16-bit assembler is actually more difficult than 32-bit assembler because of segmentation. And to do anything meaningful you need to grasp the DOS and BIOS interrupts. Unless you really need to use 16-bit it would be pointless to learn it.
It is true that if you wish to write any worthwhile programs using 32-bit assembler to run under Windows, you will need at the same time to learn how to program in Windows. 32-bit assembler is very low level programming, whereas Windows is very high level programming. In my opinion this is a perfect combination! Learning Windows programming is a good thing!
If you just want to play around with the registers and watch this in the debugger you can write a 32-bit program which will run under Windows without calling any Win API at all eg.
START:
MOV EAX,13 ;put thirteen into the eax register
MOV ECX,13 ;put thirteen into the ecx register
MUL ECX ;mulitply eax by ecx (answer in edx:eax)
XOR EAX,EAX ;zero the eax register
RET ;return to Windows
This is the beauty of assembler!
jorgon,
thank you for this information.
stk
Quotex64 versions of Windows Vista require Kernel Mode Code Signing (KMCS) in order to load kernel-mode software !
May be worthing adding that whilst true for Vista 64, it is not true of XP 64. Also, you can also develop Vista 64 bit drivers inhouse without having to buy a certificate. It's the installation on another machine that requires the expensive piece of digital paper.
Also interesting (I'll shutup soon) is that to get WHQL on a 32 Vista driver you have to submit both 32bit and 64bit drivers to MS. That is good news for the 64 bit world.
Git
Hi everybody !
I have to use 64-bit words but the memory needed is far below 4 Gigabites.
Is it possible to use 64-bit coding with 32-bit addressing ?
Cheers
QuoteIs it possible to use 64-bit coding with 32-bit addressing ?
Sure, I would regard RIP-relative addressing as a form of 32-bit addressing.
This is done automatically if you use the AMD64/EM64T.
See http://www.jorgon.freeserve.co.uk/GoasmHelp/64bits.htm#diffrel (http://www.jorgon.freeserve.co.uk/GoasmHelp/64bits.htm#diffrel) for an explanation how it works.