兰陵月 发表于 2016-12-15 12:36:59

请写一个程序片段统计寄存器AX中置1位的个数

本帖最后由 兰陵月 于 2016-12-15 15:33 编辑

;程序名:TT321.ASM
;功能:统计寄存器AX中置1位的个数。
;备注:第3章题目T3.21:请写一个程序片段统计寄存器AX中置1位的个数
ASSUME        CS:CSEG,DS:DSEG
;数据段
DSEG                SEGMENT
        NUMBER                DB        0
DSEG                ENDS
;代码段
CSEG                SEGMENT
        START:                MOV                DX,DSEG
                                MOV                DS,DX
                                MOV                AX,8191;假设的AX数值
                                MOV                CX,16                               
                NEXT:        SHR                AX,1
                                JNC                TJ
                                ADD                NUMBER,1
                TJ:                LOOP                NEXT                                       
                                MOV                AX,4C00H
                                INT                21H
CSEG                ENDS
                END                START


请问这个答案是否有错误,或者可以做更多优化。和大家交流~谢谢~
我已经经过调试,结果没有~

兰陵月 发表于 2016-12-15 13:02:35

@jun @康小泡 @~风介~ @人造人 @西电图图 @不二如是 {:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}

人造人 发表于 2016-12-15 13:30:57

兰陵月 发表于 2016-12-15 13:02
@jun @康小泡 @~风介~ @人造人 @西电图图 @不二如是 {:10_266: ...

你使用的编译器是?

兰陵月 发表于 2016-12-15 15:32:34

本帖最后由 兰陵月 于 2016-12-15 15:34 编辑

人造人 发表于 2016-12-15 13:30
你使用的编译器是?

{:10_262:}{:10_262:}
那个是调试时遗留的问题,忽略他吧

我修正了一楼的内容~~{:10_262:}

人造人 发表于 2016-12-15 17:55:20

兰陵月 发表于 2016-12-15 15:32
那个是调试时遗留的问题,忽略他吧

我修正了一楼的内容~~

;程序名:TT321.ASM
;功能:统计寄存器AX中置1位的个数。
;备注:第3章题目T3.21:请写一个程序片段统计寄存器AX中置1位的个数
ASSUME CS:CSEG, DS:DSEG
;数据段
DSEG SEGMENT
        NUMBER DB 0
DSEG ENDS

;代码段
CSEG SEGMENT
START:
        MOV DX, DSEG
        MOV DS, DX
        MOV AX, 8191 ;假设的AX数值
        MOV CX, 16                              
NEXT:
        test ax, 1
        jz ok
        inc NUMBER
ok:
        SHR AX, 1       
        LOOP NEXT
       
        MOV AX, 4C00H
        INT 21H
CSEG ENDS
END START

兰陵月 发表于 2016-12-16 11:10:44

人造人 发表于 2016-12-15 17:55


你这个答案确实好多了~
页: [1]
查看完整版本: 请写一个程序片段统计寄存器AX中置1位的个数