汇编 |输入一个3位十进制数,与自己学号的后三位组成的十进制数进行比较,并输出较大的三位十进制数

输入一个3位十进制数,与自己学号的后三位组成的十进制数进行比较,并输出较大的三位十进制数。

;学号后三位为015
data segment
	msg db 'input num:',0dh,0ah,'$'
	mynum dw 015
	num dw ?
	bignum dw ?
	new db 0dh,0ah,'$'
	new1 db 'the bigger one is:',0dh,0ah,'$'
data ends

code segment
	assume cs:code,ds:data
start:
	mov ax,data
	mov ds,ax
	mov dx,offset msg		;输入提示
	mov ah,9
	int 21h
	mov ah,1			;处理输入的百位
	int 21h
	cbw
	sub ax,30h		;输入百位,要乘以100
	mov bx,100
	mul bx
	mov num,ax
	mov ah,1			;处理输入的十进制数,每输入一个字符就及时处理
	int 21h
	cbw
	sub ax,30h		;输入十位,要乘以10
	mov bx,10
	mul bx
	add num,ax
	mov ah,1
	int 21h
	cbw
	sub ax,30h		;输入的是个位
	add num,ax
	
	mov dx,offset new  	;回车换行
	mov ah,9
	int 21h
	mov dx,offset new1  	;最大数输出提示
	mov ah,9
	int 21h
	mov dx,offset new  	;回车换行
	mov ah,9
	int 21h
	
	mov ax,mynum
	cmp ax,num
	ja input
	mov ax,num	;将最大数存在ax中,然后input输出
	jmp input


;较大的三位数字,输出
input:
	mov bx,100
	div bx		;输出百位
	mov bx,dx              ;保存好余数
	mov dl,al
	add dl,30h
	mov ah,2
	int 21h

	mov ax,bx	;除以100后的余数在bx中
	mov bl,10
	div bl
	mov bl,ah	;除10的余数,也就是个位数字
	mov dl,al
	add dl,30h
	mov ah,2
	int 21h		;输出十位

	mov dl,bl		;输出个位数
	add dl,30h
	mov ah,2
	int 21h
	
	mov ah,4ch
	int 21h
code ends
end start

最大测试数999,判断成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值