data segment
str db 'the result is:$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov dx,offset str
mov ah,09h ;輸出字符串的功能,但是使用前必須將字符串的地址放到dx中 lea dx str 或者 mov dx,offset str
int 21h
mov ax,0ffffh ;初始化
mov cx,16 ;循環變量
mov dl,0 ;統計1的個數
next:
rol ax,1 ;循環左移
jnc next1 ;表示cf=0,則跳轉到next1
inc dl ;計數
next1:
dec cx
jnz next
mov al,dl
aam ;調整
push ax ;先將這個ax的值保存在棧中
mov dl,ah ;查看高位的值
add dl,30h ;數字+30h編程字母 0的ASCII碼30h
mov ah,02h ;ah放2,是2號功能,字符輸出,並且要輸出的字符是已經放在dl裏面的
int 21h
pop ax
mov dl,al
add dl,30h
mov ah,02h
int 21h
code ends
end start