统计寄存器AX中1 的个数

 1 ;====================================
 2 ; 统计寄存器AX中1 的个数
 3 DATAS segment
 4 
 5 DATAS ends
 6 
 7 CODES segment
 8 START:
 9     mov AX,DATAS
10     mov DS,AX
11     ;正式代码部分
12     mov  AX,1001111011B ;2进制数7个1
13     mov  CX,0   ;CX置为0
14     mov  CH,16  ;记录当前操作的第几位数字
15 NEXT:
16     test AX,0001H;让...0001与AX进行 与 运算
17     JZ isZero   ;如果为0继续循环判断下一个
18     inc  CL     ;自增1
19 
20 isZero:
21     dec  CH     ;高位-1
22     JZ   EXIT   ;if(CH=0)则跳转到EXIT
23     SHR  AX,1   ;逻辑右移1位
24     JMP  NEXT
25 EXIT:
26     count db ?,'$';向屏幕打印输出结果
27     add cl,30H
28     mov count,cl
29     Lea dx,count
30     mov AH,09   ;09号功能调用
31     INT  21H    
32 
33     mov  AL,0   ;置退出码
34     mov  AH,4CH ;置功能调用号
35     INT  21H    ;软中断指令:实施功能调用
36 CODES ends
37     end START

 

转载于:https://www.cnblogs.com/roseAT/p/10239601.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值