汇编多位数输入并显示到屏幕

DATAS SEGMENT
    ;此处输入数据段代码 
    x dw ?
    n dw 10 
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
    db 100h dup(?)
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
    mov bx,0
    
L1:
	mov ah,1
	int 21h	;AL=输入数字的ascii码
	cmp al,0dh ;0dh是回车
	jz L2
	sub al,30h	
	mov ah,0
	xchg bx,ax
	mul n
	add bx,ax
	jmp L1
L2:
	MOV dl,0dh ;DL为回车
	MOV AH,2
	INT 21H		;dl=输出字符
	mov x,bx	;把输入的结果存到x
	mov ax,x
	mov bx,10
	mov cx,0
	mov dx,0
L3: 
	div bx	;ax被除数隐藏,bx为除数,dx存放余数 ax存放商
	push dx
	inc cx	
	cwd ;字转化为双字
	cmp ax,0 ;被除数不为0继续
	jnz L3
L4:
	pop dx
	add dl,'0'
	
	MOV AH,2
	INT 21H
	loop L4
	
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

 

你可能感兴趣的:(汇编)