标题:菜鸟刚学汇编,照书上抄了个程序居然出现12个错误,望高手指教
只看楼主
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
结帖率:100%
已结贴  问题点数:20 回复次数:5 
菜鸟刚学汇编,照书上抄了个程序居然出现12个错误,望高手指教
.MODEL SMALL
.386
.STACK
.DATA
        TOPROW EQU 0000H
        RGTCOL EQU 0280H
        LETCOL EQU 0000H
        BOTROW EQU 01E0H
        COLORF DB ?
        COLORB DB ?
.CODE
.STARTUP
        MOV    AH,0FH
        MOV    BH,0
        INT    10H
        PUSH    AX
        MOV    AH,0
        MOV    AL,12H   
        INT    10H
        MOV    COLORB,00H
        MOV    COLORF,05H
        MOV    BH,0
        MOV    AH,0BH
        MOV    BL,COLORB
        INT     10H
        MOV    DX,200
        MOV    CX,200
        MOV    AH,0CH
        MOV    AL,COLORF
        INT    10H
READY:MOV    AH,10H
        INT    16H
        CMP    AH,01H
        JE        STOP
        CMP    AH,3BH
        JE        BSET
        CMP    AH,3CH
        JE        FSET
        CMP    AH,4DH
        JE        DRAW1
        CMP    AH,4BH
        JE        DRAW2
        CMP    AH,48H
        JE        DRAW4
        JMP    READY
BSET: INC    COLORB
        MOV    AH,0BH
        MOV    BL,COLORB
        MOV    BH,0
        INT    10H
        JMP    READY
FSET: INC    COLORF
        JMP    READY
DRAW1:INC    CX
        CMP    CX,RGTCOL
        JG        SDR1
        JMP    DISP
SDR1:    DEC    CX
        JMP    READY
DRAW2:DEC    CX
        CMP    CX,LETCOL
        JL        SDR2
        JMP    DISP
SDR2:    INC     CX
        JMP    READY
DRAW3:DEC    DX
        CMP    DX,TOPROW
        JL        SDR3
        JMP    DISP
SDR3:    INC    DX
        JMP    READY
DRAW4:INC    DX
        CMP    DX,BOTROW
        JG        SDR4
        JMP    DISP
SDR4:    DEC    DX
        JMP    READY
DISP:    MOV    BL,COLORF
        MOV    AH,0CH
        MOV    AL,COLORF
        INT    10H
        JMP    READY
STOP:    POP    AX
        MOV    AH,0
        INT    10H
    EXIT 0
END
搜索更多相关主题的帖子: 居然 
2013-05-11 17:16
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:20 
程序中居然没有一句注释,看来得仔细分析程序才能理解了。

活到老,学到老! http://www. E-mail:hu-jj@
2013-05-11 21:09
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
得分:0 
不好意思,刚学两天,不怎么懂规矩
这个程序是中国科学技术大学出版社出版的《微型计算机原理与接口技术》第四版187页上的一道例题

画图程序,实现在键盘上按↑,↓,←,→键可以不同方向在屏幕上画线,并通过F1和F2能变换图的前景色和背景色,按ESC键返回DOS.
.MODEL SMALL
.386
.STACK
.DATA
        TOPROW EQU 0000H    ;行的范围是0000H~00C8H
        RGTCOL EQU 0280H
        LETCOL EQU 0000H    ;列的范围是0000H~0140H
        BOTROW EQU 01E0H
        COLORF DB ?         ;前景色
        COLORB DB ?         ;背景色
.CODE
.STARTUP
        MOV    AH,0FH
        MOV    BH,0
        INT    10H        ;得到当前显示类型
        PUSH    AX        ;将当前显示方式入栈保存
        MOV    AH,0
        MOV    AL,12H   
        INT    10H        ;设置显示方式为彩色方式13H:640*480,16色
        MOV    COLORB,00H ;初始化
        MOV    COLORF,05H
        MOV    BH,0
        MOV    AH,0BH
        MOV    BL,COLORB
        INT     10H
        MOV    DX,200        ;列
        MOV    CX,200        ;行
        MOV    AH,0CH
        MOV    AL,COLORF
        INT    10H
READY:MOV    AH,10H
        INT    16H            ;等待键盘输入
        CMP    AH,01H         ;01H是‘ESC’的键盘扫描码
        JE        STOP
        CMP    AH,3BH        ;背景色
        JE        BSET
        CMP    AH,3CH        ;前景色
        JE        FSET
        CMP    AH,4DH        ;向右画图
        JE        DRAW1
        CMP    AH,4BH        ;向左画图
        JE        DRAW2
       CMP    AH,48H        ;向上画图
       JE        DRAW3
        CMP    AH,50H        ;向下画图
        JE        DRAW4
        JMP    READY        ;输入其它键时重新扫描键盘
BSET: INC    COLORB         ;修改背景色
        MOV    AH,0BH
        MOV    BL,COLORB
        MOV    BH,0
        INT    10H
        JMP    READY
FSET: INC    COLORF        ;修改前景色
        JMP    READY
DRAW1:INC    CX
        CMP    CX,RGTCOL    ;判断是否到达右边界
        JG        SDR1
        JMP    DISP
SDR1:    DEC    CX          ;到达右边界,光标不动
        JMP    READY
DRAW2:DEC    CX
        CMP    CX,LETCOL    ;判断是否到达左边界
        JL        SDR2
        JMP    DISP
SDR2:    INC     CX          ;到达左边界时,光标不动
        JMP    READY
DRAW3:DEC    DX
        CMP    DX,TOPROW
        JL        SDR3
        JMP    DISP
SDR3:    INC    DX
        JMP    READY
DRAW4:INC    DX
        CMP    DX,BOTROW
        JG        SDR4
        JMP    DISP
SDR4:    DEC    DX
        JMP    READY
DISP:    MOV    BL,COLORF
        MOV    AH,0CH
        MOV    AL,COLORF
        INT    10H
        JMP    READY
STOP:    POP    AX        ;原始显示方式出栈
        MOV    AH,0
        INT    10H        ;恢复原始显示方式
    EXIT 0
END
上面少了两行请大家帮忙看看还有啥错误


2013-05-11 22:33
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
编译错误应该会有出错行号及错误类型的提示,可以根据这些信息逐步排错。

活到老,学到老! http://www. E-mail:hu-jj@
2013-05-12 07:26
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
得分:0 
换用masn for windows编译只有一个错误error A2008:syntax error:EXIT
2013-05-12 21:08
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
得分:0 
终于发现错误了,粗心大意害死人那!EXIT 0前面少了一个‘.'。
2013-05-13 22:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-406828-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.126453 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved