📄 chp3_15b.asm
字号:
stack segment stack'stack'
dw 32 dup(?)
stack ends
data segment
ARRAYW DW 1035H,0,-298H,258H,-25H,58H,698H,0
COUT EQU ($-ARRAYW)/2
PLUS DB COUT DUP(?)
MINUS DB COUT DUP(?)
ZERON DW ?
OUBF1 DB 'The number of zero is:$'
OUBF2 DB 2 DUP(?)
data ends
code segment
begin proc far
assume ss:stack,cs:code,ds:data
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
MOV CX,COUT
MOV SI,0
MOV BX,0
AGAIN:MOV AX,WORD PTR ARRAYW[SI]
CMP AX,0
JZ NUZ
JG HPLUS
JL HMINUS
HMINUS:MOV WORD PTR MINUS[SI],AX
JMP HERE
HPLUS:MOV WORD PTR PLUS[SI],AX
JMP HERE
NUZ: INC BX
JMP HERE
HERE: ADD SI,2
LOOP AGAIN
MOV DX,OFFSET OUBF1
MOV AH,9
INT 21H
MOV ZERON,BX
AND BL,0FH
ADD BL,30H
MOV OUBF2,BL
MOV OUBF2+1,'$'
MOV DX,OFFSET OUBF2
MOV AH,9
INT 21H
ret
begin endp
code ends
end begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -