彙編基礎練習題3:輸入字元‘3’,切出數值3,在利用2中的輸出子程式,將切出的數值3輸出。
阿新 • • 發佈:2018-12-10
彙編基礎練習題3:
輸入字元‘3’,切出數值3,在利用2中的輸出子程式,將切出的數值3輸出。
編譯工具:Masm for Windows 整合實驗環境2012.5
(附帶一個工具下載地址https://download.csdn.net/download/qq_36931762/10825773
有需要可以去下載)
程式碼思路:
由鍵盤輸入一個字元,然後此時AL記憶體的是‘3’,即ASCII碼為51,那麼要將AX中的數變為數字3,即AL中的數減去48,即AL中的數為3,然後將AH中的數賦值為0!,然後輸出AX,完成題目。
---------------------------------------------可愛的程式碼區別線----------------------------------
DATAS SEGMENT ;此處輸入資料段程式碼 DATAS ENDS STACKS SEGMENT ;此處輸入堆疊段程式碼 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX MOV AH,1 INT 21H SUB AL,48 MOV AH,0 CALL PRINTAX MOV AH,4CH INT 21H PRINTAX PROC ;列印AX內的數的函式 PUSH BX PUSH CX PUSH DX MOV BL,10 MOV CL,0 CMP AX,10 JB PRINTF W: DIV BL PUSH AX INC CL MOV AH,0 CMP AX,0 JA W p: POP DX DEC CL MOV DL,DH ADD DL,48 MOV AH,2 INT 21H CMP CL,0 JNE P POP DX POP CX POP BX RET PRINTF: MOV DL,AL ADD DL,48 MOV AH,2 INT 21H POP DX POP CX POP BX RET PRINTAX ENDP CODES ENDS END START
--------------------------------------------程式碼區別線----------------------------------
輸出結果:
看不懂歡迎提問啦,也歡迎提出我程式碼中的問題和提出程式碼優化方案,大家一起學習嘛。
原創看過隨手點個贊吧!(雖然我也不太知道點贊有啥用emmm給點鼓勵總是好的)嘻嘻