+ -
当前位置:首页 → 问答吧 → 菜鸟求教,请各位大神帮忙啊!

菜鸟求教,请各位大神帮忙啊!

时间:2011-10-29

来源:互联网

统计负数的个数,并求出最大数,但是最大数为什么不对呢?
.486
DATA SEGMENT USE16
NUM DB -19,+28,37,-46,+55,+61,-74,255
MESG DB 'The number of negative number is:','0',0AH,0DH
  DB 'MAX=',0,0,'H',0AH,0DH,'$'
MAX DB '0'
DATA ENDS
CODE SEGMENT USE16
  ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
  MOV DS,AX
  MOV BX ,OFFSET NUM
  MOV DX,OFFSET MAX
  MOV CX,8
  MOV SI,OFFSET MESG
AGA: CMP BYTE PTR [Bx],0
  JNL NEXT
  INC BYTE PTR [SI+33]
  CMP [BX],DX
  JNG NEXT
  MOV DX,[BX]
NEXT:INC BX
  LOOP AGA
  MOV [SI+40],DX
  MOV AH,9
  MOV DX,OFFSET MESG
  INT 21H
  MOV AH,4CH
  INT 21H
  CODE ENDS
  END BEG

作者: Cquice   发布时间: 2011-10-29

输出的最大值是对应的ASCII字符,比如这里最大是61将得到'='这个字符. (字节型有符号比较255=-1)

.486
DATA SEGMENT USE16
NUM DB -19,+28,37,-46,+55,+61,-74,255
MESG DB 'The number of negative number is:','0',0AH,0DH
  DB 'MAX=',0,0AH,0DH,'$'
MAX DB 0
DATA ENDS
CODE SEGMENT USE16
  ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
  MOV DS,AX
  MOV BX ,OFFSET NUM
  MOV DL,MAX
  MOV CX,8
  MOV SI,OFFSET MESG
AGA: 
  CMP BYTE PTR [BX],0
  JNL NEXT
  INC BYTE PTR [SI+33]

NEXT:
CMP [BX],DL
JNG NEXT1
MOV DL,[BX]
NEXT1:  
  INC BX
  LOOP AGA

  MOV [SI+40],DL
  MOV AH,9
  MOV DX,OFFSET MESG
  INT 21H
  MOV AH,4CH
  INT 21H
  CODE ENDS
  END BEG

作者: G_Spider   发布时间: 2011-10-29