彙編基礎練習題4:輸入字元‘1’、‘3’,得到數值13,在利用2中的輸出子程式,將得到的數值13輸出。
阿新 • • 發佈:2018-12-10
彙編基礎練習題4:
輸入字元‘1’、‘3’,得到數值13,在利用2中的輸出子程式,將得到的數值13輸出。
編譯工具:Masm for Windows 整合實驗環境2012.5
(附帶一個工具下載地址https://download.csdn.net/download/qq_36931762/10825773
有需要可以去下載)
程式碼思路:
由鍵盤輸入兩個字元,然後此時AL記憶體的是‘1’,即ASCII碼為49,那麼要將AX中的數變為數字3,即AL中的數減去48,即AL中的數為1,先存好這個數字1然後輸入第二個字元3,同樣方法,使1和3在AX中以13(十三)形式存在,然後輸出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 BH,AL MOV AH,1 INT 21H SUB AL,48 MOV BL,AL MOV AL,BH MOV AH,0 MOV BH,10 MUL BH ADD AL,BL CALL PRINTAX MOV AH,4CH INT 21H PRINTAX PROC 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給點鼓勵總是好的)嘻嘻