| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1915 人关注过本帖
标题:我不明白这个汇编程序怎么错了?
只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
程序代码:
;MASMPlus 代码模板 - 纯 DOS 程序

.model small
DATA SEGMENT
    BUFFER DB 6 DUP(?)
DATA ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
    mov ax,DATA
    mov ds,ax
    MOV BL,2
    LEA DI,BUFFER
INPUT:
    MOV AH,01H
    INT 21H        ;输入第一个字符
    SUB AL,30H     ;将输入的数字减去30h
    JL EXIT
    CMP AL,0AH
    JA EXIT
    CMP BL,1
    JE NEXT1
    mov cl,bl
    MOV BL,10
    MUL BL        ;十位上数乘以10
    mov bl,cl
    MOV [DI],AL
    DEC BL
    JNZ INPUT
    
NEXT1:
    MOV BX,2
    ADD [DI],AL
NEXT3:    
    MOV AL,[DI]
    CMP BX,2
    JL  NEXT2
    MOV cl,4
    mov dl,al
    SHR AL,cl       ;左移四位,相当于:0000 xxxx (xxxx表对应原高四位二进制数)
NEXT2:
    AND AL,0FH
    cmp al,10d
    jge CHAR
    add al,30h
    jmp OUTPUT
CHAR:
    add al,55d
OUTPUT:
    mov dl,ald
    MOV AH,02H
    INT 21H        ;输出DL中内容
    DEC BX
    JNZ NEXT3
EXIT:
    mov ah,4ch
    int 21h
CODE ENDS
    END START


好人做到底 这次改对了

不过 你的程序不怎么简练 有废话

还有 貌似都是用cx做计数器

循环中压栈费周期……

个人感觉 这种程序不用内存 直接用寄存器就行了

加油吧

[[it] 本帖最后由 zklhp 于 2008-10-26 10:13 编辑 [/it]]
2008-10-26 10:12
ensky_cy
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-9-26
收藏
得分:0 
回复 11# zklhp 的帖子
很好,很感谢!
上面OUTPUT后面一句 是 mov dl,al
呵呵,斑竹笔误了
再赞个,谢!
2008-10-26 21:35
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
用什么编译的 ??
好像不同的编译器经常要求的格式有点差异

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-10-27 00:59
ensky_cy
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-9-26
收藏
得分:0 
回复 13# vfdff 的帖子
我是把 MASM.EXE  LINK.EXE  MAKE.EXE...放到程序目录里,在cmd里直接搞
2008-10-27 12:24
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
[bo][un]ensky_cy[/un] 在 2008-10-26 21:35 的发言:[/bo]

很好,很感谢!
上面OUTPUT后面一句 是 mov dl,al
呵呵,斑竹笔误了
再赞个,谢!


怎么还多个d 偶直接复制的呀?

反正差不多 看看就行了
2008-10-27 12:41
快速回复:我不明白这个汇编程序怎么错了?
数据加载中...
 
   



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

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