这个 汇编语言什么意思
1个回答
展开全部
; 这个程序的任务是计算AX中的数用二进制数表示时,其中1的个数
MOV AX, 1230H ; 先给AX一个初值。
MOV CL, 0 ; CL寄存器被用来作为1的个数的计数器,这里先初始化为0
START:
AND AX, AX ; AX中数据与自身进行“与”运算,用来设置ZF标志位。若是全零,则ZF=1
JZ STOP ; 如果AX中的1已经全部被移出,剩下的全是零,则跳出循环到STOP结束
SAL AX, 1 ; 对AX中数左移一位,最高位移出后存在CF里,右边补0
JNC GOGO ; 如果移到CF中的是0, 则跳到GOGO,不对CL计数操作
INC CL ; 移到CF中的是1,CL计数加1
GOGO:
JMP START ; 跳转到循环入口
STOP:
HLT ;停机
这个程序循环完成时,AX中内容全是0, CL是原来初始数据中1的个数。
所以:
CL=4 , AX=0
MOV AX, 1230H ; 先给AX一个初值。
MOV CL, 0 ; CL寄存器被用来作为1的个数的计数器,这里先初始化为0
START:
AND AX, AX ; AX中数据与自身进行“与”运算,用来设置ZF标志位。若是全零,则ZF=1
JZ STOP ; 如果AX中的1已经全部被移出,剩下的全是零,则跳出循环到STOP结束
SAL AX, 1 ; 对AX中数左移一位,最高位移出后存在CF里,右边补0
JNC GOGO ; 如果移到CF中的是0, 则跳到GOGO,不对CL计数操作
INC CL ; 移到CF中的是1,CL计数加1
GOGO:
JMP START ; 跳转到循环入口
STOP:
HLT ;停机
这个程序循环完成时,AX中内容全是0, CL是原来初始数据中1的个数。
所以:
CL=4 , AX=0
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询