计算机组成原理-汇编语言实验一:系统的基本输入输出IO实验
请认真对待身边的每一件事情。
实验一:系统的基本输入输出IO实验
【实验目的】
- 对于基本汇编指令的了解
- 熟悉汇编的编译运行链接过程
- 熟悉dos功能调用
【实验内容】
汇编语言程序从写出到最终执行的简要过程:
1、编写汇编源程序,生成汇编源程序文件(.asm)
2、对源程序进行编译,产生目标文件(.obj)
3、对目标文件进行编译连接,生成可在操作系统中直接运行的可执行文件(.exe)
4、执行可执行文件中的程序
【需求分析】
- 程序能够实现对于用户的输入字符串存储以及输出的过程;
- 程序的输入的数据格式为一行数据;
- 程序的输出为刚刚输入的一组字符串,并且有提示;
【概要设计】
程序的主要实现代码:
DATAS SEGMENT
;此处输入数据段代码
STRING DB 13,10,'PLEASE INPUT A STRING',13,10,'$'
STRING1 DB 13,10,'YOUR INPUT STRING WAS',13,10,'$'
BUFFER DB 10 DUP(?)
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
;提示 输入一个字符串
MOV AX,DATAS
MOV DS,AX
LEA DX, STRING
MOV AH,9 ;输出字符串
INT 21H
MOV AX,DATAS
MOV DS,AX ;数据端段基地址
mov bx,offset BUFFER
NEXT:
MOV AH,1
INT 21H
CMP AL,' ' ;和空格相比较
JZ OUT_ALL ;相等就输出全部
MOV [BX],AL ;否则就保存
INC BX
JMP NEXT
OUT_ALL:
mov byte ptr [bx],'$'
MOV AX,DATAS
MOV DS,AX
LEA DX,STRING1
MOV AH,9 ;输出字符串
INT 21H
MOV DL,13 ;回车
MOV AH,2
INT 21H
MOV DL,10 ;换行
MOV AH,2
INT 21H
EXIT:
MOV AX,DATAS
MOV DS,AX
LEA DX,BUFFER
MOV AH,9 ;输出字符串
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
【实验结果】
代码运行结果示例:
【实验总结】
- 现场处置问题能力有欠缺,当时给助教老师演示的时候没能把第一句话输出来,错误原因在于,我修改的程序代码是在桌面上,而运行的代码在D盘,所以一直没有调错成功,其实当时如果能静下心来想一想,一定能解决的。
- 对于一些事情一定要认真仔细一点。