回 帖 发 新 帖 刷新版面

主题:[讨论]请帮我看看这个程序!!!!!!!!

STCK  SEGMENT PARA STACK 'STACK'
  DW  32 DUP(0)
STCK  ENDS
DATA  SEGMENT
DAT   DB  -1,3,13,39,-33,32,87,-2,111,-4
NUM   EQU $-DAT                    这个怎么解释?
P     DB  NUM DUP(?)
N     DB  NUM DUP(?)
MESS1 DB  '0',' ZS',0DH,0AH,'$'
MESS2 DB  '0',' FS',0DH,0AH,'$'    这两行是什么意思?
DATA  ENDS
CODE  SEGMENT
MAIN  PROC FAR
ASSUME CS:CODE,DS:DATA,SS:STCK
      MOV  AX,DATA
      MOV  DS,AX

      LEA  BX,DAT
      MOV  CX,NUM
      LEA  SI,P
      LEA  DI,N

CONT: MOV  AL,BYTE PTR[BX]              还有这句是?
      CMP  AL,0
      JGE  D0
      MOV  [DI],AL
      INC  DI
      INC  MESS2
      JMP  NEXT
D0:   MOV  [SI],AL
      INC  SI
      INC  MESS1
NEXT: INC  BX
      LOOP CONT

      MOV  AH,09H
      LEA  DX,MESS1
      INT  21H
      LEA  DX,MESS2
      INT  21H

      MOV  AX,4C00H
      INT  21H
MAIN  ENDP
CODE  ENDS
END  MAIN
能否帮我把这个程序注释一下,,,,,,
本人刚学汇编请多多指教!!!!!!!!!

回复列表 (共2个回复)

沙发

STCK  SEGMENT PARA STACK 'STACK'
  DW  32 DUP(0)
STCK  ENDS
DATA  SEGMENT
DAT   DB  -1,3,13,39,-33,32,87,-2,111,-4
NUM   EQU $-DAT                    ;num是dat的空间大小
P     DB  NUM DUP(?)
N     DB  NUM DUP(?)
MESS1 DB  '0',' ZS',0DH,0AH,'$'
MESS2 DB  '0',' FS',0DH,0AH,'$'    ;定义了两个字符串而已,在调用dos的09号功
                                   ;后输出
DATA  ENDS
CODE  SEGMENT
MAIN  PROC FAR
ASSUME CS:CODE,DS:DATA,SS:STCK
      MOV  AX,DATA
      MOV  DS,AX

      LEA  BX,DAT
      MOV  CX,NUM
      LEA  SI,P
      LEA  DI,N

CONT: MOV  AL,BYTE PTR[BX]          ;从bx所指的内存空间处取一个字节送到al
      CMP  AL,0
      JGE  D0
      MOV  [DI],AL
      INC  DI
      INC  MESS2
      JMP  NEXT
D0:   MOV  [SI],AL
      INC  SI
      INC  MESS1
NEXT: INC  BX
      LOOP CONT

      MOV  AH,09H
      LEA  DX,MESS1
      INT  21H
      LEA  DX,MESS2
      INT  21H

      MOV  AX,4C00H
      INT  21H
MAIN  ENDP
CODE  ENDS
END  MAIN

板凳


我来回复

您尚未登录,请登录后再回复。点此登录或注册