| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2079 人关注过本帖
标题:分析一个没输出的程序
只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
结帖率:100%
收藏
 问题点数:0 回复次数:3 
分析一个没输出的程序
*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 https://www.bccn.net
*/ 作者: zklhp   E-mail:zklhp@  QQ:493165744
*/ 时间: 2008-7-5 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------

昨天在论坛上看到一个试题:

设计一个加法程序,将从BUF存储单元开始的100个无符号数(16位)相加,结果存入BUF单元。

因为感觉简单 就顺手写了个程序想贴上去   又不放心 怕自己写错了(偶也是大菜鸟 ) 就随便添个


buf dw 100d dup ('1')


想运行运行试试  可啥也没输出就退出了…………

开始 偶以为自己的算法有错 程序不对  就换种写法  可换了几种  还是啥都没有 why?

想了半天还是没想出个所以然  就请出debug  

图片附件: 游客没有浏览图片的权限,请 登录注册


原来如此  '1' 是 49d 4900d是1324h 在小尾模式里正好是 24 13  就是说开始就有个 $ 那还能输出什么!!!

到这里大家都看明白了 原来怎么简单…  可这个 $ 浪费了十几分钟呀

呵呵 本文内容很简单 主要是告诉大家:别以为没输出程序就有错

[[it] 本帖最后由 zklhp 于 2008-8-6 13:54 编辑 [/it]]
搜索更多相关主题的帖子: 输出 
2008-07-05 17:30
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
原来发原创就是这样呀 呵呵  

把那几个程序也贴出来 算个补充吧  

.model small
.stack 200h
.data
   
    buf dw 100d dup (1)
   
.CODE
START:
    mov ax,@data
    mov ds,ax
    xor ax,ax
    xor bx,bx
    mov cx,100d
        
@@:
    add ax,[buf+bx]
    inc bx
    inc bx
    dec cx
    jcxz @finish
    jmp @b
   
@finish:
   
    mov WORD ptr [buf],ax
    mov BYTE ptr [buf+2],'$'
    lea dx,buf
    mov ah,9h
    int 21h
   
    ;暂停,任意键关闭
    mov ah,1
    int 21h
    mov ah,4ch     ;结束,可以修改al设置返回码
    int 21h
   
END START



.model small
.stack 200h
.data
   
    buf dw 100d dup (1)
   
.CODE
START:
    mov ax,@data
    mov ds,ax
    xor ax,ax
    xor bx,bx
    mov cx,100d
        
@loop:
    add ax,[buf+bx]
    inc bx
    inc bx
    loop @loop
   
    mov WORD ptr [buf],ax
    mov BYTE ptr [buf+2],'$'
    lea dx,buf
    mov ah,9h
    int 21h
   
    ;暂停,任意键关闭
    mov ah,1
    int 21h
    mov ah,4ch     ;结束,可以修改al设置返回码
    int 21h
   
END START



.model small
.stack 200h
.data
   
    buf dw 100d dup (1)
   
.CODE
START:
    mov ax,@data
    mov ds,ax
    xor ax,ax
    xor bx,bx
    mov cx,100d
    lea si,buf
        
@loop:
    lodsw
    add bx,ax
    loop @loop
   
    mov WORD ptr [buf],bx
    mov BYTE ptr [buf+2],'$'
    lea dx,buf
    mov ah,9h
    int 21h
   
    ;暂停,任意键关闭
    mov ah,1
    int 21h
    mov ah,4ch     ;结束,可以修改al设置返回码
    int 21h
   
END START
2008-07-06 16:45
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 2# 的帖子
什么编译器,     mov ax,@data 也能编译通过??

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-11-02 18:11
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
[bo][un]vfdff[/un] 在 2008-11-2 18:11 的发言:[/bo]

什么编译器,     mov ax,@data 也能编译通过??


当然是masm!!!

这是dos汇编里的

@data 就是 .code生成的段名

汇编教程里都有吧
2008-11-02 21:27
快速回复:分析一个没输出的程序
数据加载中...
 
   



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

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