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

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值