标题:[求助]如何判断代码的质量?
只看楼主
neverguzbd
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-9-23
 问题点数:0 回复次数:6 
[求助]如何判断代码的质量?

请帮忙一下:
下面两段代码和一个中断例程都是用来显示CMOS RAM中的时间信息的.请教如何判断哪一个更好?
第一个:                            
code segment
start:
;***********************
mov ax,0b800h
mov es,ax ;显示的位置
mov di,160*12+35*2
;***********************
mov si,9
mov cx,2
ok1:
push cx
int 7ch ;显示格式"年/月/"
add di,2
mov byte ptr es:[di],'/'
mov byte ptr es:[di+1],02h
add di,2
dec si
pop cx
loop ok1
;************************
int 7ch
add di,2
mov byte ptr es:[di],' ' ;显示"日"
add di,2
mov si,4
;************************
mov cx,2
ok2:
push cx
int 7ch
add di,2
mov byte ptr es:[di],':' ;显示"时:分:"
mov byte ptr es:[di+1],02h
add di,2
sub si,2
pop cx
loop ok2
;*************************
int 7ch ;显示"秒"
;*************************
mov ax,4c00h
int 21h
code ends
end start
第二个:
assume cs:code

code segment

s1:dw 9,8,7,4,2,0 ;显示的时间信息在CMOS RAM中的单元位置
start:
;******************************
mov ax,0b800h
mov es,ax ;显示的位置
mov di,160*12+35*2
;******************************
mov bx,offset s1
ok:
;******************************
mov si,cs:[bx] ;改变si的值并取得时间信息显示在屏幕上
int 7ch
;******************************
cmp si,9 ;显示'年'之后再显示'/'
je next1
;******************************
cmp si,8 ;显示'月'之后再显示'/'
je next1
;******************************
cmp si,7 ;显示'日'之后再显示' '
je next2
;******************************
cmp si,4 ;显示'时'之后再显示':'
je next3
;******************************
cmp si,2 ;显示'分'之后再显示':'
je next3
;******************************
cmp si,0 ;显示'秒'之后再结束
je next5

next1:
;********************************
add di,2
mov byte ptr es:[di],'/';显示'/'
jmp short next4
;********************************
next2:
add di,2      ;显示'空格'  
mov byte ptr es:[di],' '
jmp short next4
;********************************
next3:
add di,2      ;显示':'
mov byte ptr es:[di],':'
jmp short next4
;********************************
next4:
add di,2
add bx,2      ;循环
jmp short ok
;********************************
next5:
mov ax,4c00h
int 21h
code ends
end start
下面是上面两个共用的中断例程:
assume cs:code

code segment
;*************
start:
mov ax,cs
mov ds,ax
mov si,offset show
mov ax,0
mov es,ax
mov di,200h
mov cx,offset showend-offset show ;安装程序的代码
cld
rep movsb
mov ax,0
mov ds,ax
mov si,7ch*4
mov word ptr ds:[si],200h
mov word ptr ds:[si+2],0
mov ax,4c00h
int 21h
;*************
show:
;*************
mov ax,si
out 70h,al ;取出要显示的内容
in al,71h
;*************
mov ah,al ;ah十位数值,al个位数值
;*************
mov cl,4
shr ah,cl ;ah十位数值BCD MODE,al个位数值BCD MODE
and al,00001111b
;*************
add ah,30h ;转变为ASCII MODE
add al,30h
;*************
mov byte ptr es:[di],ah
mov byte ptr es:[di+1],0cah ;显示十位数值
;**************
add di,2
mov byte ptr es:[di],al ;显示个位数值
mov byte ptr es:[di+1],0cah
;**************
iret
showend:
nop
code ends
end start

能否给出一些判断代码质量的标准?
在此先谢过:谢谢!

搜索更多相关主题的帖子: 质量 代码 判断 
2006-09-26 20:27
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
我认为代码的质量主要是可维护性,其次是执行效率。以前因为内存小,还要考虑代码长度问题,现在不需要太计较这个问题了。

活到老,学到老! http://www. E-mail:hu-jj@
2006-09-27 12:12
neverguzbd
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-9-23
得分:0 
可维护性是不是指"修改的方便"?
而对于执行效率来说,我觉得它应该跟代码的长度多少有一点关系,是这样的吗?
2006-09-27 12:20
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
是的。因为需求是不断变化的,从而软件也必须不断改进,通俗地说就叫版本升级。牺牲一些执行效率来换取可维护性是非常必要的。

活到老,学到老! http://www. E-mail:hu-jj@
2006-09-27 22:18
neverguzbd
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-9-23
得分:0 
谢谢了!
2006-09-27 23:22
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
得分:0 
可以看数据结构这方面的书,或许它对你有帮。

谁有强殖装甲第二部,可以Q我460054868
2006-09-28 22:23
neverguzbd
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-9-23
得分:0 

是吗?那太好了,我们这学期刚好开了一门"数据库"的选修课!
谢了!

2006-09-29 12:06



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




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

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