1樓:
data segment
buff_size db 128
buff_used db 0
buff db 128 dup(0)
rlt db 0dh,0ah,"result:00$"
data ends
code segment
assume cs:code,ds:datastart:
mov ax, data
mov ds, ax
mov es, ax
;輸入mov ah,0ah
mov dx,0
int 21h
;轉換mov ax,0
mov cx,0
mov cl,buff_used
mov bx,10
lea si,buff
cal1:
mul bx
mov dl,[si]
sub dl,30h
add al,dl
adc ah,0
inc si
loop cal1
;統計mov dx,0
mov cx,16
cal2:
shr ax,1
adc dl,0
loop cal2
;輸出mov ax,dx
div bl
add ax,3030h
mov [rlt+9],al
mov [rlt+10],ah
lea dx,rlt
mov ah,9
int 21h
; wait for any key....
mov ah, 8
int 21h
mov ax, 4c00h
int 21h
code ends
end start
除錯通過,純8086指令
2樓:永星天恆
已測試,兩個測試結果結果如圖所示
.386
data segment use16buf1 db 6
db ?
db 6 dup(?)
buf2 db 0
str1 db 0dh,0ah,'$'
data ends
stack segment use16 stackdb 200 dup(0)
stack ends
code segment use16
assume ds:data, cs:code, ss:stack
start:
mov ax, data
mov ds, ax ;資料段段首址存入dslea dx, buf1
mov ah, 10
int 21h ;輸入數字lea dx, str1
mov ah, 9
int 21h ;回車換行xor ch, ch
mov cl, buf1[1] ;把輸入數字的位數存入cxmov ebx, 10
xor eax, eax ;eax清零xor edx, edx ;edx清零mov si, 2
;把輸入的字串轉化為數字,存入eax
l1: mov dl, buf1[si]sub dl, 30h
push edx
mul ebx
pop edx
add eax, edx
inc si
loop l1
;轉化結束
;以二進位制形式輸出eax中的值
mov cx, 32
l3: dec cx
shl eax, 1
test eax, 80000000h ;判斷eax最高位是否是0jz l3 ;eax最高位不是0則迴圈結束l2: shl eax, 1
jnc j1
push eax
mov dl, '1'
mov ah, 2
int 21h
pop eax
inc buf2 ;二進位制數中檢測到1,則buf2加1jmp j2
j1: push eax
mov dl, '0'
mov ah, 2
int 21h
pop eax
j2: loop l2
;輸出結束
lea dx, str1
mov ah, 9
int 21h ;回車換行
;輸出1的個數
mov bl, 10
xor ah, ah
mov al, buf2 ;buf2存入ax,即1的個數存入ax
div bl
mov cl, ah
cmp al, 0
je j3
mov dl, al
add dl, 30h
mov ah, 2
int 21h
j3: mov dl, cl
add dl, 30h
mov ah, 2
int 21h
mov ah, 4ch
int 21h
code ends
end start
OSPF配置問題,求網路高手指點
哥那個的通配服是32啊 00100000 在看看題目中網段 8 0001000 13 0001101 29 00011101 前三位是必須為0的才能匹配啊 c的萬用字元0011111意思是掩碼的前兩位必須匹配後面任意 他包括了第三位是0和1 b 是001000 他確定了第三位是1 肯定 所以不行啊 ...
Excel問題,求公式,如圖,求高手指點,謝謝
選擇c g列,在條件格式中,以公式建立規則,輸入 and c1 b1,c1 格式選擇填充色,即可。詳見附圖 僅僅用bai 公式du操作不 zhi了的,dao可以參專 考這個屬 excel問題,求公式,如圖所注 求高手指點,謝謝 是不是說把j列的從右側l到p依次抽出來放在l列,其餘保留原左到右的順序?...
電腦問題 高手指點
監視功能出錯 可能是主機板的監控功能引起的 1.超頻。溫度過高 2.電壓不穩。換個效能好的試試。3.某些被監控的硬體檢測失敗 4.電源設定錯誤,進入電源設定選單檢視詳細情況。5.把bios中的half on 設定為all error.但不一定管用 這是我的猜測 下面的是我在英文 上找到的解決方案 蹩...