汇编基础练习题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给点鼓励总是好的)嘻嘻

猜你喜欢

转载自blog.csdn.net/qq_36931762/article/details/84886948