想在匯編語言中判斷輸入是否為數字與 a 的組合,例如 1a、2a、20a 等。可透過 ASCII 碼判斷每個字元:先確認是否為數字('0' 至 '9'),若遇到 a 則進入下一個狀態,最後檢查是否為字串結束符號。
bool foo(char * ch) {
int s = 0;
while (true) {
if (s == 0) {
if (*ch >= '0' && *ch <= '9') continue;
if (*ch == 'a') s = 1;
else return false;
}
if (s == 1) return *ch == '\0';
ch++;
}
return false;
}
初學者可根據此狀態機思路,轉譯為匯編語言指令來實作。