te-mp

Upload: devyani-patil

Post on 14-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 te-mp

    1/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    1

    SIES GRADUATE SCHOOL OF TECHNOLOGY

    NERUL, NAVI MUMBAI

    DEPARTMENT OF COMPUTER ENGG.

    BRANCH: CE YEAR/SEM:TE/V

    MICROPROCESSOR

    LIST OF EXPERIMENTS

    1. ALP TO ADD AND SUBTRACT 2 8-BIT NUMBERS IN BCD2. ALP TO MULTIPLY AND DIVIDE 2 8-BIT NUMBERS IN BCD3. ALP TO ADD 16-BIT NUMBERS IN BCD4. ALP TO GENERATE PACKED BCD FROM ASCII5. ALP TO FIND FACTORIAL OF A NUMBER6. ALP TO SORT ARRAY ELEMENTS7. ALP TO FIND MAX IN ARRAY8. ALP TO DISPLAY CHARACTERS A-Z9. ALP TO CONCATENATE STRINGS10. ALP TO CONVERT LOWERCASE TO UPPERCASE11.ALP TO INTERFACE 8255 IN I/O MODE12.ALP TO INTERFACE 8253 IN MODE-313.MIXED LANGUAGE PROGRAM TO EMULATE CALCULATOR14.MIXED LANGUAGE PROGRAM TO FIND SUM OF ELEMENTS OF

    ARRAY

  • 7/30/2019 te-mp

    2/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    2

    EXPERIMENT NO: 01(a)

    BCD ADDITION

    AIM: To perform two 8 bit BCD additions.

    THEORY: Instructions used in program:

    MOV: (Move)

    This data transfer instruction transfers data from one register/memory location to another

    register/memory location. The source may be nay one of the segment registers or other

    general or special purpose registers or a memory location and another register/memory

    location may act as destination. However, in case of immediate addressing mode, a

    segment register cannot be a destination register. In other words, direct loading of the

    segment registers with immediate data is not permitted. To load the segment registers

    with immediate data, one will have to load any general purpose register with the data and

    then it will have to be moved to that particular segment register.

    The arithmetic instructions add data in registers or memory.

    ADD: (Add)This instruction adds an immediate data or contents of a memory location specified in the

    instruction or a register (source) to the contents of another register (destination) or

    memory location. The result is in the destination operand. However, both the source and

    destination operands cannot be memory operands. Also contents of segment registers

  • 7/30/2019 te-mp

    3/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    3

    cannot be added using this instruction. All the condition code flags are affecteddepending on the result.

    STEPS:

    Store the 8-bit numbers in registers or memory locations. Use add instruction to add two numbers. Use DAA to convert to BCD. Store the result in register or memory location.

    CONCLUSION: Assembly coding is done to add two 8-bit numbers, numbers and result

    both are stored in registers. As the program is written using the basic operations of the

    processor, the program forms the basis of any efficient application that includes

    mathematical operations.

  • 7/30/2019 te-mp

    4/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    4

    EXPERIMENT NO: 01(b)

    BCD SUBTRACTION

    AIM: To perform two 8 bit BCD subtractions.

    THEORY: Instructions used in program:

    MOV: (Move)

    This data transfer instruction transfers data from one register/memory location to another

    register/memory location. The source may be nay one of the segment registers or other

    general or special purpose registers or a memory location and another register/memory

    location may act as destination. However, in case of immediate addressing mode, a

    segment register cannot be a destination register. In other words, direct loading of the

    segment registers with immediate data is not permitted. To load the segment registers

    with immediate data, one will have to load any general purpose register with the data and

    then it will have to be moved to that particular segment register.

    The arithmetic instructions add data in registers or memory.

    SUB: The subtract instruction subtracts the source operand from the destination operandand the result is left in the destination operand. Source operand may be a register,

    memory location or immediate data and the destination operand may be a register or a

    memory location. But source and destination operands both must not be memory

    operands. Destination operand cannot be an immediate data. All the condition code flags

    are affected by the instruction.

  • 7/30/2019 te-mp

    5/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    5

    DAS: Decimal Adjust after Subtraction

    This instruction converts the result of subtraction of two packed BCD numbers to a valid

    BCD number. The subtraction has to be in AL only. If the lower nibble of AL is greater

    than 9, this instruction will subtract 06 from lower nibble of Al. If the result of

    subtraction sets the carry flag or if upper nibble is greater than 9, it subtracts 60H from

    AL. This instruction modifies the AF,CF,SF,PF, and ZF flags. The OF is undefined after

    DAS instruction.

    STEPS:

    Store the 8-bit numbers in registers or memory locations. Use sub instruction to subtract two numbers. Use DAS to covert to BCD. Store the result in register or memory location.

    CONCLUSION: Assembly coding is done to subtract two 8-bit numbers, numbers and

    result both are stored in registers. As the program is written using the basic operations of

    the processor, the program forms the basis of any efficient application that includes

    mathematical operations.

  • 7/30/2019 te-mp

    6/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    6

    EXPERIMENT NO: 02(a)

    MULTIPLICATION

    AIM: To perform BCD Multiplication.

    THEORY: Instructions used in program:

    MOV: (Move)

    This data transfer instruction transfers data from one register/memory location to another

    register/memory location. The source may be nay one of the segment registers or other

    general or special purpose registers or a memory location and another register/memory

    location may act as destination. However, in case of immediate addressing mode, a

    segment register cannot be a destination register. In other words, direct loading of the

    segment registers with immediate data is not permitted. To load the segment registers

    with immediate data, one will have to load any general purpose register with the data and

    then it will have to be moved to that particular segment register.

    MUL: Unsigned Multiplication Byte or Word

    This instruction multiplies an unsigned byte or word by the contents of AL. The unsigned

    byte or word may be in any one of the general purpose registers or memory locations.

    The most significant word of the result is stored in AX. All the flags are modifieddepending upon the result. Immediate operand is not allowed in this instruction.

    AAM: ASCII adjust after Multiplication

    This instruction, after execution, converts the product available in AL into unpacked

    BCD format. This instruction follows multiplication instruction that multiplies two

  • 7/30/2019 te-mp

    7/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    7

    unpacked BCD operands, that is, higher nibbles of the multiplication operands should be0. The multiplication of such operands is carried out using MUL instruction. The result of

    multiplication is available in AX.

    STEPS:

    Store the 8-bit numbers in registers or memory locations. Use mul instruction to multiply two numbers. Use AAM to covert to BCD. Store the result in register or memory location.

    CONCLUSION: Assembly language code is written to multiply two 8-bit numbers;

    numbers and result both are stored in registers. As the program is written using the basic

    operations of the processor, the program forms the basis of any efficient application that

    includes mathematical operations.

  • 7/30/2019 te-mp

    8/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    8

    EXPERIMENT NO: 02(b)

    DIVISION

    AIM: To perform 8 bit subtraction.

    THEORY: Instructions used in program:

    MOV: (Move)

    This data transfer instruction transfers data from one register/memory location to another

    register/memory location. The source may be nay one of the segment registers or other

    general or special purpose registers or a memory location and another register/memory

    location may act as destination. However, in case of immediate addressing mode, a

    segment register cannot be a destination register. In other words, direct loading of the

    segment registers with immediate data is not permitted. To load the segment registers

    with immediate data, one will have to load any general purpose register with the data and

    then it will have to be moved to that particular segment register.

    AAD: ASCII Adjust before Division

    This instruction converts two unpacked BCD digits in AH and AL to the equivalent

    binary number in AL. This adjustment must be made before dividing the two unpacked

    BCD digits in AX by an unpacked BCD type. PF, SF, ZF are modified while AF, CF, OFare undefined, after the execution of the instruction AAD.

    DIV: (unsigned Division)

    This instruction performs unsigned division. It divides an unsigned word or double word

    by a 16-bit or 8-bit operand. The dividend must be in AX for 16-bit operation and divisor

  • 7/30/2019 te-mp

    9/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    9

    may be specified using any one of the addressing modes except immediate. The resultwill be in AL while AH will contain the remainder. If the result is too big to fit in AL,

    type 0 interrupt is generated. In case of a double word dividend (32-bit), the higher word

    should be in DX and lower word should be in AX. The divisor may be specified as

    explained earlier. The quotient and remainder will be in AX and DX respectively. The

    instruction does not affect any flag.

    STEPS:

    Store the 16-bit number and 8-bit number in registers or memory locations. Use div instruction to divide two numbers. Use AAD to covert to BCD. Store the result in register or memory location.

    CONCLUSION: Assembly coding is done to divide 16-bit number by 8-bit number,

    numbers and result both are stored in registers. As the program is written using the basic

    operations of the processor, the program forms the basis of any efficient application that

    includes mathematical operations.

  • 7/30/2019 te-mp

    10/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    10

    EXPERIMENT NO: 03

    BCD ADDITION

    AIM: To perform 16 bit BCD addition.

    THEORY: Instructions used in program:

    MOV: (Move)

    This data transfer instruction transfers data from one register/memory location to another

    register/memory location. The source may be nay one of the segment registers or other

    general or special purpose registers or a memory location and another register/memory

    location may act as destination. However, in case of immediate addressing mode, a

    segment register cannot be a destination register. In other words, direct loading of the

    segment registers with immediate data is not permitted. To load the segment registers

    with immediate data, one will have to load any general purpose register with the data and

    then it will have to be moved to that particular segment register.

    The arithmetic instructions add data in registers or memory.

    ADD: (Add)

    This instruction adds an immediate data or contents of a memory location specified in theinstruction or a register (source) to the contents of another register (destination) or

    memory location. The result is in the destination operand. However, both the source and

    destination operands cannot be memory operands. Also contents of segment registers

    cannot be added using this instruction. All the condition code flags are affected

    depending on the result.

  • 7/30/2019 te-mp

    11/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    11

    ADC: Add with Carry

    This instruction adds the carry flag bit to the result. All the condition code flags are

    affected by this instruction.

    DAA: DAA instruction (Decimal Adjust Accumulator) allows conversion of the 8-bit

    accumulator value to Binary Coded Decimal (BCD). If the low-order 4 bits of the

    accumulator are greater than 9, or the auxilliary carry flag is set, 6 is added to the low-

    order 4 bits of accumulator, then if the high-order 4 bits of the accumulator are greater

    than 9, or the carry flag is set, 6 is added to the high-order 4 bits of the accumulator.

    STEPS:

    Store the 16-bit numbers in registers or memory locations. Use ADD instruction to ADD lower bytes. Use DAA to covert to BCD. Use ADD instruction to ADD higher bytes. Use DAA to covert to BCD. Store the result in register or memory location.

    CONCLUSION: Assembly coding done to perform 16-bit addition and result converted

    to BCD using DAA instruction.

  • 7/30/2019 te-mp

    12/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    12

    EXPERIMENT NO: 04

    BCD FROM ASCII

    AIM: To produce a packed BCD from two ASCII encoded digits.

    THEORY: Instructions used in program:

    MOV: (Move)

    This data transfer instruction transfers data from one register/memory location to another

    register/memory location. The source may be nay one of the segment registers or other

    general or special purpose registers or a memory location and another register/memory

    location may act as destination. However, in case of immediate addressing mode, a

    segment register cannot be a destination register. In other words, direct loading of the

    segment registers with immediate data is not permitted. To load the segment registers

    with immediate data, one will have to load any general purpose register with the data and

    then it will have to be moved to that particular segment register.

    AND: (Logical AND)

    This instruction bit by bit ANDs the source operand that may be an immediate, a register

    or a memory location to the destination operand that may be a register or a memory

    location. The result is stored in the destination operand. At least one of the operandshould be a register or a memory operand. Both the operands cannot be memory locations

    or immediate operands. An immediate operand cannot be a destination operand.

  • 7/30/2019 te-mp

    13/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    13

    ROL: (Rotate Left without Carry)

    This instruction rotates the content of the destination operand to the left by the specified

    count excluding carry. The most significant bit is pushed into the carry flag as well as the

    least significant bit position at each operation. The remaining bits are shifted left

    subsequently by the specified count positions. The PF, SF, ZF flags are left unchanged in

    this rotate operation. The operand may be a register or a memory location.

    STEPS:

    Store the 8-bit numbers in registers or memory locations. Mask the lower nibbles with 0f H Rotate left the nibble in one register Add the nibbles to get packed BCD.. Store the result in register or memory location.

    CONCLUSION: Assembly coding done to generate packed BCD from two ASCII

    codes results stored in register.

  • 7/30/2019 te-mp

    14/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    14

    EXPERIMENT NO: 05

    FACTORIAL

    AIM: Program to find factorial

    THEORY: Instructions used in program:

    MOV: (Move)

    This data transfer instruction transfers data from one register/memory location to another

    register/memory location. The source may be nay one of the segment registers or other

    general or special purpose registers or a memory location and another register/memory

    location may act as destination. However, in case of immediate addressing mode, a

    segment register cannot be a destination register. In other words, direct loading of the

    segment registers with immediate data is not permitted. To load the segment registers

    with immediate data, one will have to load any general purpose register with the data and

    then it will have to be moved to that particular segment register.

    MUL: Unsigned Multiplication Byte or Word

    This instruction multiplies an unsigned byte or word by the contents of AL. The unsigned

    byte or word may be in any one of the general purpose registers or memory locations.

    The most significant word of the result is stored in AX. All the flags are modifieddepending upon the result. Immediate operand is not allowed in this instruction.

  • 7/30/2019 te-mp

    15/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    15

    LOOP: Loop Unconditionally

    This instruction executes the part of the program from the label or address specified in

    the instruction up to the loop instruction, CX number of times. In other words, this

    instruction implements DECREMENT COUNTER and JUMP IF NOT ZERO structure.

    STEPS:

    Store the 8-bit number in registers or memory location. Use mul instruction to multiply. Loop to continue multiplying up to 1. Store the result in register or memory location.

    CONCLUSION: Assembly code written to find the factorial of a number which finds

    applications in combinotrics.

  • 7/30/2019 te-mp

    16/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    16

    EXPERIMENT NO: 06

    SORTING AN ARRAY

    AIM: To sort the numbers in ascending order.

    .

    THEORY: Instructions used in program:

    MOV: (Move)

    This data transfer instruction transfers data from one register/memory location to another

    register/memory location. The source may be nay one of the segment registers or other

    general or special purpose registers or a memory location and another register/memory

    location may act as destination. However, in case of immediate addressing mode, a

    segment register cannot be a destination register. In other words, direct loading of the

    segment registers with immediate data is not permitted. To load the segment registers

    with immediate data, one will have to load any general purpose register with the data and

    then it will have to be moved to that particular segment register.

    ADD: (Add)

    This instruction adds an immediate data or contents of a memory location specified in the

    instruction or a register (source) to the contents of another register (destination) or

    memory location. The result is in the destination operand. However, both the source anddestination operands cannot be memory operands. Also contents of segment registers

    cannot be added using this instruction. All the condition code flags are affected

    depending on the result.

  • 7/30/2019 te-mp

    17/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    17

    INC: (Increment)

    This instruction increases the contents of the specified register or memory location by 1.

    All the condition code flags except the carry flags are affected. This instruction adds 1 to

    the contents of the operand. Immediate data cannot be operand of this instruction.

    DEC: (Decrement)

    This instruction decreases the contents of the specified register or memory location by 1.

    All the condition code flags except the carry flags are affected. This instruction subtracts

    1 from the contents of the operand. Immediate data cannot be operand of this instruction.

    CMP: (Compare)

    This instruction source operand which may be a register, memory location or an

    immediate data with a destination operand which may be a register or a memory location.

    For comparison, it subtracts the source operand from the destination operand but does not

    store the result anywhere. The flags are affected depending upon the result of the

    subtraction. If both of the operand is equal, zero flag is set. If source operand is greater

    than the destination operand carry flag is set or else, carry flag is reset.

    JNZ: (Jump ifNot Zero)

    Transfers execution control to the specified address or label if ZF = 0

    STEPS:

    Store the 8-bit numbers in a array. Use simple comparison technique to sort the elements of the array. Display the results on the screen.

  • 7/30/2019 te-mp

    18/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    18

    CONCLUSION: Assembly language code implemented to sort a set of numbers stored

    in an array using insertion sort, TASM/MASM assembler used to run the program.

    Sorting finds application in database search.

  • 7/30/2019 te-mp

    19/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    19

    EXPERIMENT NO: 07

    FINDING MAXIMUM NUMBER

    AIM: To find maximum number in the array.

    THEORY: Instructions used in program:

    MOV: (Move)

    This data transfer instruction transfers data from one register/memory location to another

    register/memory location. The source may be nay one of the segment registers or other

    general or special purpose registers or a memory location and another register/memory

    location may act as destination. However, in case of immediate addressing mode, a

    segment register cannot be a destination register. In other words, direct loading of the

    segment registers with immediate data is not permitted. To load the segment registers

    with immediate data, one will have to load any general purpose register with the data and

    then it will have to be moved to that particular segment register.

    LEA: (Load Effective Address)

    The load effective address instruction loads the effective address formed by destination

    operand into the source register. This instruction is more useful for assembly languagerather than for machine language.

    CMP: (Compare)

    This instruction source operand which may be a register, memory location or an

    immediate data with a destination operand which may be a register or a memory location.

  • 7/30/2019 te-mp

    20/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    20

    For comparison, it subtracts the source operand from the destination operand but does notstore the result anywhere. The flags are affected depending upon the result of the

    subtraction. If both of the operand is equal, zero flag is set. If source operand is greater

    than the destination operand carry flag is set or else, carry flag is reset.

    INC: (Increment)

    This instruction increases the contents of the specified register or memory location by 1.

    All the condition code flags except the carry flags are affected. This instruction adds 1 to

    the contents of the operand. Immediate data cannot be operand of this instruction.

    DEC: (Decrement)

    This instruction decreases the contents of the specified register or memory location by 1.

    All the condition code flags except the carry flags are affected. This instruction subtracts

    1 from the contents of the operand. Immediate data cannot be operand of this instruction.

    JNZ: (Jump ifNot Zero)

    Transfers execution control to the specified address or label if ZF = 0

    JNC: (Jump ifNot Carry)

    Transfers execution control to the specified address or label if CF = 0

    STEPS:

    Store the 8-bit numbers in a array. Use simple comparison technique to find MAX element of the array. Display the results on the screen.

  • 7/30/2019 te-mp

    21/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    21

    CONCLUSION: Assembly language code implemented to find the max element in

    array, TASM/MASM assembler used for code execution.

  • 7/30/2019 te-mp

    22/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    22

    EXPERIMENT NO: 08

    DISPLAY CHARACTERS

    AIM: To find maximum number in the array.

    THEORY: Instructions used in program:

    MOV: (Move)

    This data transfer instruction transfers data from one register/memory location to another

    register/memory location. The source may be nay one of the segment registers or other

    general or special purpose registers or a memory location and another register/memory

    location may act as destination. However, in case of immediate addressing mode, a

    segment register cannot be a destination register. In other words, direct loading of the

    segment registers with immediate data is not permitted. To load the segment registers

    with immediate data, one will have to load any general purpose register with the data and

    then it will have to be moved to that particular segment register.

    INT N: (Interrupt Type N)

    In the interrupt structure of 8086, 256 interrupts are defined corresponding to the typesfrom 00H to FFH. When an INT N instruction is executed, the TYPE byte N s multiplied

    by 4 and the contents of the IP and CS of the interrupt service routine will be taken from

    the hexadecimal multiplication as offset address and 0000 as segment address. In other

    word, the multiplication of type N by 4 (offset) points to a memory block in 0000

  • 7/30/2019 te-mp

    23/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    23

    segment, which contains the IP and CS values of the interrupt service routine. For theexecution of this instruction, the IF must be enabled.

    INC: (Increment)

    This instruction increases the contents of the specified register or memory location by 1.

    All the condition code flags except the carry flags are affected. This instruction adds 1 to

    the contents of the operand. Immediate data cannot be operand of this instruction.

    LOOP: (Loop Unconditionally)

    This instruction executes the part of the program from the label or address specified in

    the instruction up to the loop instruction, CX number of times. In other words, this

    instruction implements DECREMENT COUNTER and JUMP IF NOT ZERO structure.

    CONCLUSION: Assembly program written to display characters A-Z on screen.

  • 7/30/2019 te-mp

    24/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    24

    EXPERIMENT NO: 09

    STRING CONCATENATION

    AIM: To write a program for string concatenation.

    THEORY: Instructions used in program:

    MOV: (Move)

    This data transfer instruction transfers data from one register/memory location to another

    register/memory location. The source may be nay one of the segment registers or other

    general or special purpose registers or a memory location and another register/memory

    location may act as destination. However, in case of immediate addressing mode, a

    segment register cannot be a destination register. In other words, direct loading of the

    segment registers with immediate data is not permitted. To load the segment registers

    with immediate data, one will have to load any general purpose register with the data and

    then it will have to be moved to that particular segment register.

    LEA: (Load Effective Address)

    The load effective address instruction loads the effective address formed by destination

    operand into the source register. This instruction is more useful for assembly language

    rather than for machine language.

    INC: (Increment)

    This instruction increases the contents of the specified register or memory location by 1.

    All the condition code flags except the carry flags are affected. This instruction adds 1 to

    the contents of the operand. Immediate data cannot be operand of this instruction.

  • 7/30/2019 te-mp

    25/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    25

    JMP:(JUMP)

    This instruction unconditionally transfers the control of execution to the specified address

    using an 8-bit it 16-bit displacement. No flags are affected by this instruction.

    STEPS:

    Input two strings. Copy character by character of the input strings to a third string. Display the results on the screen.

    CONCLUSION: Assembly language instructions written to concatenate two strings and

    display results on screen.

  • 7/30/2019 te-mp

    26/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    26

    EXPERIMENT NO: 10

    LOWERCASE TO UPPERCASE

    AIM: To write a program to convert a lowercase character to uppercase.

    THEORY: Instructions used in program:

    MOV: (Move)

    This data transfer instruction transfers data from one register/memory location to another

    register/memory location. The source may be nay one of the segment registers or other

    general or special purpose registers or a memory location and another register/memory

    location may act as destination. However, in case of immediate addressing mode, a

    segment register cannot be a destination register. In other words, direct loading of the

    segment registers with immediate data is not permitted. To load the segment registers

    with immediate data, one will have to load any general purpose register with the data and

    then it will have to be moved to that particular segment register.

    LEA: (Load Effective Address)

    The load effective address instruction loads the effective address formed by destination

    operand into the source register. This instruction is more useful for assembly languagerather than for machine language.

    AND: (Logical AND)

    This instruction bit by bit ANDs the source operand that may be an immediate, a register

    or a memory location to the destination operand that may be a register or a memory

  • 7/30/2019 te-mp

    27/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    27

    location. The result is stored in the destination operand. At least one of the operandshould be a register or a memory operand. Both the operands cannot be memory locations

    or immediate operands. An immediate operand cannot be a destination operand.

    CONCLUSION: Assembly code executed to convert a character from lowercase to

    uppercase.

  • 7/30/2019 te-mp

    28/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    28

    EXPERIMENT NO: 11

    INTERFACING 8255

    AIM: To configure 8255 in simple I/O mode

    .

    THEORY:

    To read at the output ports.

    1. 80H is a control word for 8255. It is set in simple I/O mode and all the ports arein output mode 0.

    2. The LEDs connected to the pin of port A glows according to the data transmittedon port A.

    3. The LEDs connected to pin of port B glows according to data transmitted on portB.

    4. The LEDs connected to pin of port C glows according to data transmitted on portC.

    To read data at the input ports.

    1. 9BH is a control word for 8255. It is set in simple I/O mode and all the portsare in input mode 0.

    2. Connect pins of ports A, B,C to ground and Vcc according to the data to begiven to ports A,B,C respectively.

    3. Data from port A will be stores in register DL. The data in register DL shouldmatch data shown by glowing LEDs of port A.

  • 7/30/2019 te-mp

    29/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    29

    4. Data from port B will be stores in register BL. The data in register BL shouldmatch data shown by glowing LEDs of port B.

    5. Data from port C will be stores in register CL. The data in register CL shouldmatch data shown by glowing LEDs of port C.

    CONCLUSION: Assembly language program implemented to configure 8255 PPI in

    simple I/O mode.

  • 7/30/2019 te-mp

    30/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    30

    EXPERIMENT NO: 12

    INTERFACING 8253

    AIM: To configure 8253 in mode 3, that is, square wave generator.

    .

    THEORY:

    1. 37H is a control word for 8253 with the counter in mode 3. BCD counter isselected. Load low order 8-bits and then high order 8-bits.

    2. 06H is the low order 8-bit count, loaded in counter 0.3. 00H is the high order 8-bit count, loaded in counter 0.4. 87H is the control word for 8253 with the counter in mode 3. The count is

    latched and stored in register DX.

    CONCLUSION: Assembly language program implemented to configure 8253 PIT in

    mode 3.

  • 7/30/2019 te-mp

    31/32

    ______________________________________________________________________________________

    Department of Computer Engineering SIES GST

    31

    EXPERIMENT NO: 13

    MIXED LANGUAGE

    AIM: To Write a mixed language program in C and ASSEMBLY to:

    a) Emulation of a calculatorb) To calculate sum of elements in an array

    THEORY:

    C generates an object code that is extremely fast and compact but not as fast as the object

    code generated by a programmer using assembly language. The time needed to write a

    program in assembly language is much more than time taken by C. However, there are

    special cases where a function is coded in assembly language to reduce execution time. In

    addition certain instructions can be executed in C.

    Thus, inspite of C being very powerful routine must be written in ALP to :

    a) Increase the speed and efficiency of routine.

    b) Perform machine specific functions not available in C.

    CONCLUSION: Mixed language program in C is implemented to emulate a simple

    calculator. Mixed mode programs increase the efficiency of the program as instructions

    directly command the processor, no translation is required as we are directly dealing withthe hardware..

  • 7/30/2019 te-mp

    32/32