Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6328593
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T17:29:10+00:00 2026-05-24T17:29:10+00:00

I just installed mingw32 on my 32-bit Vista box to experiment with gcc inline

  • 0

I just installed mingw32 on my 32-bit Vista box to experiment with gcc inline assembly. Unfortunately the 32-bit gcc compiler does not recognize the 64-bit registers,
such as %%rax.

Before i sink alot of time into trying to assemble a new toolchain, i have a few questions:

  1. Is there some processor mode on the x86 (Intel Core Duo, T5800) that will prevent it from using the 64-bit registers while running Vista32 (i.e. is this a lost cause)?

  2. Assuming that the answer to #1 is "Of course you can use %rax, etc under 32-bit windows", can gcc be configured to both recognize the 64-bit registers AND build an executable that will run under 32-bit windows? I know that gcc has a -m64 option, but my version that came with mingw32 does not have 64-bit support compiled in. I’m certainly willing to rebuild gcc if it can build 32-bit applications that have access to 64-bit registers, but i don’t want to go through that pain if it is not going to work anyway.

Aside: This is actually a first step towards learning the SSE2 instructions (yes, i know, compiler intrinsics exist, but i’d like to understand it from a machine level up).

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T17:29:11+00:00Added an answer on May 24, 2026 at 5:29 pm
    1. Yes, a 64-bit processor has 3 size modes, 16-bit, 32-bit and 64-bit. An operating system cannot run code in a mode larger than the operating system itself. Thus Vista 32-bit can only run code built for 16-bits and 32-bits. Your processor does indeed support 64-bits, so you should try to install a 64-bit OS on it. If your computer came with actual windows Vista CDs, there may be a separate CD for Vista 64. If you build a new toolchain with x86-64 support you will be able to compile code that uses 64-bit instructions and registers, but you will not be able to run the resulting executables unless you install a 64-bit OS.

    2. Since rax is a 64-bit register (the 32-bit equivalent is eax) it cannot be accessed except from a 64-bit program. The reason for this is a rather convoluted explanation of how the processor interprets the commands your program sends.

    But, you don’t actually need access to 64-bit code in order to use MMX, SSE, SSE2, and SSE3. All of those instructions are available in 32-bit mode and are supported by your processor.

    You also might want to consider running a Virtual Machine and putting Ubuntu inside it. This will allow you to run Linux inside a window on your Windows desktop. I think you will have a easier time of things using the GNU tool chain (gcc, etc) natively than you will using mingw32. VMs are easy to install and use in this day and age, there’s little reason to use mingw32 anymore. You could also look in to MS Visual C++ Express, which a windows-based compiler that is free from Microsoft, but it doesn’t support 64-bit (you have to pay for a version that does).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I just installed Eclipse with StatET, everything standard, and now my console does not
Just installed a clean version of mongodb on Fedora 17 64-bit, but the Mongo
Just installed and migrated a 2008 solution on Vista ultimate 64 and .net 4.0.
I've got Windows 7 64-bit and I just installed Qt (open-source, version 2010.04) and
Just started up in Rails. I'm on windows vista, installed the latest build of
Just installed Python 2.7.3 on a Windows7 machine. How do I get .py files
Just installed Jenkins in Ubuntu 12.04 and I wanted to create a simple build
Just installed the SDK and ADK. while updating, it gives the following error: unexpected
Just installed EE everything seems clear however I can't seem to find a solution
I just installed FuzzyFinder for gvim, though for some reason it's using an ultra

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.