汇编语言 数据块传送问题求助
小弟是刚学习汇编的学生,很多东西不懂,望各位细心指教,谢谢各位。
编译时,系统提示问题出现在31,32行,就是MOV SI,DA1 MOV DI,DA2 这两句。可能后边显示部分也有问题。
;编写程序,将内存中某数据块中的正数和负数分开,并分别将这些正数和负数送同一数据段的两个缓冲区中;,并在屏幕上显示正数和负数的个数(数据自定)
DATA SEGMENT
BUF DB 1,2,-8,4,90,5,-7,6,9
COUNT EQU $-BUF
ZHENGSHU DB ? ;存放正数的个数
FUSHU DB ? ;存放负数的个数
POS DB 10 DUP(?) ;放正数
NEGT DB 10 DUP(?) ;放负数
DA1 EQU BUF+12 ;正数存放单元的首地址
DA2 EQU BUF+22 ;负数存放单元的首地址
DATA ENDS
MSTACK SEGMENT STACK
DW 20 DUP(?)
MSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:MSTACK
START:
MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET BUF
MOV CX,COUNT
MOV ZHENGSHU,0
MOV FUSHU,0
MOV SI,DA1 ;正数存放单元串首地址送SI
MOV DI,DA2 ;负数存放单元串首地址送DI
LP: CMP [BX],0
JG LP1 ;大于0跳转LP1
JMP LP2 ;小于0跳转LP2
LP1: INC ZHENGSHU
MOV AX,[BX]
MOV [SI],AX
INC SI
INC BX
LOOP LP
JMP LAST
LP2: INC FUSHU
MOV AX,[BX]
MOV [DI],AX
INC DI
INC BX
LOOP LP
LAST:
MOV DL,ZHENGSHU
MOV AH,06H
INT 21H
MOV DL,FUSHU
MOV AH,06H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START