Writing assembly language using microprocessor

Question 1: If the code segment for an 8086 program begins at address 70400h, then what will be the content of cs register?

Supposing the same code base from what physical addresses will a code byte be fetched from if the instruction pointer contains 539Ch?

Question 2: What physical address is represented by:

a) 4370:561Eh
b) 7A32:0028h

Question 3: If the stack segment register comprises of 3000h and stack pointer comprises of 8434h, then what is the physical address of the top of the stack.

Question 4: Write the assembly language statement by using the instruction set of 8086 which will perform the given operations:

a) Load number 7986h into BP register.
b) Copy the BP register content into SP register.
c) Load DS register with address 534Ch
d) Load the number F5H into AL register.

Question 5: Explain the function of each assembler directive and instruction statement in the short program illustrated below:

DATA_HERE SEGMENT
NUM1 DB 01H
SUM DB ?
DATA_HERE ENDS
CODE_ HERE
ASSUME DS:DATA_HERE,CS:CODE_HERE
START : MOV AX,DATA_HERE  MOV DS,AX
MOV AX,NUM1
MOV SUM,AX
INT 21H
CODE_HERE ENDS
END

Question 6: Write the ALP for the given:

a) Count the number of bits in double word which starts at memory location:

DS: 1234h that are 1. Place a count in the register AL.

b) Count the number of bytes between locations 60000h and 60100h which are an even number place the count in register BH.

c) Move every data byte from memory location 60000h to 600FFh to locations 60200h to 602FFH in reverse order. As the data is moved, count the number of bytes which are greater in magnitude than 7FH.let the register DX be used to hold the count.

d) Enter a string of characters via the keyboard. Save it in memory as an array and then reverse the string.

e) Display the factorial of three numbers. Solve the problem by using both macros and procedures.