曾小老师,可以详细解释一下吗?
已知从符号地址M开始的内存单元存放着15个带符号数,试编写一个汇编程序:将正数依次存放到以符号地址P开始的存储单元中,再将负数依次存放到以符号地址N开始的存储单元中,并将正数和负数的个数显示出来。
首先声明我还不配做老师!
下面的程序你看看啊:
DSEG SEGMEMT
M DW ........(自己写15个数)
S1 DB ?
S2 DB ?
P DW 15 DUP (?)
N DW 15 DUP(?)
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG ,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX
MOV CX,15
MOV S1,0
MOV S2,0
MOV SI,-1
SIGN: INC SI
MOV BX,M[SI]
CMP BX,0
JL STEP1
INC S1
MOV P[SI],BX
LOOP SIGN
STEP1:INC S2
MOV N[SI],BX
LOOP SIGN
MOV AL,S1
ADD AL,30H
MOV S1,AL
MOV DL,S1
MOV AH,02H
INT 21H
MOV AL,S2
ADD AL,30H
MOV S1,AL
MOV DL,S2
MOV AH,02H
INT 21H
MOV AX,4C00H
INT 21H
CSEG ENDS
END START
你先看看,看不明白再说!!!
呵呵........