DATA SEGMENT
DATAS DW 100DH ;测试数据100D
DATA ENDS
STACK SEGMENT
DB 1000 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV CX,10H ;循环次数
MOV AX,0
LEA BX,DATAS
MOV DX,[BX] ;将数据段中的测试数据放到寄存器中
SIGN: ROL DX,1 ;不带进位的循环移位指令,这里可以使用其他移位指令
JNB NEXT ;若CF位为零则继续循环,若不为零则计数器加一
INC AX
NEXT: LOOP SIGN
ADD AX,30H ;0的ASCII码值为30H,dos 02号功能显示的是ascii码,不是图形
MOV DL,AL ;因为算法原因这里仅支持最多9位为1
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START