求取使用者輸入的字母的字首和字尾(帶合法性的判定)

2021-10-13 07:29:21 字數 1282 閱讀 1918

assume cs:codesg,ds:data

data segment

# 提示資訊

prompt db 0dh,0ah,

'input a lowercase letter:$'

# 錯誤處理資訊

err db 0dh,0ah,

'input error.$'

# 字首

buf db 0dh,0ah,

'prev:'

prev db 20h

# 字尾

db 0dh,0ah,

'succ:'

succ db 20h

db 0dh,0ah,

'$'data ends

codesg segment

start:

# 將資料段的位址的傳遞給ds

mov ax,

data

mov ds,ax

input: # 輸出提示資訊

lea dx,prompt

# 呼叫9命令輸出

mov ah,09h

int 21h

# 獲取使用者的資料

mov ah,01h

int 21h

# 合法性判斷

cmp al,

'a' jb error

cmp al,

'z' ja error

# 正常的情況下,就計算前導字母

# 求出前導,然後判定二者之間的關係

mov bl,al

dec bl

cmp bl,

'a'# 如果字首不是字母,就跳過,求字尾

jb skip1

# 將字首移動到目標記憶體中

mov prev,bl

skip1: # 求字尾字母

inc al

# 判定字尾字母是否為字母

cmp al,

'z'

ja skip2

mov succ,al

skip2: # 後繼非字母,跳過,然後進行退出

lea dx,buf

mov ah,09h

int 21h

jmp exit

error: # 異常處理

lea dx,err

mov ah,09h

int 21h

jmp exit

exit: mov ah,4ch

int 21h

codesg ends

endstart

讀取使用者的輸入

我們如何讀取使用者的鍵盤 控制台 輸入呢?從鍵盤和標準輸入 os.stdin 讀取輸入,最簡單的辦法是使用 fmt 包提供的 scan 和 sscan 開頭的函式。請看以下程式 從控制台讀取輸入 package main import fmt var firstname,lastname,s str...

Go語言讀取使用者的輸入

例題func getmsg msg string return 簡要概括 reader 是乙個指標,因為bufio.newreader 建構函式的介面是 func newreader rd io.reader reader reader,從這裡可以看出 1.reader bufio.newreade...

遞增的字首和字尾的區別

字首 出現在其作用的變數前 字尾 出現在其作用的變數後 從下面的結果可以看出對輸出沒有影響,效果等同於 super super 1 ultra ultra 1 include intmain void getchar return0 輸出顯示結果 super 1,ultra 1 super 2,ul...