1樓:
迴圈體中沒有修改al的值的指令,所以會構成死迴圈。
增加dec al後,還是死迴圈。這是因為2號功能會修改al中的內容,將al中的值變成2號功能顯示的字元的ascii碼21h,這樣就會把剛才輸入的資料覆蓋掉,從而變成死迴圈。要把輸入的值放另一個暫存器中存放。
但是這樣修改之後還是得不到正確的結果。這是因為1號功能讀入的是字元的ascii碼,按「5」的話,得到的是35h。所以要在cmp之前,將al中的內容變成數值。
所以程式這麼修改:
code segment
assume cs:code
start: mov ah,01h
int 21h
and al,0fh
mov cl,al
again: mov dl,21h
mov ah,02h
int 21h
dec cl
cmp cl,0
jnz again
mov ax,4c00h
int 21h
code ends
end start
這樣修改之後,能夠實現從鍵盤輸入一位1~9的數,輸出相應個數的「!」。但是如果是0,就會輸出256個「!
」。如果想實現從鍵盤輸入一位0~9的數,輸出相應個數的「!」,就應該再增加一個比較:
code segment
assume cs:code
start: mov ah,01h
int 21h
and al,0fh
mov cl,al
again:
cmp cl,0
je stop
mov dl,21h
mov ah,02h
int 21h
dec cl
cmp cl,0
jnz again
stop:
mov ax,4c00h
int 21h
code ends
end start
有一道數學題我不會做有一道數學題我不會做
各位天才 復,不用複雜的計算的 由於總制容量都沒有 bai變化,只是甲杯中du摻雜了一 zhi些椰汁,dao乙杯中摻雜了一些橙汁,它們的數量是相同的。如果需要計算實際交換了多少的話,計算一個即可。乙杯中橙汁含量 也就是甲杯中椰汁的含量 是 400 50 400 50 400 9克 50 400 50...
c 有一道題困擾了我好久,求解釋
答案是c a和b一樣 d需要初始化因為沒給陣列長度 選ca是指標陣列 含兩個元素 不能令p a int a 類比int m 5 不能令m 5 此時p,m為常量,代表地址只能被引用 b,錯誤 c是指向 含兩個元素 陣列的指標,即行指標,只能令q a int a 任意 2 必須為2 q b int b ...
我有一道數學題不會怎麼辦,我有一道數學題不會做怎麼辦
設三班植樹x,可以列方程 x 2x x 20 180 得出x等於40,所以三班植樹40棵,一班80,二班20 三元一次方程 每個班各植樹x,y,z 依題意,則 x 2z y 20 z x y z 180 求x,y,z就行了 二班的加20棵後 跟三班一樣 一班是個2個三班 三班是一個三班 也就是說 1...