Tuesday 17 July 2012

VU FINALTERM EXAMINATION Spring 2010 CS401- Computer Architecture and Assembly Language Programming (Session - 2) Solved


FINALTERM  EXAMINATION
Spring 2010
CS401- Computer Architecture and Assembly Language Programming
(Session - 2)
Solved 
Time: 90 min
M a r k s: 58
    
Question No: 1    ( M a r k s: 1 )    
 Suppose AL contains 5 decimal then after two left shifts produces the value as

       ► 5         
► 10
► 15
► 20

Question No: 2    ( M a r k s: 1 )    
 In graphics mode a location in video memory corresponds to a _____________ on the screen.
► line
       ► dot
► circle
► rectangle

Question No: 3    ( M a r k s: 1 )    
 Creation of threads can be
► static
       ► dynamic
► easy
► difficult

Question No: 4    ( M a r k s: 1 )    
 The thread registration code initializes the PCB and adds it to the linked list so that the __________ will give it a turn.
► assembler
       ► scheduler
► linker
► debugger

Question No: 5    ( M a r k s: 1 )   
 VESA VBE 2.0 is a standard for
       ► High resolution Mode
► Low resolution Mode
► Medium resolution Mode
► Very High resolution Mode

Question No: 6    ( M a r k s: 1 )  
 Which of the following gives the more logical view of the storage medium
► BIOS
       ► DOS
► Both
► None

Question No: 7    ( M a r k s: 1 )  
 Which of the following IRQs is derived by a key board?
► IRQ 0
► IRQ 1
► IRQ 2
► IRQ 3

Question No: 8    ( M a r k s: 1 )  
 Which of the following IRQs is used for Floppy disk derive?

► IRQ 4
► IRQ 5
► IRQ 6
► IRQ 7

Question No: 9    ( M a r k s: 1 )    
 Which of the following pins of a parallel port connector are grounded?
► 10-18
► 18-25     
► 25-32
► 32-39

Question No: 10    ( M a r k s: 1 )   
 The physical address of IDT( Interrupt Descriptor Table) is stored in _______
► GDTR
       ► IDTR
► IVT
► IDTT

Question No: 11    ( M a r k s: 1 )    \
 In NASM an imported symbol  is declared with the ............................ while and exported symbol is declared with the ............................
► Global directive, External directive
       ► External directive, Global directive
► Home Directive, Foreign Directive
► Foreign Directive, Home Directive

Question No: 12    ( M a r k s: 1 )   \
 In 68K processors there is a ........................ program counter (PC) that holds the address of currently executing instruction
► 8bit
► 16bit
       ► 32bit
► 64bit

Question No: 13    ( M a r k s: 1 )    
 To reserve 8-bits in memory ___ directive is used.
► db
► dw
► dn
► dd

Question No: 14    ( M a r k s: 1 )   
 In the “mov ax, 5”     5 is the __________ operand.
   source
► destination
► memory
► register

Question No: 15    ( M a r k s: 1 )    
 RETF will pop the segment address in the
► CS register
► DS register
► SS register
► ES register

Question No: 16    ( M a r k s: 1 )    
 For the execution of the instruction “DIV  BL”, the implied dividend will be stored in

► AX 
► BX
► CX
► DX

Question No: 17    ( M a r k s: 1 )    \
 When a number is divided by zero ”A Division by 0” interrupt is generated. Which instruction is used for this purpose
► INT 0
► INT 1
► INT 2
       ► This interrupt is generated automatically

Question No: 18    ( M a r k s: 1 )   
 INT 21 service 01H is used to read character from standard input with echo. It returns the result in  ______ register.
       ► AL
► BL
► CL
► BH

Question No: 19    ( M a r k s: 1 )    BIOS sees the disks as
► logical storage
       ► raw storage
► in the form of sectors only
► in the form of tracks only

Question No: 20    ( M a r k s: 1 )    
 In 9pin DB 9, which pin number is assigned to CD (Carrier Detect) ?
       ► 1
► 2
► 3
► 4

Question No: 21    ( M a r k s: 1 )   
 In 9pin DB 9, Signal ground is assigned on pin number
► 4
       ► 5
► 6
► 3

Question No: 22    ( M a r k s: 1 )    
 In 9pin DB 9, RI (Ring Indicator) is assigned on pin number
► 6
► 7
► 8
       ► 9

Question No: 23    ( M a r k s: 1 )    
 Motorola 68K processors have ....................... 23bit general purpose registers.
► 4
► 8
       ► 16
► 32

Question No: 24    ( M a r k s: 1 )    
 When two devices in the system want to use the same IRQ line then what will happen?

► An IRQ Collision

► An IRQ Conflict

► An IRQ Crash

► An IRQ Blockage


Question No: 25    ( M a r k s: 1 )    
 In the instruction  MOV AX, 5 the number of operands are
► 1
       ► 2
► 3
► 4

Question No: 26    ( M a r k s: 1 )    
 Which flags are NOT used for mathematical operations ?
► Carry, Interrupt and Trap flag.
       ► Direction, Interrupt and Trap flag.
► Direction, Overflow and Trap flag.
► Direction, Interrupt and Sign flag.

Question No: 27    ( M a r k s: 2 )
 How can we improve the speed of multitasking?

Ans:
We can improve the speed of multitasking by changing the frequency of timer interrupt.

Question No: 28    ( M a r k s: 2 )
 Write instructions to do the following. Copy contents of memory location with offset 0025 in the current data segment into AX.

Ans:

Mov ax , [0025]

mov[0fff], ax

mov  ax , [0010]
mov [002f] , ax

Question No: 29    ( M a r k s: 2 )
 Write types of Devices?

Ans:
There are two types devices used  in pc.
  1. Input devices(keyboard, mouse,)
  2. Output devices.(monitor, printer)

Question No: 30    ( M a r k s: 2 )
 What dose descriptor 1st 16 bit tell?
Ans:
Each segment is describe by the descriptor like
  1. base,
  2. limit,
  3. and attributes,
it  basically define the actual base address.

Question No: 31    ( M a r k s: 3 )
 List down any three common video services for INT 10 used in text mode.

Ans:
INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
AH = 01h
CH = cursor start and options
CL = bottom scan line containing cursor (bits 0-4)

Question No: 32    ( M a r k s: 3 )
 How to create or Truncate File using INT 21 Service?
Ans:
INT 21 - TRUNCATE FILE
AH = 3Ch
CX = file attributes
DS:DX -> cs401 filename
Return:
CF = error flag
AX = file handle or error code

Question No: 33    ( M a r k s: 3 )
 How many Types of granularity also name them?
Ans:
There are three types of granuality :
  1. Data Granularity
  2. Business Value Granularity
  3. Functionality Granularity

Question No: 34    ( M a r k s: 5 )
 How to read disk sector into memory using INT 13 service?

Ans:
INT 13 - DISK - READ SECTOR(S) INTO MEMORY :
AH = 02h
AL = number of sectors to read (must be nonzero)
CH = low eight bits of cylinder number
CL =                sector number 1-63 (bits 0-5)
high two bits of cylinder (bits 6-7, hard disk only)
DH = head number
DL = drive number (bit 7 set for hard disk)
ES:BX -> data buffer
Return:
CF = error flag
AH = error code
AL = number of sectors transferred

Question No: 35    ( M a r k s: 5 )
The program given below is written in assembly language. Write a program in C to call this assembly routine.
[section .text]
global        swap
swap:        mov  ecx,[esp+4]      ; copy parameter p1 to ecx
mov  edx,[esp+8]      ; copy parameter p2 to edx
mov  eax,[ecx]           ; copy *p1 into eax
xchg eax,[edx]           ; exchange eax with *p2
mov  [ecx],eax           ; copy eax into *p1
ret                               ; return from this function

Ans:
The above code will assemble in c through this command. Other aurwise error will occur.
Nasm-f win32 swap .asm

This command will generate swap.obj file.
The code for given program will be as follow.

#include <stdio.h>
Void swap(int* pl, int* p2);
Int main()
{
Int a=10,
Int b= 20;
Print f (“a=%d b=%d\n” , a ,b);

Swap (&a ,&b);

Print f (“a=%d b=%d\n” , a ,b);

System ( “pause”);


Return 0;


}

Question No: 36    ( M a r k s: 5 )
 Write the code of “break point interrupt routine”.
Ans:
Breakpoint interrupts service routine :
debugISR:          push bp
mov  bp, sp             ; …………….to read cs, ip and flags
push ax
push bx
push cx
push dx
push si
push di
push ds
push es

sti                     ;…………………….. waiting for keyboard interrupt
push cs
pop  ds                 ;…………………… initialize ds to data segment

mov  ax, [bp+4]
mov  es, ax             ; ………………….load interrupted segment in es
dec  word [bp+2]        ; ……………….decrement the return address
mov  di, [bp+2]         ;………………… read the return address in di
mov  word [opcodepos], di ;…………. remember the return position
mov  al, [opcode]       ; …………..load the original opcode
mov  [es:di], al        ;………….. restore original opcode there

mov  byte [flag], 0     ; …………set flag to wait for key
call clrscr             ;……………. clear the screen

mov  si, 6              ; …………..first register is at bp+6
mov  cx, 12             ;………… total 12 registers to print
mov  ax, 0              ; …………..start from row 0
mov  bx, 5              ; ………….print at column 5

push ax                 ; ………………..row number
push bx                 ;………………. column number
mov  dx, [bp+si]
push dx                 ;………………. number to be printed
call printnum           ;…………….. print the number
sub  si, 2              ; ……………….point to next register
inc  ax                 ; ………………..next row number
loop l3                 ; ……………….repeat for the 12 registers

mov  ax, 0              ; ………………..start from row 0
mov  bx, 0              ; ………………..start from column 0
mov  cx, 12             ; …………………..total 12 register names
mov  si, 4              ;……………………. each name length is 4 chars
mov  dx, names          ; …………………..offset of first name in dx

push ax                 ;………………………. row number
push bx                 ; ………………………column number
push dx                 ; ……………………….offset of string
push si                 ; ………………………….length of string
call printstr           ; ………………………….print the string
add  dx, 4              ;………………………….. point to start of next string
inc  ax                 ; ……………………………new row number
loop l1                 ;…………………………….. repeat for 12 register names

or word [bp+6], 0x0100  ; ……………………set TF in flags image on stack

keywait:      cmp  byte [flag], 0     ;……………………. has a key been pressed
je   keywait            ;            ………………….. no, check again

pop es

pop ds
pop di
pop si
pop dx
pop cx
pop bx
pop ax
pop bp
iret

start:        xor  ax, ax
mov  es, ax             ;            ……………………point es to IVT base
mov  word [es:1*4], trapisr ;…………………. store offset at n*4
mov  [es:1*4+2], cs     ;      …………………...store segment at n*4+2
mov  word [es:3*4],            …………………..debugisr ; store offset at n*4
mov  [es:3*4+2], cs     ;      …………………..store segment at n*4+2
cli                     ;                  ………………….disable interrupts
mov  word [es:9*4], kbisr ; ………………….store offset at n*4
mov  [es:9*4+2], cs     ; ……………………...store segment at n*4+2
sti                     ;             ………………………enable interrupts

No comments:

Post a Comment