北京理工大学汇编实验五实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

该位置后字符依次前移
结束
源代码如下:
DATAS SEGMENT STR1 DB 'input strings:$' STR2 DB '1 to Delete 0 to insert:$' STR3 DB 'input string:$' STR4 DB 'address:$' BUF1 DB ? BUF2 DB ? A DB 11 DB ? DB 11 DUP('$')
LEA DX,BUF MOV AH,10 INT 21H 4、 字符串输出 字符串输出可由 DOS 9 号功能调用来完成,使用方法为: STRING DB ‘HELLO$’
LEA DX,STRING
MOV
AH,9
INT 21H C) 表的处理知识要点:
表的处理在实际数据处理中应用较为广泛,主要有排序、搜索、插入和删除等操作。有
□ 原理验证
实验类型: √ 综合设计
□ 自主创新
组 号:
同组搭档: 无
成 绩:
实验五 子程序设计实验(设计性实验)
一、实验要求和目的
1.熟悉汇编语言程序设计结构; 2.熟悉汇编语言子程序设计方法; 3.熟悉利用汇编语言子程序参数传递方法; 4.熟悉汇编语言字符串处理基本指令的使用方法; 5.掌握利用汇编语言实现字符串的输入输出程序设计方法; 6.掌握数制转换程序实现方法。
保护和恢复。 一般利用堆栈实现现场保护和恢复的格式:过程名 PROC [NEAR/FAR] PUSH AX PUSH BX . . PUSH DX . . . POP DX . . . POP AX RET 过程名 ENDP 4.子程序的参数传递方法 1. 寄存器传递参数 这种方式是最基本的参数传递方式。 2. 存储器单元传(变量)递参数
二、软硬件环境
1、硬件环境:计算机系统 windows; 2、软件环境:装有 MASM、DEBUG、LINK、等应用程序。
三、实验涉及的主要知识
A) 子程序知识要点: 1、 掌握子程序的定义语句;过 程名 PROC [near/far] 过程 体 RET 过程名 ENDP 2.子程序结构形式一个完整的子程序一般应包含下列内容: 1. )子程序的说明部分 在设计了程序时,要建立子程序的文档说明,使用户能清楚此子程序的功能和调用方法. 说明时,应含如下内容: .子程序名:命名时要名中见意. .子程序的功能:说明子程序完成的任务; .子程序入口参数:说明子程序运行所需参数及存放位置; .子程序出口参数:说明子程序运行结果的参数及存放位置; .子程序所占用的寄存器和工作单元; .子程序调用示例; 2、 )掌握子程序的调用与返回在汇编语言中,子程序的调用用 CALL,返回用 RET 指令 来完成。 .段内调用与返回:调用子程序指令与子程序同在一个段内。因此只修改 IP; .段间调用与返回:调用子程序与子程序分别在不同的段,因此在返回时,需同时修改 CS:IP。 3.)子程序的现场保护与恢复 保护现场:在子程序设计时,CPU 内部寄存器内容的
一些常用的冒泡法、对分搜索法等需要掌握。
四、实验内容与步骤
1、 从键盘输入一串字符串(显示提示)到内存中,在该字符串的某一个指定位置,插入某一 字符或删除某一字符,并显示操作后的字符串。
程序流程图他如下:
插入
输入字符和位置 该位置后字符依次后移
插入该字符
开始 输入字符串 选择功能
删除
输入删除的位置
MOV AH,2
INT 21H
单个字符输出需要把要输出字符的 ASCII 码放在 DL 寄存器中。
3、 字符串输入
从键盘输入一串字符串可以利用 DOS 的 10 号功能调用来完成,使
用方法为:
BUF DB 50
;预定义可以输入的最大字符个数
DB ?
;实际输入字符个数,根据输入自动统计
DB 50 DUP (?) ;存放输入字符串数据缓冲区
DATAS ENDS
CODES SEGMENT ASSUME CS:CODES,DS:DATAS
START: main proc far
MOV AX,DATAS MOV DS,AX
LEA DX,STR1 CALL output LEA DX,A MOV AH,10
INT 21H
;输入字符串保存在
JZ insert
本科实验报告
实验名称:
子程序设计实验
课程名称: 课程设计(CPU 与汇编) (实验) 任课教师: 马永锋 实验教师: 苏京霞 学生姓名: 朱贺 学号/班级: 1120121427/05411202 学 院: 信息与电子学院 专 业: 电子科学与技术
实验时间: 2014.11.2 实验地点: 10-102
这种方法是在主程序调用子程序前,将入口参数存放到约定的存储单元中;子程序运行时 到约定存储位置读取参数;子程序执行结束后将结果也放在约定存储单元中。
3. 用堆栈传递参数பைடு நூலகம்利用共享堆栈区,来传递参数是重要的的方法之一。
B) 字符、字符串输入输出知识要点: 在实际应用中,经常需要从键盘输入数据并将结果等内容显示到屏幕上,方便程序控制及 查看结果。汇编语言的数据输入和输出分成两类,一是单个字符数据的输入输出,一是字符串 数据的输入输出。都可以通过 DOS 功能调用来实现,下面就分别介绍下用来实现数据输入输出 的功能调用的使用方法。 1、 单个字符输入
单个字符输入可以利用 DOS 的 1 号功能调用来完成,使用方法为:
MOV AH,1 INT 21H 这两条语句执行后,光标会在屏幕上闪烁,等待输入数据,输入的数据以 ASCII 码 形式存储在 AL 寄存器中。 2、 单个字符输出 单个字符输出可利用 DOS2 号功能调用来完成,使用方法为: MOV DL,’?’
A中
JNZ delete
call CR
insert:
LEA DX,STR2
call CR
CALL output;
LEA DX,STR3
MOV AH,01
CALL output
INT 21H
MOV AH,01
CMP AL,'0'
INT 21H
MOV BUF1,AL 字符
call CR LEA DX,STR4 CALL output MOV AH,01 INT 21H MOV BUF2,AL call CR call insert1 JMP L1 delete: call CR LEA DX,STR4 CALL output MOV AH,01 INT 21H MOV BUF2,AL 置 call CR call delete1
相关文档
最新文档