数据块移动,要求将指定区的数据搬移到另一块内存空间 求问程序哪里有错QWQ

STACK1 SEGMENT STACK

DW 256 DUP($)

STACK1 ENDS

DATA SEGMENT

MES1 DB 'The data in buf2 are:',0AH,0DH,'$'

BUF1 DB 11H,22H,33H,44H,55H,66H,77H,88H,99H,0AAH,0BBH,0CCH,0DDH,0EEH,0FFH,00H

BUF2 DB 20H DUP(0)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

    MOV AX,DATA

    MOV DS,AX

    MOV SI,OFFSET BUF1

    MOV DI,OFFSET BUF2

    CMP SI,DI;判断数据段的先后顺序,决定首端移动或是尾端移动

    JG  LABEL1

    MOV CX,20H

  LOOPER:

    MOV BX,CX

    MOV CX,SI[BX]

    MOV DI[BX],CX

    PUSH DI[BX]

    INC BX

    CALL PRINT

    LOOP LOOPER

    JMP LAST

  LABEL1:

    MOV BX,20H

    SUB BX,CX

    MOV CX,SI[BX]

    MOV DI[BX],CX

    PUSH DI[BX]

    DEC BX

    CALL PRINT

    LOOP LABEL1

    JMP LAST

  LAST:

    RET

PRINT PROC

    POP DI[BX]

    PUSH AX

    MOV DX,DI

    MOV AL,02H

    INT 21H

    POP AX

    RET

PRINT ENDP

CODE ENDS

END START


版权声明:本文为youning21原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。