N/APosted on - 07/21/2011
I am new in learning ASSEMBLY. I have a question in my mind: what is the difference between low byte and high byte; can anybody help me in explaining it diagrammatically showing both low byte and high byte in a 2 byte FRAME?
Also, how is data stored in these bytes? Does it depend on the data that will be stored in low byte or high byte OR anything else is also involved in it?
Low byte and high byte in a frame
The byte is a unit that most commonly consists of eight bits. A byte is the number of bits used to encode the character of text in a computer, therefore, for this reason it is the basic addressable element in many computer architectures.
Modern (ie, 386 and above) x86 microprocessors have eight 32-bit general-purpose registers, as shown in Figure A. These register names are mostly historical. For example, EAX called as Accumulator, since it was used by a number of arithmetic operations, and ECX known as the counter since it was used to hold a loop index. While most of the registers have lost their special purposes in modern instruction set, by convention, two are reserved for special purposes – the stack pointer (ESP) and the base pointer (EBP).For the EAX,EDX , EBX, ECX registers, subsections may be used. For example, the least significant 2 bytes of EAX can be treated as a 16-bit register called AX. The least significant byte of AX can be used as a single 8-bit register called Al, while the most significant byte of AX can be used as a single 8-bit register called AH. These names refer to the physical register. When a two-byte number(Quantity) is placed in DX, the update affects the value of DH and DL, and EDX. These sub-registers are mainly hold-overs from older, 16-bit versions of the instruction set. However, sometimes they are convenient when it comes to data that are smaller than 32-bits (eg 1-byte ASCII characters).