回 帖 发 新 帖 刷新版面

主题:请教下那里出错了

data1  segment
dat db 91,84,73,68,58,45,39,62,77,66

s1  db  'The max is','$'

s2  db  'The min is','$'
ascii db 30h,',',30h,30h,'$'

data1  ends
stack1 segment para stack
       dw 20  dup(0)
stack1 ends
code   segment
       assume cs:code,ds:data1,ss:stack1
begin: mov ax,data1
       mov ds,ax       
       mov al,9
       mov cx,9
cc:    lea si,dat
rpt:   mov bl,[si]
       inc si
       cmp bl,[si]
       js  aa
       jmp bb
aa:    xchg bl,[si]
       mov  [si-1],bl
bb:    dec cx
       jnz rpt
       dec al
       mov cl,al
       jnz cc

       lea dx,s1
       mov ah,09h
       int 21h
       lea dx,s2
       mov ah,09h
       int 21h

       mov ah,dat
       add ascii,ah
       mov al,dat+9       
       add ascii+2,al   
       lea dx,ascii
       mov ah,09h
       int 21h       
       mov ah,4ch
       int 21h
code   ends
       end  begin

回复列表 (共1个回复)

沙发

好象没有在定义代码段的时候初始化把。如:
PUSH DS
SUB AX,AX
PUSH AX
还有运行后没有返回到DOS下,可能黑屏没有RET。我只知道这些了。呵呵

我来回复

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