統計二進位制中1的個數(彙編)

2021-09-29 03:52:16 字數 895 閱讀 3463

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

統計二進位制中1的個數

題目 統計乙個無符號數中的二進位制表示中1的個數。此演算法名為平行計算法。基本思想如下 先兩兩 兩個二進位制位 分組統計每組出現的1的個數,而每組1的個數只可能是0個 00 1個 01 或2個 10 由 相加所得的 兩位的二進位制完全可以表示每組 兩個二進位制數 中1的個數 接著四四 4個二進位制位...

二進位制 二進位制中1的個數

題目 請實現乙個函式,輸入乙個整數,輸出該數二進位制表示中 1 的個數。例如,把 9 表示成二進位制是 1001,有 2 位是 1。因此,如果輸入 9,則該函式輸出 2。示例 1 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 0000000...

二進位制中1的個數 二進位制中0的個數

1 題目 實現乙個函式,輸入乙個整數,輸出該數二進位制表示中1的個數,例如把9表示成二進位制是1001,有2位是1。因此如果輸入9,該函式輸出2。2 解法 解法 一 可能會引起死迴圈的解法 基本思路 先判斷整數二進位制表示中最右邊一位是不是1。接著把輸入的整數右移一位,此時原理處於從右邊數起的第二位...