帮忙显示 结果
data segmentM db 12,-35,-51,35,-16,6,13,-10,32,15,-7,-5,8,19,65,-19,14,-30 ;定义数组
P db 20 dup(?)
N db 20 dup(?)
data ends
code segment
assume ds:data,cs:code
main proc far
start:
mov ax,data
mov ds,ax
mov cx,14h ;循环次数
mov si,0
mov bx,0
mov bp,0
L1:
mov ax,M[si] ;开始与零比较
cmp ax,0
jae L2 ;大于等于0运行L2
jb L3 ;小于0运行L3
L2:
mov P[bx],ax ;把大于等于0的数存进数组P
inc bx ;bx用来记录数组长度
loop L1
L3:
mov N[bp],ax
inc bp
loop L1
mov ah,4ch
int 21h
ret
main endp
code ends
end start
M db 12,-35,-51,35,-16,6,13,-10,32,15,-7,-5,8,19,65,-19,14,-30 ;定义数组
len equ $-M
P db 20 dup(?)
N db 20 dup(?)
zs byte 3 dup (?),'$'
fs1 byte 3 dup (?),'$'
data ends
code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
lea bx,M
mov si,0
mov di,0
mov cx,len
AGN:mov al,[bx]
test al,80h
jnz MINUS
mov P[si],al
inc si
jmp EXT
MINUS:mov N[di],al
inc di
EXT:inc bx
loop AGN
mov ax,si
mov bx,10
mov si,2
AG:xor dx,dx ;正数的个数,转换为ASCII码
div bx
or dl,30h
mov zs[si],dl
dec si
cmp ax,0
jnz AG
lea dx,zs
mov ah,9
int 21h
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
int 21h
mov ax,di
mov di,2
AG1: ;负数的个数
xor dx,dx
div bx
or dl,30h
mov fs1[di],dl
dec di
cmp ax,0
jnz AG1
lea dx,fs1
mov ah,9
int 21h
mov ah,4ch
int 21h
code ends
end start DISAL PROC ;子程序功能:将AL寄存器的内容以字符形式显示出来
PUSH AX
SHR AL,4
ADD AL,30H
MOV AH,0EH
INT 10H ;显示 al高4位
POP AX
AND AL,0FH ; Al高4位置00h ,显示低4位
ADD AL,30H
MOV AH,0EH
INT 10H
RET
DISAL ENDP
页:
[1]
