汇编基础练习题13:在数据区定义一个字型变量a1,a1中有10个元素,利用7中的输入子程序输入10个整数,然后把这些整数依次存放到数据区的a1变量中。

汇编基础练习题13:

在数据区定义一个字型变量a1,a1中有10个元素,利用7中的输入子程序输入10个整数,然后把这些整数依次存放到数据区的a1变量中。

编译工具:Masm for Windows 集成实验环境2012.5
(附带一个工具下载地址https://download.csdn.net/download/qq_36931762/10825773
有需要可以去下载)
代码思路:

   ---------------------------------------可爱的代码区别线----------------------------------
DATAS SEGMENT
    ;此处输入数据段代码
    a1 DW 10 DUP(0)
DATAS ENDS

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

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
	MOV BX,0
	MOV SI,OFFSET A1
MCIN:	
	CMP BX,20
	JE MEN
    CALL PIN
    MOV [SI+BX],AX
    ;输出回车部分,回车表示那个退格
    MOV DL,0DH
    MOV AH,02H
    INT 21H
    MOV DL,0AH;输出换行
    MOV AH,02H
    INT 21H
    MOV AX,[SI+BX]
    CALL PRINTAX
    ADD BX,2
     ;输出回车部分,回车表示那个退格
    MOV DL,0DH
    MOV AH,02H
    INT 21H
    MOV DL,0AH;输出换行
    MOV AH,02H
    INT 21H
    JMP MCIN 
MEN:
    MOV AH,4CH
    INT 21H

PIN PROC

	PUSH BX
	PUSH CX
	PUSH DX
	MOV CX,0
    MOV DL,10
CIN:    
    MOV AH,1
    INT 21H
    SUB AL,48
    MOV AH,0
    MOV BX,AX
    MOV AX,CX
    CMP BX,9
    JA EN
    CMP BX,0
    JB EN
    MUL DL
    ADD AX,BX   
    MOV CX,AX
    JMP CIN
EN:
	POP DX
	POP CX
	POP BX
	RET

PIN ENDP
    
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/85346154
今日推荐