# Understanding Machine code



## zergpc208 (Jan 15, 2006)

Okay is it true the 8088 CPU worked with 8 bits ? Because I thought all computers worked with 8 bits . Like 8 bits is smallest a computer uses for data. And if data is more than 8 bits like 16 it would have to add the two or come up with combinations for other data.


And the RAM was 8 bits too? Like the RAM can be any size but can only read or write 8 bits at a time.

So that say the RAM was 40 bits that is 5 groups of 5 bytes ..

1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8


Okay new computer are the same like this but billions times more ? So computer worked with 8 bits you know read or write 8 bits at a time? Than where does 16,32 or 64 bit processor come, if it can only worked with 64 bits at a time ,you know read or write 64 bits at a time.


And 64 bits would be 8 bytes .
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8


Is it true the 8088 CPU the first 4 bits was data and last 4 bits was commands or Machine Code


----------



## Chicon (Jul 29, 2004)

Hi zergpc208,

You'll find here more specifications about the 8088 CPU and its assembly mnemonics.


----------



## lotuseclat79 (Sep 12, 2003)

More here.

-- Tom


----------



## dquigley (Apr 17, 2006)

The 8088 internally is a 16 bit processor (registers, internal bus, etc.) but had an 8 bit data bus to make it less expensive for manufactures to use it in their designs. The 8086 was the full 16 bit version.



> Is it true the 8088 CPU the first 4 bits was data and last 4 bits was commands or Machine Code


Not the CPU. The 8088 architecture uses a segmented memory model, and 20bit addresses for total of 1MB of addressable memory (actually 1MB+64k because of a processor bug). A 16bit segment register points to a 64k block of memory and a 16bit pointer register points to a byte of memory in that 64k block. During operation two 16 bit registers are added together to form the full 20 bit address. A Code Segment register (CS) and an Instruction Pointer (IP) register "pointed" to the currently executing byte of machine code. There are three other segment : pointer register combinations which usually point to memory used for data or stack.

You may be thinking about how early PCs managed character based video memory. One nibble was used to store one of 127 displayable ascii characters and the other nibble defined display attributes like underlining, flashing, etc. or color information for early color displays.

Best,
Dan


----------



## zergpc208 (Jan 15, 2006)

> The Intel 8088 is an Intel microprocessor based on the 8086, with 16-bit registers and an 8-bit external data bus. The processor was used in the original IBM PC.


There it is 8088 can read or write 8 bits at a time that means 8 binary numbers!! It can only worked with 8 bits at a time 



> The 8088 was targeted at economical systems by allowing the use of 8-bit designs. Large bus width circuit boards were still fairly expensive when it was released.


What was the problems with the bus ? was it a design problem ?So the 8088 was 8-bit ,why did they not make it a 16 bit bus or a 16 bit processor that can read or write 16-bits at a time.

Was it a design problem so they could not make the 8088, could not work with 16 bits at a time?



> The Intel i486 (also called 486 or 80486) is a range of 32-bit scalar Intel CISC microprocessors which is part of the Intel x86 family of processors. The i486's predecessor was the Intel 80386 processor. The first line of 486 processors were introduced in 1989.


What the 80486 read or write 16 bits at a time it worked with 16 bits not 8 bits like the 8088



> From a software point of view, the instruction set of the i486 family is very similar to its predecessor, the Intel 80386, with the addition of only a few extra instructions.


What instruction set ? What do you mean?



> The 486 has a 32-bit data bus . This requires either four matched 30-pin SIMMs or one 72-pin SIMM. .


'
Same thing


> In May 2006 Intel announced that production of the 80486 would cease at the end of September 2007. [1] Although the chip had long been obsolete for personal computer applications, Intel had continued production for use in embedded systems.


What is embedded systems?


----------



## zergpc208 (Jan 15, 2006)

> The 8088 internally is a 16 bit processor (registers, internal bus, etc.) but had an 8 bit data bus to make it less expensive for manufactures to use it in their designs. The 8086 was the full 16 bit version.


The registers was 16 bit and it worked with 16 bit in side  But the data bus was 8 bits !! If you try to send more than 8 bits to the CPU at time it will not work ,becuse it read or write 8 bits at a time that means 8 binary numbers.In side it can read or write 16 bit at a time and work with 16 bit at a time


----------



## Chicon (Jul 29, 2004)

Before focusing on some aspects of the 8088, you should probably learn the way microprocessors are working and the role of their components.
Link to *How Microprocessors Work*.


----------



## Shamou (Oct 17, 2005)

Chicon said:


> Before focusing on some aspects of the 8088, you should probably learn the way microprocessors are working and the role of their components.
> Link to *How Microprocessors Work*.


Great link Chicon... thanks... :up:


----------



## Chicon (Jul 29, 2004)

Shamou said:


> Great link Chicon... thanks... :up:


Mais de rien, mon ami !


----------



## Shamou (Oct 17, 2005)

Chicon said:


> Mais de rien, mon ami !


That would be Parisian French... in Québec we would say,
"Y'a rien là..." but of course no one in France would understand that...


----------



## zergpc208 (Jan 15, 2006)

Who was saying that CPU's read data one byte at a time? It can read any byte the 8088 read 8 bits at a time than it was 16 bits at a time now it is 32 bits at a time.

In the future it will be 64 bits at a time.

And block of memory is not like it was with the 8088 one byte at time or 8 bits at a time.

Memory Addressing is determine by how big the address bus is wich = how much RAM a CPU can address.You need to know the address to find location of data in RAM.Most computers will not address up to nor more than 4 GB with the address bus we use today.They will have to bring out a bigger address bus if they want to address more than 4 GB .

I'm not sure the width of the address bus it should address up to 4 GB of RAM with todays address bus


----------

