北工大汇编——循环程序设计

题目要求

用循环程序,显示乘法表。要求输入 0-10 之间的数值a,显示1-a值的乘法表

北工大汇编——循环程序设计_第1张图片

程序代码

DATAS SEGMENT
    ;此处输入数据段代码 
    msg db 0ah, 0dh, "please input 1-10: $"
    strMul db "*", '$'
	strEqu db "=", '$'
	strSpace db " ", '$'
    newline db 0ah, 0dh, "$"  
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
	MOV AX,DATAS
	MOV DS,AX
	;此处输入代码段代码
	mov ah, 9
	lea dx, msg
	int 21h
	
	mov ah, 1
	int 21h
	
	cmp al, '1'
	jb invalidInput
	cmp al, '9'
	ja invalidInput
	
	sub al, '0'
	
	mov bl, al
	
	mov cl, 1
	mov ch, 1
	
	outter:
	
	MOV DL, 0DH ;回车换行
	MOV AH, 02
	INT 21H
	MOV DL, 0AH
	MOV AH, 02
	INT 21H
	
		innner:
		mov ah, 2
		mov dl, ' '
		int 21h
		
		add dl, cl
		add dl, 16
		int 21h
	
		mov dl, 'x'
		int 21h
		
		mov dl, ch
		add dl, '0'
		int 21h
		
		mov dl, '='
		int 21h
		
		mov al, cl
		mul ch
		mov dl, 10
		div dl
		mov dl, al
		mov dh, ah
		mov ah, 2
		add dl, '0'
		int 21h
		mov dl, dh
		add dl, '0'
		int 21h
		
		inc cl
		cmp cl, ch
		jle innner
	
	inc ch
	mov cl, 1
	cmp ch, bl
	jle outter
	
	mov ah, 4ch
	int 21h
	
	invalidInput:
	mov ah, 9
	lea dx, newline
	int 21h
	
	mov ah, 9
	lea dx, msg
	int 21h
CODES ENDS
    END START



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