汇编语言第6章
- 格式:ppt
- 大小:766.50 KB
- 文档页数:48


计算机科学系实验报告(首页)
一、实验目的:掌握寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址的使用
二、实验内容、程序清单及运行结果
(1)将课程中讲解过的程序上机调试,用Debug跟踪其执行过程,并在过程中进一步理解所讲的内容。
a.在code段中填写代码,将data中的第一个字符串转化为大写,第二个字符串转化为小写。
assume cs:code,ds:data
data segment
db ‘BaSiC’
db ‘iNfOrMaTion’
data ends
code segment
start:
code ends
end start
b.编程,将data段中的每个单词改为大写字母。
assume cs:code,ds:stack
data segment
db ‘ibm ‘
db ‘dec ‘
db ‘dos ‘
db ‘vax ‘
data ends code segment
start:
code ends
end start
(2)编程,将data段中每个单词的前4个字母改为大写字母。
assume cs:code data segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start:
code ends
end start
三、实验结论、实验体会
做实验6后,掌握了用汇编语言进行大小写转化的方法;了解了and、or指令及寻址方式[bx(或si、di)+idata]、[bx+si(或di)]、[bx+si(或di)+idata]的意义和应用。
实 验 报 告
实验课程: 汇编语言
学生姓名: 李斯超
学 号: 6100409010
专业班级: 电三091班
2010年12月20日
目 录
实验1 利用DEBUG调试汇编语言程序段
实验2 初级程序的编写与调试实验(一)
实验3 初级程序的编写与调试实验(二)
实验4 汇编语言程序上机过程
实验5 分支程序实验
实验6 循环程序实验
实验7 子程序实验
实验1 利用DEBUG调试汇编语言程序段
一.实验目的
1.熟悉DEBUG有关命令的使用方法;
2.利用DEBUG掌握有关指令的功能;
3.利用DEBUG运行简单的程序段。
二.实验内容
1.进入和退出DEBUG程序;
2.学会DEBUG中的
1)D命令(显示内存数据D 段地址:偏移地址)
例1:-D100
2)E命令(修改指定内存)
例1:-E100 41 42 43 44 48 47 46 45
-D 100,L08
结果:08F1:0100 41 42 43 44 48 47 46 45
例2: -E 100:
08F1:0100 76 42 :42是操作员键入
此命令是将原100号内存内容76修改为42,用D命令可察看。
3)R命令(显示当前寄存器的内容)
4)T命令(设置陷井,单步执行)
5)A命令(将指令直接汇编成机器码输入到内存中。)
6)G命令等的使用(执行A命中输入的汇编指令)
3.用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。
四.实验环境
PC微机
第6章 数组应用
6.1 数组与数组元素
数组是由任何一种简单数据类型按照一定的组织规则构造出来的数据类型,是有序数据的集合。数组中可以包含很多个同类型的变量,我们把这些变量叫做“数组元素”或“数组分量”或“下标变量”。
在机器中数组占用一片连续的存贮单元,每个单元都用同样的名字(即数组名)但编号不同。数组的命名方式与简单(基本)变量命名方式相同。
假设有数组A,占据4个存储单元,元素在内存中的排列可形象表示出来:
A
A(1),A(2),A(3),A(4)
A(1,1),A(1,2),A(2,1),A(2,2)
每个单元的编号方式可以有多种,第一种用一个数字来编号称为一维数组,第二种用两个数字来编号称二维数组。可以推广,用N个数字对数组的元素编号则称为N维数组。
数组使用之前一定要说明,事先告诉机器数组的类型,包含分量的个数,分量的编号方式等,以便机器为数组预留内存空间。
6.1.1数组的说明
数组的说明应该包括以下几个方面的内容:
确定数组的名称;
确定数组元素的类型;
确定数组的结构(包括数组维数,每一维的取值范围等内容)。
说明语句的形式有:
(1) 类型说明语句:说明数组的类型和元素个数
类型标识符 数组名1 (维说明1[,维说明2,...])[,数组名2...]
(2) DIMENSION语句:只说明数组元素个数
DIMENSION 数组名1 (维说明1[,维说明2,...])[,数组名2...]
其中“维说明”的形式:
维下界∶维上界 (或下标下界∶下标上界)
例如:
REAL A(1:10),B(80:90),C(-5:4),NUM1(1:2,1:5)
INTEGER D(0:1,0:4),NUM2(2:5)
DIMENSION S(3:5), M(1:10)
说明语句中的A,B,C,D,NUM1,NUM2等都是数组名,数组名不能与本程序单位中的其他任何标识符重复。
课 后 练 习
一、选择题
1.以下说法中正确的是 C 。
A.C语言程序总是从第一个的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
2.一个函数返回值的类型是由 C 决定的。
A.return语句中表达式的类型
B.在调用函数时临时指定
C.定义函数时指定的函数类型
D.调用该函数的主调函数的类型
3.C语言规定,简单变量作实参时,它和对应形参之间的数据传递方式 B 。
A.地址传递 B.单向值传递
C.由实参传给形参,再由形参传回给实参 D.由用户指定
4.当调用函数时,实参是一个数组名,则向函数传送的是 B 。
A.数组的长度 B. 数组的首地址
C.数组每一个元素的地址 D. 数组每个元素中的值
5.以下正确的函数声明形式是 C 。
A.double fun(int x,int y) B.double fun(int x;int y)
C.double fun(int x,int y); D.double fun(int x, y);
6.如果在一个函数的复合语句中定义了一个变量,则该变量 A 。
A.只在该复合语句中有效 B.在该函数中有效
C.在本程序范围内均有效 D.为非法变量
7.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为 A 。
A.自动(auto) B.静态(static)
C.外部(extern) D.寄存器(register)
8.要求定义一个返回值为double类型的名为sum的函数,其功能为求两个 double类型数的和。正确的定义形式为 C 。