FINALTERM EXAMINATION
Spring 2010
CS401- Computer Architecture and Assembly Language Programming
(Session - 2)
Time: 90 min
M a r k s: 58
Question No: 1 ( M a r k s: 1 ) http://vuzs.net
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 ) http://vuzs.net
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 ) http://vuzs.net
Creation of threads can be
► static
► dynamic
► easy
► difficult
Question No: 4 ( M a r k s: 1 ) http://vuzs.net
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 ) http://vuzs.net
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 ) http://vuzs.net
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 ) http://vuzs.net
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 ) http://vuzs.net
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 ) http://vuzs.net
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 ) http://vuzs.net
The physical address of IDT( Interrupt Descriptor Table) is stored in _______
► GDTR
► IDTR
► IVT
► IDTT
Question No: 11 ( M a r k s: 1 ) http://vuzs.net
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 ) http://vuzs.net
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 ) http://vuzs.net
To reserve 8-bits in memory ___ directive is used.
► db
► dw
► dn
► dd
Question No: 14 ( M a r k s: 1 ) http://vuzs.net
In the “mov ax, 5” 5 is the __________ operand.
► source
► destination
► memory
► register
Question No: 15 ( M a r k s: 1 ) http://vuzs.net
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 ) http://vuzs.net
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 ) http://vuzs.net
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 ) http://vuzs.net
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 ) http://vuzs.net
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 ) http://vuzs.net
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 ) http://vuzs.net
In 9pin DB 9, Signal ground is assigned on pin number
► 4
► 5
► 6
► 3
Question No: 22 ( M a r k s: 1 ) http://vuzs.net
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 ) http://vuzs.net
Motorola 68K processors have ....................... 23bit general purpose registers.
► 4
► 8
► 16
► 32
Question No: 24 ( M a r k s: 1 ) http://vuzs.net
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 ) http://vuzs.net
In the instruction MOV AX, 5 the number of operands are
► 1
► 2
► 3
► 4
Question No: 26 ( M a r k s: 1 ) http://vuzs.net
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.
- Input devices(keyboard, mouse,)
- 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
- base,
- limit,
- 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 :
- Data Granularity
- Business Value Granularity
- 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