2016-05-12 85 views
0

我正在編寫一個簡單的程序,它將兩個數字加在一起並給出它們的平均值。我的麻煩在於師。我設置bl = 2,然後用它分成具有正確整數的ax寄存器,但我似乎無法得到正確的答案。例如,當我將8除以2時,我在al寄存器中得到1c。劃分彙編問題

mov dl, bl  
add dx, 30h; two user entered numbers add together and converted 
mov ah, 2h 
int 21h 

;mov dx, 0h 
mov ax, dx ; 
mov bl, 2 
div bl ; al, ah for results 

回答

7

您加入30hdx,所以你將38h,不8。和38h/2 == 1Ch。作爲一個方面說明,在特殊情況下,你除以2的冪(如2,4,8,16等),你可以通過將log2(除數)位移動到相反。在這種情況下,將是shr ax, 1(或sar ax, 1,如果您想將ax作爲有符號的數字)。