永发信息网

用masm611编辑器,编写一个程序,记录某个字存储单元数据中的1的个数,以十进制形式显示结果

答案:2  悬赏:0  手机版
解决时间 2021-04-28 10:00
  • 提问者网友:星軌
  • 2021-04-27 22:48
用masm611编辑器,编写一个程序,记录某个字存储单元数据中的1的个数,以十进制形式显示结果
最佳答案
  • 五星知识达人网友:白昼之月
  • 2021-04-27 23:43
datas segment
num dw 1010011000111001B
msg db 'num of 1s:$'
datas ends

codes segment
assume cs:codes,ds:datas
start:
mov ax, datas
mov ds, ax
mov bx, num
xor cx, cx
next:
shl bx, 1
jz ok
jc ones
jmp next
ones:
inc cx
jmp next
ok:
jnc next2
inc cx
next2:
mov ah, 9
lea dx, msg
int 21h
mov ax, cx
call show
mov ax, 4c00h
int 21h

show:
mov cx, 10
cmp ax, 0
jle done
div cl
push ax
xor ah, ah
call show
pop dx
mov dl, dh
or dl, 30h
mov ah, 2
int 21h
done:
ret
codes ends
end start
全部回答
  • 1楼网友:举杯邀酒敬孤独
  • 2021-04-28 00:55

思路就是逐位左移,并判断CF标志是否为1,是则将累加器增1.以十进制显示结果就是除以10取余

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯