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...