Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Computer Systems Engineering Department Dr.

Khader Mohammad
X86 Microprocessor-Based Systems ENCS 338 HW_ #1 Duo April 2nd /2014

Note: Exact copy will take zero for all.

Question 1:

1. What are the main types of registers used in Intel-based microprocessors

2. Explain the difference between the overflow flag and the carry flag.

Question 2:

Write assembly code to do the following:

a) Array of 10 signed double words initialized to 1, 2, ..., 10.

b) Declare 4-bytes array of 100 numbers, all initialized to 0, starting at


memory location “MYGRADES”.

c) The 8086/8088 used two processing logical units what are they ?

d) What are the main buses used in CPU , indicate direction ?

e) Which flags are NOT used for mathematical operations?

f) List THREE microprocessor specifications that directly affect its


performance?

Question 2:

Suppose CS = 0BF70h, DS = 10BCh, SS=590h, ES = 2120h, BX=1250h,


BP=1Ch, SI=01FFH. What physical addresses in memory are accessed by the
following instructions?

MOV DL,[BX+SI+3FH]
MOV CX,ES:[BX]
ADD [SI+328H],AX
MOV [BP],4325H

1|Page
Computer Systems Engineering Department Dr. Khader Mohammad
X86 Microprocessor-Based Systems ENCS 338 HW_ #1 Duo April 2nd /2014

Question 3:

What will be the value of AX after these instructions :


MOV AX,12/5
MOV AX,12 AND 4
MOV AL,NOT 1

Question 4:

Write a complete 80x86 assembly language program to evaluate the expression


below. Assume that all values are signed double words.
Reserve 4096-byte stack, don’t use any shift or multiplication instructions.
You should initialize these variables A, B and C to decimal 23, hexadecimal 3FCE,
decimal 42, and uninitialized value, respectively.

R= A – (2 * B+ C )

2|Page

You might also like