![]() |
#2
zklhp2008-07-06 16:45
原来发原创就是这样呀 呵呵
把那几个程序也贴出来 算个补充吧 .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 |
*/ 出自: 编程中国 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]]