| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2686 人关注过本帖
标题:判断闰年程序无法输出结果
取消只看楼主 加入收藏
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
结帖率:50%
收藏
 问题点数:0 回复次数:7 
判断闰年程序无法输出结果

data segment
buf1 db 'yes$'
buf2 db 'no$'
buf3 dw 1995
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov si,offset buf3
mov ax,[si]
mov dx,0
mov bx,4
div bx
and dx,0FFFFH
jnz fal
mov bx,100
mov ax,[si]
mov dx,0
div bx
and dx,0FFFFH
jnz tru
mov bx,400
mov ax,[si]
mov dx,0
div bx
and ax,0FFFFH
jnz fal
jmp tru
fal: mov ah,9
lea dx,buf2
int 21h
tru: mov ah,9
lea dx,buf1
int 21h
code ends
end start

无法输出yes和no

搜索更多相关主题的帖子: 闰年 结果 输出 判断 
2007-05-24 20:47
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 
结果是正确的啊,谢谢楼主
exit: mov ah,4ch
int 21h
为什么要加这个啊
是不是在调用完成返回时系统才交出口参数送到指定的寄存器,或是送屏幕

上面这句话是书写着的

West and east,home is best……
2007-05-25 17:22
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 
如果没有上面的jmp exit
exit:mov ah,4ch
int 21h
这些的话, 是程序没有终止也没有带返回码,返回码是指输出到屏幕上的字符吧???
楼上的,我的可以运行的,结果也正确的
你为什么会这样偶就不是很清楚了,初学者我

West and east,home is best……
2007-05-25 21:19
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 

再问个问题
如果ax=24h
他是16进制,除以4h则得到9
如果把24h当十进制24计算,除以4得6
是不是要先把24h转换成十进制
如果先不转换要怎么做????


West and east,home is best……
2007-05-25 22:23
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 
刚开始输入字符串,比如是1996
我已经把这变成1996H存在AX中
那是不是还要转成十进制
如果刚开始不转换成1996H,而是直接从1996字符串转换成十进制要怎么转换啊

West and east,home is best……
2007-05-26 10:09
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 

哦,那个程序是刚开始写得就判断1995的,这个已经可以了
我现在又改了下,需要输入字符串的
比如输入1996,这是字符
我把他转换成1996H存在AX中,我把程序发上来吧
data segment
buf1 db 'please input a year:$'
yes db 'yes$'
no db 'no$'
buf2 db 7
db ?
db 7 dup(?)
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax

lea dx,buf1 ;提示输入年份
mov ah,9
int 21h

lea dx,buf2 ;输入字符串
mov ah,0ah
int 21h

mov ah,[buf2+2] ;将输入的年份转换成十六进制存放在ax中
and ah,00fh
mov cl,4
shl ah,cl
mov bl,[buf2+3]
and bl,00fh
add ah,bl
mov al,[buf2+4]
and al,00fh
shl al,cl
mov bl,[buf2+5]
and bl,00fh
add al,bl

mov cx,ax
mov dx,0
mov bx,4h
div bx
and dx,0ffffh
jnz fal
mov bx,100
mov ax,cx
mov dx,0
div bx
and dx,0ffffh
jnz tru
mov bx,400
mov ax,cx
mov dx,0
div bx
and dx,0ffffh
jnz fal
jmp tru
fal: mov ah,9
lea dx,no
int 21h
jmp exit
tru: mov ah,9
lea dx,yes
int 21h
jmp exit
exit: mov ah,4ch
int 21h
code ends
end start


West and east,home is best……
2007-05-26 10:19
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 
问题解决了
呵呵
谢谢各位啊,终于把这个程序搞懂了

West and east,home is best……
2007-05-26 10:59
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 

那是因为少了换行,把no直接输出在第一行了
在输出结果前,先换行就可以了


West and east,home is best……
2007-07-02 18:07
快速回复:判断闰年程序无法输出结果
数据加载中...
 
   



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

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