荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: huhaiming (一生只爱她), 信区: Program
标  题: Re: 各位大哥,指点一下!
发信站: 荔园晨风BBS站 (Sun Nov 30 12:29:14 2003), 站内信件


几个问题:

1、不需要要堆栈

2、在KKKK段代码的地方,你竟然lodsb之后直接loop

   根本没有处理al的判断就循环了,循环的语句显然位置错了

3、你试图想用9号显示字符串功能显示判断的结果(0 || 1 || -1)

   但忽略了9号功能的重要语法: 字符串要以'$'结尾,所以才会乱码

4、你试图给y赋值,但又想像C或C++那样显示出字符状态,是不会成功的

   要知道,你Y的定义并不是字符串的形式。

   建议的解决方案:把三种结果分别存储成字符串(记得以'$'结尾),

                   判断出那种结果,就输出哪个字符串。

   e.g :   less_result    db '-1$'
           equal_result   db '0$'
           bigger_result  db '1$'

【 在 hun (heaven) 的大作中提到: 】
: 为什么这个程序输出乱码,并有警报声
: DATA      SEGMENT
: X         DB     6,-8,0,3,120,-60
: Y         DB     ?
:           DB     20     DUP(?)
: DATA      ENDS
: STACK     SEGMENT
: STA       DB     20     DUP(?)
: TOP       EQU    LENGTH    STA
: STACK     ENDS
: CODE      SEGMENT
:           ASSUME CS:CODE,DS:DATA,SS:STACK
: START:    MOV    AX,DATA
:           MOV    DS,AX
:           MOV    ES,AX
:           MOV    AX,STACK
:           MOV    SS,AX
:           MOV    AX,TOP
:           MOV    SP,AX
:           MOV    SI,OFFSET X
:           MOV    CX,06
:           CLD
: KKKK:     LODSB
:           LOOP   KKKK
:           CMP    AL,0
:           JZ     ZERO
:           JL     LESS
:           JG     BIG
:           MOV    AH,4CH
:           INT    21H
: ZERO:     MOV    BL,0
:           MOV    Y,BL
:           MOV    DX,OFFSET Y
:           MOV    AH,09H
:           INT    21H
: LESS:     MOV    BL,-1
:           MOV    Y,BL
:           MOV    DX,OFFSET Y
:           MOV    AH,09H
:           INT    21H
: BIG:      MOV    BL,1
:           MOV    Y,BL
:           MOV    DX,OFFSET Y
:           MOV    AH,09H
:           INT    21H
: CODE      ENDS
:           END    START


--

菩提本无树,明镜亦非台

本来无一物,何处惹尘埃

※ 修改:·huhaiming 於 Nov 30 12:30:40 修改本文·[FROM: 192.168.0.200]
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.200]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店