中易网

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

答案:2  悬赏:60  
解决时间 2021-04-28 03:21
  • 提问者网友:wodetian
  • 2021-04-27 04:20
用汇编语言编写源程序
最佳答案
  • 二级知识专家网友:爱情是怎么炼成的
  • 2021-04-27 05:13
Code Segment
Assume CS:Code,DS:Code
; -------------------------------------
; 功能:把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示屏显示
; 入口:AX=二进制数
; 出口:在当前光标位置显示转换后的ASCII码数字
Dec_ASCII Proc Near
push dx
push bx
push di
mov bx,10
lea di,@@Temp_Save[6]
mov byte ptr [di],'$'
dec di
cld
@@Divide: xor dx,dx
div bx
or dl,30h
mov [di],dl
dec di
test ax,0ffffh
jnz @@Divide
inc di
push di
pop dx
mov ah,9
int 21h
pop di
pop bx
pop dx
ret
@@Temp_Save db 7 dup(?)
Dec_ASCII EndP
; -------------------------------------
Start: push cs
pop ds
lea bx,Exit_Proc ;取标号Exit_Proc地址
shr bx,1 ;除以2
mov bx,[bx] ;取指定位置的字数据
mov cx,16 ;字数据,16位
xor ax,ax ;计数器置0,准备计数
clc ;进位标志位复位
@@Counting: shl bx,1 ;左移1位
jnc $+3 ;没有进位,下次循环
inc ax ;有进位,计数
loop @@Counting
call Dec_ASCII ;把AX中的二进制无符号数转换成显式的十进制ASCII码,并送显示

屏显示
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start
全部回答
  • 1楼网友:茫然不知崩溃
  • 2021-04-27 06:46
datas segment num dw 1010011000
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息