回 帖 发 新 帖 刷新版面

主题:帮我看下,很容易,谢谢了

DATAS SEGMENT
      BUFFER DB '87','234','123','$'
DATAS ENDS

STACKS SEGMENT
      DB 20 DUP(?)
STACKS ENDS

CODES SEGMENT
      ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATAS
      MOV DS,AX
      MOV SI,OFFSET BUFFER
      MOV AL,[SI]
      MOV BL,[SI+1]
      MOV CL,[SI+2]
      CMP AL,BL
      JAE NEXT1
      XCHG AL,BL
NEXT1:CMP AL,CL
      JAE NEXT2
      XCHG AL,CL
NEXT2:CMP BL,CL
      JAE NEXT3
      XCHG BL,CL
NEXT3:MOV [SI],AL
      MOV [SI+1],BL
      MOV [SI+2],CL
      LEA DX,BUFFER
      MOV AH,9
      INT 21H
CODES ENDS
      END START

这个汇编是三个数比较大小的汇编程序,不过我有点不明白
但是有问题,我明明定义了栈,但每次link的时候却出现no stack segment
所以不明白哪里错了

还有BUFFER DB '87','234','123','$'这个是怎么存储的,我也有点模糊



麻烦各位朋友留几分钟给小弟帮我解答一下

回复列表 (共6个回复)

沙发

你是用MASM611编的啊,你可以在ORTION中的LINK选项选中第一行就可以了.
各个字符是在段定义的起始位置分配空间的[em2]

板凳

我去调试了一下,不是简单的no stack segment,link时,相反我得到的结果是没有这个提示,而是说link错误:LINK:invalid or corrupt file

3 楼

你是不是应该在第12行后面加上这个呀?
mov ax,STACKS
mov ss,ax

4 楼

DATAS SEGMENT
      BUFFER DB '87','234','123','$'
DATAS ENDS

STACKS SEGMENT                 ;这里,改为:stack segment
                                              para stack'stack'
                                              DB 20 DUP(?)
      DB 20 DUP(?)                            stack ends
STACKS ENDS

CODES SEGMENT
      ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATAS
      MOV DS,AX
      MOV SI,OFFSET BUFFER
      MOV AL,[SI]
      MOV BL,[SI+1]
      MOV CL,[SI+2]
      CMP AL,BL
      JAE NEXT1
      XCHG AL,BL
NEXT1:CMP AL,CL
      JAE NEXT2
      XCHG AL,CL
NEXT2:CMP BL,CL
      JAE NEXT3
      XCHG BL,CL
NEXT3:MOV [SI],AL
      MOV [SI+1],BL
      MOV [SI+2],CL
      LEA DX,BUFFER
      MOV AH,9
      INT 21H
CODES ENDS
      END START


就不会出现“no stack segment”了

5 楼

???
para stack'stack'   ;什么意思这段

而且汇编代码更不能用了,直接提示不能打开

6 楼


关于堆栈段的定义可以补用写。系统分配的堆栈段一般足够供小程序使用。
link完出现no stack segment,也不是错误。对最后生成的EXE文件没有影响,可以不用理会。

还有BUFFER DB '87','234','123','$'这个是怎么存储的,我也有点模糊

这是什么意思?没看明白。

还有就是LZ的程序最后有点错误,没有中断指令。
最后必须补上
mov ah,4ch
int 21h
否则也会提示错误

我来回复

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