彙編作業 輸入數字字元得到對應數值

2021-10-09 23:22:26 字數 1618 閱讀 7193

編寫程式,從鍵盤輸入數字字元(例如『1』『2』『6』『a』),在程式中得到對應的數值(126),在利用1中的輸出功能,將得到的數值輸出顯示。

需要注意的是,可能輸入的第乙個字元就不是數字,這時候直接輸出0

**分兩半,一半是輸入(乘10+下一位求出輸入數字),一半是輸出(除10,餘數入棧;出棧),

datas

segment

;此處輸入資料段**

datas

ends

stacks

segment

;此處輸入堆疊段**

stacks

ends

codes

segment

assumecs:

codes,ds

:datas,ss

:stacks

start

:movax,

datas

movds,ax

; 數值儲存

movbx,

0; 倍數儲存

movcl,

10; 輸入

movah,

1int 21h

; 和0比較

cmpal,

'0'jb

l3; 和9比較

cmpal,

'9'ja

l3; 暫存輸入

movbl,

alsubbl,

48l2

:; 輸入

movah,

1int 21h

; 和0比較

cmpal,

'0'jb

l3; 和9比較

cmpal,

'9'ja

l3; 暫存輸入

movdl,

alsubdl,

48; 將cl移到al中做乘法

moval,

bl; 除數賦值

movcl,

10; 乘法

mulcl; 將al取出

movbx,

axmovdh,

0; 加暫存輸入

addbx,

dx; 繼續輸入

jmpl2l3

:; 存數字

movax,

bx; 計數器

movbh,

0; 除數賦值

movcl,

10l0

:; 除法

divcl; 入棧

push

ax; 將ah置0

movah,0

; 計數器加1

addbh,1

; 如果商大於0

cmpal,0

; 跳轉 用ax(商)繼續做除法

jal0l1

:; 否則 開始輸出

popdxmovdl,

dhadddl,

48movah,

2int 21h

; 計數器減1

subbh,1

; 做判斷

cmpbh,

0; 大於0

jal1

movah

,4ch

int 21h

codes

ends

endstart

只有數字字元的使用者輸入

當介面上要使用者輸入只有數字的字元時,預設的 textbox 是不能勝任的,網上有很多們提供了很多的做法,我總結了一下寫了乙個在 c 下的實現,做到了如下的幾點 1 只能輸入類似這樣的字元 123456.789 1234.789 2 在輸入的字串中不能存在兩個點符 12456.78 正確 12.45...

JS 遮蔽非數字字元的輸入

為了避免無效資料的另一種方法是在使用者錄入資料時 對無效輸入進行遮蔽,例如在輸入銀行卡號時,要求使用者必須輸入數字,當使用者輸入非數字字元是,給出提示。下面給出 以上 中 is number 函式 用於遮蔽非數字字元的輸入。函式中,通過event 物件 的屬性 得到按下 鍵 的 unicode 編碼...

組合語言(十一)之統計非數字字元個數

輸入以 結尾的字串,統計並輸出非數字字元的個數 程式執行 mov ax,datas 初始化ds mov ds,ax lea si,inputprompt 輸出輸入提示 mov ah,2 mov cx,inputpromptlen 輸出輸入提示的字串長度 s2 mov dl,si int 21h 輸出...