彙編問題,求高手指點

2021-03-05 09:22:00 字數 2751 閱讀 6661

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.但不一定管用 這是我的猜測 下面的是我在英文 上找到的解決方案 蹩...