給定乙個數,求該數的補數
程式執行:
mov ax,datas ;初始化ds
mov ds,ax
;輸出原始的num
lea dx,outputnum
mov ah,9
int 21h
mov bl,n
xor bh,bh
dec bx
os:mov al,num[bx]
call hexidemical
dec bx
cmp bx,0
jge os
mov dl,'h'
mov ah,2
int 21h
;求補mov cl,n ;將num的位元組數移至cx
xor ch,ch
cmp cx,0 ;判斷位元組數是否為0
jz no_operate ;若為0,跳轉
lea bx,num ;取num的偏移位址
mov ah,0 ;ah清零
s:xor al,al ;al設定0
sahf ;恢復上一次減法的標誌位
sbb al,[bx] ;帶位減法,求補
lahf ;儲存標誌位
mov [bx],al ;求補的值儲存在原始的位置
inc bx ;移至下乙個單元
loop s
;輸出求補的num
lea dx,outputnumc
mov ah,9
int 21h
mov bl,n
xor bh,bh
dec bx
s1:mov al,num[bx]
call hexidemical
dec bx
cmp bx,0
jge s1
mov dl,'h'
mov ah,2
int 21h
no_operate:
retmain endp
hexidemical proc near
push ax
push cx
push bx
xor ah,ah
mov bl,16
div bl
mov cx,ax
mov dl,cl
cmp dl,10
jb next
add dl,7
next:
add dl,30h
mov ah,2
int 21h
mov dl,ch
cmp dl,10
jb next1
add dl,7
next1:
add dl,30h
int 21h
pop bx
pop cx
pop ax
rethexidemical endp
codes ends
end main
求乙個數約數的個數
求約數的個數 計算乙個整數的約數個數 輸入格式 輸入乙個整數 輸出格式 輸出一行,為輸入整數的約數的個數 樣例輸入 10 樣例輸出 4ac import math number int raw input count 0 sqrt float math.sqrt number if number s...
組合語言(二十二)之統計減去奇數的個數
輸入乙個正數,該數減去遞增奇數 從1開始 直至小於等於零為止,計算該數減去奇數的個數 程式執行 mov ax,datas 初始化ds mov ds,ax 輸入a提示 lea dx,inputnum mov ah,9 int 21h 輸入a lea dx,num string mov ah,10 in...
求乙個數中1的個數
碰到遇到乙個有趣的題,求乙個數二進位制的表示中1的個數,該題有兩種解法,一種是使用短除法將該數直接轉化為二進位制數,另一種比較巧妙的演算法是使用與運算,原理如下圖所示 依照此種思入有如下演算法 int numberof1 solution3 int i return count 依照短處法的思路 有...