您的位置:首页 > 其它

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

2018-12-29 23:14 441 查看

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

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐