It’s my second question, one after another. That’s the problem with assembly (x86 – 32bit) too.
“Programming from the Ground Up” says that 4bytes are 32bits and that’s a word.
But Intel’s “Basic Architecture” guide says, that word is 16bits (2 bytes) and 4 bytes is a dualword.
Memory uses 4bytes words, to get to another word I have to skip next 4 bytes, on each word I can make 4 offsets (0-3) to read a byte, so it’s wrong with Intel’s name, but this memory definition goes from Intel, so what’s there bad?
And how to operate on words, dualword, quadwords in assembly? How to define the number as quadword?
To answer your first question, the processor word size is a function of the architecture. Thus, a 32-processor has a 32-bit word. In software types, including assembly, usually there is need to identify the size unambigously, so word type for historical reasons is 16-bits. So probably both sources are correct, if you read them in context: the first one is referring to the processor word, while the Intel guide is referring to the word type.