Wednesday, March 18, 2020

8086 Programs: Block Data Operations

Operations on a block of data such as Block Move and Block Exchange is performed using Assembly programming.

Block Move Operation

Aim:

To perform block move operation using Assembly language for 8086 microprocessor.

Software Used:

MASM

Program Code:

DATA1 SEGMENT
        SRCBLK1 DW 0101H, 0202H, 0303H, 0404H, 0505H
DATA1 ENDS
DATA2 SEGMENT
        DSTBLK2 DW ?
DATA2 ENDS
CODE SEGMENT
        MOV AX, DATA1
        MOV DS, AX
        MOV AX, DATA2
        MOV ES, AX
        LEA SI, SRCBLK1
        LEA DI, DSTBLK2
        MOV CX, 0005H
        CLD
        REP MOVSW
        HLT
CODE ENDS
        END

Sample Input and Output:

Input:
DS: 0000    01    01    02    02    03    03    04    04    05    05

Output:
ES: 0000    01    01    02    02    03    03    04    04    05    05

Result: 

A block of data from Data segment has been moved to Extra segment.


Block Exchange Operation

Aim:
To perform block exchange operation using Assembly language for 8086 microprocessor. 

Software Used:
MASM

Program Code:
DATA1 SEGMENT
        SRCBLK1 DW 0101H, 0202H, 0303H, 0404H, 0505H
DATA1 ENDS
DATA2 SEGMENT
        DSTBLK2 DW 0606H, 0707H, 0808H, 0909H, 0A0AH
DATA2 ENDS
CODE SEGMENT
        MOV AX, DATA1
        MOV DS, AX
        MOV AX, DATA2
        MOV ES, AX
        LEA SI, SRCBLK1
        LEA DI, DSTBLK2
        MOV CX, 05H
BACK: MOV AX, [SI]
        XCHG AX, ES:[DI]
        MOV [SI], AX
        ADD SI, 02H
        ADD DI, 02H
        LOOP BACK
        HLT
CODE ENDS
        END

Sample Input and Output:

Input:
DS: 0000    01    01    02    02    03    03    04    04    05    05
ES: 0000    06    06    07    07    08    08    09    09    0A    0A

Output:
DS: 0000    06    06    07    07    08    08    09    09    0A    0A
ES: 0000    01    01    02    02    03    03    04    04    05    05

Result: 

A block of data has been exchanged between Data segment and Extra segment.

No comments:

Post a Comment