You are on page 1of 5

COMPUTER ORGANIZATION AND ARCHITECTURE

CENG624

Name: Abdulaziz mohd


ID: BH18500108

1
Table of Contents
Question 1 .........................................................................................................................................3
Question 2 .........................................................................................................................................4
Question 3 .........................................................................................................................................6
References .................................................................................................................................................... 8

2
Question 1:

• Code segment register (CS): is used for addressing memory location in the
code segment of the memory, where the executable program is stored.
• Data segment register (DS): points to the data segment of the memory
where the data is stored.
• Stack Segment Register (SS): is used for addressing stack segment of the
memory. The stack segment is that segment of memory which is used to store
stack data.

Question 2

Interrupts have two types: Hardware interrupt and Software interrupt.


The hardware interrupt occurrs by the interrupt request signal from peripheral circuits.
On the other hand, the software interrupt occurrs by executing a dedicated instruction.[2]

Software interrupts: A software interrupt is a call to an operating system procedure. Most


of these procedures, called interrupt handlers, provide input–output capability to
application programs. They are used for such tasks as the following:
• Displaying characters and strings
• Reading characters and strings from the keyboard
• Displaying text in color
• Opening and closing files
• Reading data from files
• Writing data to files
• Setting and retrieving the system time and date

Hardware interrupts: A hardware interrupt is generated by the Intel 8259 Programmable


Interrupt Controller (PIC), which signals the CPU to suspend execution of the current
program and execute an interrupt service routine. For example, a keyboard character
waiting at the input port would be lost if not saved by the CPU, or characters received from
the serial port would be lost if not for an interrupt-driven routine that stores them in a buffer.

Question 3:
General purpose registers are used to store temporary data within the microprocessor.
There are 8 general purpose registers in 8086 microprocessor.[3]

3
• AX – This is the accumulator. It is of 16 bits and is divided into two 8-bit registers
AH and AL to also perform 8-bit instructions.It is generally used for arithmetical
and logical instructions but in 8086 microprocessor it is not mandatory to have
accumulator as the destination operand.
• BX – This is the base register. It is of 16 bits and is divided into two 8-bit registers
BH and BL to also perform 8-bit instructions.It is used to store the value of the
offset.

Example:

MOV BL, [500] (BL = 500H)

• CX – This is the counter register. It is of 16 bits and is divided into two 8-bit
registers CH and CL to also perform 8-bit instructions.It is used in looping and
rotation.

Example:

MOV CX, 0005


LOOP

• DX – This is the data register. It is of 16 bits and is divided into two 8-bit registers
DH and DL to also perform 8-bit instructions. It is used in multiplication an
input/output port addressing.

Example:

MUL BX (DX, AX = AX * BX)

• SP – This is the stack pointer. It is of 16 bits.


It points to the topmost item of the stack. If the stack is empty the stack pointer will
be (FFFE)H. It’s offset address relative to stack segment.
• BP – This is the base pointer. It is of 16 bits.
It is primary used in accessing parameters passed by the stack. It’s offset address
relative to stack segment.
• SI – This is the source index register. It is of 16 bits.
It is used in the pointer addressing of data and as a source in some string related
operations. It’s offset is relative to data segment.
• DI – This is the destination index register. It is of 16 bits.
It is used in the pointer addressing of data and as a destination in some string
related operations.It’s offset is relative to extra segment.

4
References

[1] https://www.geeksforgeeks.org/memory-segmentation-8086-microprocessor/

[2] Assembly Language For x86 processors Seventh Edition

[3] https://www.tutorialspoint.com/assembly_programming/assemb
ly_registers.htm#:~:text=AX%20is%20the%20primary%20accumu
lator,be%20used%20in%20indexed%20addressing.

You might also like