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

  • Home
  • SEARCH
  • 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 7682787
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T18:38:56+00:00 2026-05-31T18:38:56+00:00

Study guide question: I have no idea what the difference is between writing it

  • 0

Study guide question: I have no idea what the difference is between writing it in 16bit and 32 bit, though. Can someone clarify how that changes things?

Write an 80×86 assembly program that will add word size signed integers in memory and
stop when it sees a zero. The sum will always be greater than -32768 and less than 32767.
The sum should be written to memory. If only a zero is in the string of integers place a 0
in total. Use the JNZ command. (If the last operation results in a zero jump to a label.)

16bit
integs DW 2,-300, 54, 30, 8,,-240, 0
total DW ?

32bit
integs WORD 2,-300, 54, 30, 8,,-240, 0
total WORD ?

  • 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-31T18:38:57+00:00Added an answer on May 31, 2026 at 6:38 pm

    There are several differences in 32-bit code as opposed to 16-bit:

    • First and foremost, of course, your registers and indexes and data reads are typically 32 bits wide. (You can change this with address-size and operand-size prefixes. Typically you won’t use the address-size prefix, but for 32-bit code reading 16-bit words, i can see the operand-size prefix being used pretty extensively. Some assemblers will take care of that for you.)

    • The 32-bit registers have names starting with E, and are basically extensions of the 16-bit registers. (For example, AX is the low word of EAX. Unfortunately, there’s no built-in way to access the high word. You’ll have to rotate or shift the register to get to the upper 16 bits.)

    • Indexing is different as well. 16-bit code is far more limited in how it can combine registers. You’ll see a lot of [BX+SI], but IIRC [AX+BX] isn’t even legal. It is in 32-bit code. Plus, 32-bit code can scale the first term (times 1, 2, 4…i forget whether 8 is allowed). For example, [EBX*4+ECX].

    • In 16-bit code, the registers have rather strict purposes; for example, CX is a counter, BX is basically a base pointer, SI and DI are indexes — hence their names. Working against that tends to mean jumping through hoops. In 32-bit code, this is noticeably relaxed; while the registers still mostly retain their special purposes, the more flexible indexing lets just about any free register serve as an index.

    • Protected mode is pretty much always on. (There’s special cases, but they’re not common anymore. You’d have to be writing a DOS game or something to see it; every decent OS jumps into protected mode as soon as it can.) There’s a bunch of restrictions and such that go along with it. Most will be invisible to you unless you try to do kernel-level stuff, though. Most 16-bit code is intended to run in “real mode” or “virtual 8086” mode, where the CPU basically acts like a really fast 8086, funky addressing and all.

    • Oh yeah, addressing. 16-bit code uses “segments”, where the segment registers (CS, DS, etc) are simply shifted left by 4 bits and added to the “offset” to give you a 20-bit value (max: 1MB). 32-bit code is nowhere near that regular, but also nowhere near that limited; it repurposes the segment registers as “selectors”, which can point just about anywhere in the CPU’s address space, but have to be set up in a descriptor table (GDT or LDT). In practice, 32-bit code almost always sets all the segments to point to the same region of memory. That’s called a “flat model”, and is by far the most common setup. 16-bit code has like a half dozen different memory models, depending on how big the code and data need to be.

    The directives/instructions for raw data are typically the same; DW still typically means “this is a word”, DD means “this is a dword”, etc.

    By the way, “x86” and “80×86” typically imply “32-bit” — mostly because the term wasn’t common til 32-bit CPUs came about.

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

Sidebar

Related Questions

I have this question from the Zend PHP study guide and can't find a
I was given this question on my study guide for a test I have
I have this problem on my study guide that calls for a function that
I have a question. My case study is that I have two big SQLite
I'm trying to do a question on my study guide that asks: Write an
This is not a homework question, rather an exam study guide question. What is
Can someone provide me a reference to a good PHPUnit mock guide? The one
I study C and I noticed that I can't find the implementation file for
i am starting to study FLEX. i have only flex sdk. So can i
I'm looking for an exhaustive, university-level book or guide to study in order to

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.