1. 程式人生 > >彙編基礎練習題4:輸入字元‘1’、‘3’,得到數值13,在利用2中的輸出子程式,將得到的數值13輸出。

彙編基礎練習題4:輸入字元‘1’、‘3’,得到數值13,在利用2中的輸出子程式,將得到的數值13輸出。

彙編基礎練習題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給點鼓勵總是好的)嘻嘻