Attention: Dear visitors If you find any answer or something wrong on allvirtuals.blogspot.com plz feel free to contact me ali.hse123@gmail.com or leave comments

Saturday 19 November 2011

CS401 Mid Term solved



Stack is a ______ that behaves in a first in last out manner.
·        Program 
·        data structure 
·        Heap 
·        None of the Given 

The physical address of the stack is obtained by
·        SS:SI combination 
·        SS:SP combination
·        ES:BP combination
·        ES:SP combination   

Foreground and background parameter will be
·        32bits
·        16bits
·        8bits
·        4bits

The clear screen operation initialize whole block of memory
·        0741
·        0417
·        0714
·        0174

 In STOSB instruction, when DF is Set, SI is

·        Incremented by 1
·        Incremented by 2
·        Decremented by 1 (Not confirmed)
·        Decremented by 2

 Assembly language is:
·        Low-level programming language
·        High-level programming language
·        Also known as machine language
·        Not considered closer to the computer

A 32 Bit processor has accumulator of ---------
·        8 bit
·        16 bit
·        32 bit
·        64 bit

To transfer control back the RET instruction take
·        1 argument
·        1 argument
·        3 arguments
·        No arguments

RET is executed, it recovers the values from
·        Register
·        Stack
·        Data segment
·        Code segment

To convert any digit to its ASCII representation
·        Add 0x30 in the digit
·        Subtract 0x30 from the digit
·        Add 0x61 in the digit
·        Subtract 0x61 from the digit

The prevalent convention in most high level languages is stack clearing by the
·        Caller
·        Callee
·        RET
·        Stack

After execution of JCXZ instruction CX will changed with flag affect.
·        CF
·        OF
·        DF
·        None of Above

Execution of the instruction “mov word [ES : 0],  0x0741” will print
·        “A” appear on the top left of screen
·        “A” appear on the top right of screen
·        “A” appear on the center of screen
·        “A” appear on the bottom left of screen

if contains decimal -2 and BX contains decimal 2 then after the execution of instructions:
CMP  AX, BX
JA label
·        Jump will be taken
·        Zero flag will set
·        ZF will contain value -4
·        Jump will not be taken

Which of the following options contain the set of instructions to open a window to  the video memory?
·        mov AX, 0xb008
mov ES, AX
·        mov AX, 0xb800
mov ES, AX
·        mov AX, 0x8b00
mov ES, AX
·        mov AX, 0x800b
mov ES, AX

If D is “35” is shift to left 2 bits the new value
·        35
·        70
·        140
·        17
Execution of the instruction “mov word [ES : 0],  0x1230” will print the character color will
·        Grean
·        White
·        Red
·        Black

Q#21 Mark 2
What are the instructions used by assembly language for permanent and temporary diversions.

Q#22 Mark 2
Which instruction is used to determine zero bit in string.

Q#23 Mark 3
Explain the use of TEST instruction.
The test instruction is used for bit testing. BX holds the mask and in every next iteration it is shifting left, as our concerned bit is now the next bit.

Q#24 Mark 3
Explain LES and LDS

The string instructions need source and destination in the form of a segment offset pair. LES and LDS load a segment register and a general purpose register from two consecutive memory locations. LES loads ES while LDS loads DS. Both instructions has two parameters, one is the general purpose register to be loaded and the other is the memory location from which to load these registers. The major application of these instructions is when a subroutine receives a segment offset pair as an argument and the pair is to be loaded in a segment and an offset register.

Q#25 Mark 5
Describe local variables.
Another important role of the stack is in the creation of local variables that are only needed while the subroutine is in execution and not afterwards. They should not take permanent space like global variables. Local variables should be created when the subroutine is called and discarded afterwards. So that the spaced used by them can be reused for the local variables of another subroutine. They only have meaning inside the subroutine and no meaning outside it.
The most convenient place to store these variables is the stack. We need some special manipulation of the stack for this task. We need to produce a gap in the stack for our variables. This is explained with the help of the swapflag in the bubble sort example.
The swapflag we have declared as a word occupying space permanently is only needed by the bubble sort subroutine and should be a local variable. Actually the variable was introduced with the intent of making it a local variable at this time. The stack pointer will be decremented by an extra two bytes thereby producing a gap in which a word can reside. This gap will be used for our temporary, local, or automatic variable; however we name it. We can decrement it as much as we want producing the desired space, however
the decrement must be by an even number, as the unit of stack operation is a word. In our case we needed just one word. Also the most convenient position for this gap is immediately after saving the value of SP in BP. So that the same base pointer can be used to access the local variables as well; this time using negative offsets. The standard way to start a subroutine which needs to access parameters and has local variables is as under.
push bp
mov bp, sp
sub sp, 2
 The gap could have been created with a dummy push, but the subtraction makes it clear that the value pushed is not important and the gap will be used for our local variable. Also gap of any size can be created in a single instruction with subtraction. The parameters can still be accessed at bp+4 and bp+6 and the swapflag can be accessed at bp-2. The subtraction in SP was after taking the snapshot; therefore BP is above the parameters but below the local variables. The parameters are therefore accessed using
positive offsets from BP and the local variables are accessed using negative offsets.


Q#26 Mark 5
Describe MOVS and CMPS instructions

By HSE with No comments

0 comments:

Post a Comment