计算机组成原理-汇编语言实验一:系统的基本输入输出IO实验

 请认真对待身边的每一件事情。

实验一:系统的基本输入输出IO实验

【实验目的】

  1. 对于基本汇编指令的了解
  2. 熟悉汇编的编译运行链接过程
  3. 熟悉dos功能调用

【实验内容】

汇编语言程序从写出到最终执行的简要过程:

1、编写汇编源程序,生成汇编源程序文件(.asm)

2、对源程序进行编译,产生目标文件(.obj)

3、对目标文件进行编译连接,生成可在操作系统中直接运行的可执行文件(.exe)

4、执行可执行文件中的程序

【需求分析】

  1. 程序能够实现对于用户的输入字符串存储以及输出的过程;
  2. 程序的输入的数据格式为一行数据;
  3. 程序的输出为刚刚输入的一组字符串,并且有提示;

【概要设计】

程序的主要实现代码:
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

【实验结果】

       代码运行结果示例:计算机组成原理-汇编语言实验一:系统的基本输入输出IO实验

【实验总结】

  1. 现场处置问题能力有欠缺,当时给助教老师演示的时候没能把第一句话输出来,错误原因在于,我修改的程序代码是在桌面上,而运行的代码在D盘,所以一直没有调错成功,其实当时如果能静下心来想一想,一定能解决的。
  2. 对于一些事情一定要认真仔细一点。