设内存中有一字节数组,首地址为BLOCK,要求将其中的正数和负数分开,存放在同一个数据段中

分别放入缓冲区BUFI和BUF2中。试编写有关程序段

为防抽,加一行汉字:程序如下。实际运行的时候,只需要修改BLOCK里的值,随便加数、减数都行,其他不用改。另外,对等于0的数没做处理。
dseg segment
BLOCK db 1, 6, -4, 5, 0, 2, -6, -7, 4, 0, 9, -1
COUNT EQU $-BLOCK
BUF1 db COUNT dup(?)
BUF2 db COUNT dup(?)
dseg ends
cseg segment
assume cs:cseg, ds:dseg
begin:
mov ax, dseg
mov ds, ax
mov cx, COUNT
lea bx, BLOCK
lea si, BUF1
lea di, BUF2
Compare:
mov al, [bx]
cmp al, 0
jg GtZero
je Skip
mov [di], al
inc di
jmp Skip
GtZero:
mov [si], al
inc si
Skip:
inc bx
loop Compare
mov ah, 4ch
int 21h
cseg ends
end begin
温馨提示:答案为网友推荐,仅供参考
相似回答