欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

河北专接本微机原理编程题————再DA1开始的4个单元存放着一个32位数,求出其中“1”的个数,并存入count单元

程序员文章站 2022-03-10 08:22:48
...
DATA1 SEGMENT 
DA1   DD 00000003H
COUNT DB ?
DATA1 ENDS
CODE SEGMENT 
     ASSUME CS:CODE,DS:DATA1
START:
      MOV AX,DATA1
      MOV DS,AX
      MOV SI, OFFSET DA1;把DA1的有效低地址给SI
      MOV BL,0      ;BL置0,做累加器
      MOV BH,8     ;控制对字节单元的循环8次
       MOV CX,4    ;接下来对一个一个的字节变量操作双字所以循环4次
A2:     
      MOV AL,BYTE PTR[SI];把字节数据放AL
A1:      
      ROR AL,1  ;循环右移,最末尾移到CF和最高位
      JNC L1    ;CF不等于1跳
      INC BL
      
L1:   
      DEC BH   ;控制AL循环8次
      JNZ A1   ;循环8次完了,BH为0了跳出循环,然后SI加一下一个字节单元
      INC SI  
      LOOP A2  
     MOV COUNT,BL
       MOV DL,BL
      OR DL,30H
      MOV AH,2
      INT 21H
      MOV AH,4CH
      INT 21H
      CODE ENDS
           END START

相关标签: 笔记