您的位置:首页 > 其它

汇编语言 统计负数个数(二)

2011-11-08 12:23 225 查看
STACK1  SEGMENT STACK
DW 256 DUP(?)
STACK1  ENDS

DDATA	SEGMENT
NUMB	DB	12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H
MES1	DB	'The number of negative is:$'
DDATA	ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DDATA

START: MOV	AX,DDATA
MOV	DS,AX

MOV	DI,OFFSET NUMB
XOR	BH,BH
MOV	CX,10D
A1:	   MOV 	AL,[DI]
TEST 	AL,80H
JE 	A2
INC BL
A2:	   INC DI
LOOP A1

MOV	DX,OFFSET MES1	   ;show mes
MOV	AH,09H
INT 	21H

MOV	AL,BL		       ;show the number of negative
AND	AL,0F0H		       ;get the highest 4 bits
SHR	AL,4
CMP	AL,0AH
JB	C2
ADD	AL,07H
C2:	   ADD	AL,30H
MOV	DL,AL		       ;show character
MOV	AH,02H
INT	21H
MOV	AL,BL
AND	AL,0FH		       ;get the lowest 4 bits
CMP	AL,0AH
JB	C3
ADD 	AL,07H
C3:	   ADD	AL,30H
MOV	DL,AL		        ;show character
MOV	AH,02H
INT	21H

MOV	AX,4C00H	        ;go back to dos
INT	21H
CODE  ENDS
END START
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: