組合語言---判斷字元

跋扈洋發表於2021-01-01

配置環境

  1. 首先雙擊下載程式進行下載。(沒有安裝程式的,可以下載我為大家準備的安裝檔案。)
    不會安裝的可以看一下檔案

  2. 將debug.exe放入C盤(沒有debug的自行下載

  3. 開啟DOXBos
    在這裡插入圖片描述

  4. 將masm檔案放入D盤(沒有masm的自行下載

  5. 更改masm檔案為123(任意),在資料夾中建立檔案123.asm(任意)。

  6. 在DOXBos程式中 輸入mount C D:\123

  7. 輸入C:

  8. 開啟123.asm編寫程式

  9. 第6、7步可以省略,省略辦法見這篇文章,設定之後就不必每次都輸入

要求

從鍵盤輸入一個字元,判斷其是不是一個數字字元。如果是,則請輸出這個數字字元;如果不是,請輸出“這不是一個數字字元”的相應英文資訊。

編輯程式

DATA    SEGMENT
STRING DB 0DH,0AH,'This is not a digit!$'
DATA    ENDS
STACK   SEGMENT
    DB 50   DUP(?)
STACK ENDS
CODE    SEGMENT
    ASSUME CS:CODE,SS:STACK,DS:DATA
START:
        MOV AX,DATA
        MOV DS,AX
NEXT:   MOV AH,1
        INT 21H
        CMP AL,'0'
        JB  OUTPUT        ;低於0轉移(說明不是數字)
        CMP AL,'9'
        JA  OUTPUT        ;大於9轉移(說明不是數字)
        MOV AH,2          ;呼叫2號功能輸出字元
        MOV DL,AL
        INT 21H
        JMP EXIT
OUTPUT: MOV DX,OFFSET STRING
        MOV AH,9
        INT 21H
EXIT:   MOV AX,4CH
        INT 21H
CODE ENDS
    END START


執行程式

  1. masm 123.asm
    在這裡插入圖片描述如果出現錯誤根據提示進行更改

  2. link.123

  3. 執行123.exe

  4. 執行成功

  5. 反彙編(為了輸入方便,將123.exe改為1.exe,這點大家不用更改,維持你檔名即可)

debug 1.exe

然後用U命令

-u

得到反彙編結果

  1. 執行結果,檢視暫存器(T命令或者G命令)
    如果用T命令一步一步執行
    可以輸入
debug 1.exe
-r
-t
...
(直到得出結果)

如果用G命令全部執行

debug 1.exe
-G 076A:0018  ;(這裡是你想要執行到的程式地址)

後續

如果想了解更多物聯網、智慧家居專案知識,可以關注我的專案實戰專欄。
歡迎關注公眾號。
在這裡插入圖片描述

編寫不易,感謝支援。

相關文章