文档库 最新最全的文档下载
当前位置:文档库 › 华中科技大学汇编实验报告2

华中科技大学汇编实验报告2

华中科技大学汇编实验报告2
华中科技大学汇编实验报告2

课程实验报告

课程名称:汇编语言程序设计实验

实验名称:实验二分支程序、循环程序的设计

实验时间: 2016-3-29,14:00-17:30 实验地点:南一楼804室63号实验台

指导教师:勇专业班级:计算机科学与技术201409班

学号: U201414813 姓名:唐礼威

同组学生:无报告日期: 2016年 3 月 30日原创性声明

本人重声明:本报告的容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。除文中已经注明引用的容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。

特此声明!

学生签名:

日期:

成绩评定

实验完成质量得分(70分)(实验步骤清晰详细深入,实验记录真实完整等)报告撰写质量得分(30分)

(报告规、完整、通顺、详

实等)

总成绩(100分)指导教师签字:

日期:

目录

1实验目的与要求 (2)

2实验容 (2)

3实验过程 (3)

3.1任务1 (3)

3.1.1设计思想及存储单元分配 (3)

3.1.2流程图 (4)

3.1.3源程序 (4)

3.1.4实验步骤 (7)

3.1.5实验记录 (8)

4体会 (9)

参考文献 (10)

1实验目的与要求

1、熟悉分支、循环程序的结构及控制方法,掌握分支、循环程序的调试方法;

2、加深对转移指令及一些常用的汇编指令的理解;

3、加深对常用DOS功能调用指令的理解,进一步熟悉TD的使用。

2实验容

设计实现一个学生成绩查询的程序。

1、实验背景

在以BUF为首址的字节数据存储区中,存放着n个学生的课程成绩表(百分制),每个学生的相关信息包括:(占10个字节,结束符为数值0),语文成绩(1个字节),数学成绩(1个字节),英语成绩(1个字节),平均成绩(1个字节)。

例如:

N EQU 1000

BUF DB ‘zhangsan’,0,0 ;学生,不足10个字节的部分用0填充

DB 100, 85, 80,? ; 平均成绩还未计算

DB ‘lisi’,6 DUP(0)

DB 80, 100, 70,?

DB N-3 DUP( ‘TempValue’,0,80,90,95,?) ;除了3个已经具体定义了学生信息的

成绩表以外,其他学生的信息暂时假

定为一样的。

DB ‘wangwu’,0,0,0,0

DB 85, 85, 100, ?

2、功能一:提示并输入学生

(1)使用9号DOS系统功能调用,提示用户输入学生。

(2)使用10号DOS系统功能调用,输入学生。输入的字符串放在以in_name为首址的存储区中。

(3)若只是输入了回车,则回到“(1)”处重新提示与输入;若仅仅输入字符q,则程序退出,否则,准备进入下一步处理。

3、功能二:以学生查询有无该学生

(1)使用循环程序结构,在成绩表中查找该学生。

(2)若未找到,就提示用户该学生不存在,并回到“功能一(1)”的位置,提示并重新输入。

(3)若找到,则将该学生课程成绩表的起始偏移地址保存到POIN字变量中。

提示:字符串比较时,当采用输入串的长度作为循环次数时,若因循环次数减为0而终止循环,则还要去判断成绩表中名字串的下一个字符是否是结束符0,若是,才能确定找到了。

4、功能三:计算所有学生的平均成绩

使用算数运算相关指令计算并保存每一个学生的平均成绩。

平均成绩计算公式:(A*2+B+C/2)/3.5,即将语文成绩A乘以权重2、英语成绩C除以权重2后,与数学成绩B一起求和,再计算该生的平均成绩。要求避免溢出。

提示:使用循环程序结构,注意寻址方式的灵活使用。把小数3.5转换成分数后再运算避免使用浮点数指令。

5、功能四:将功能二查到的学生的平均成绩进行等级判断,并显示判断结果。

(1)平均成绩等级显示方式:若平均成绩大于等于90分,显示“A”;大于等于80分,显示“B”;大于等于70分,显示“C”;大于等于60分,显示“D”;小于60分,显示“F”。

提示:使用分支程序结构,采用2号DOS系统功能调用显示结果。

(2)使用转移指令回到“功能一(1)”处(提示并输入)。

3实验过程

3.1任务1

3.1.1设计思想及存储单元分配

设计思想:

本实验主要是要解决3个问题:一是提示并输入学生;二是如何进行字符串的比较从而查询学生;三是如何计算平均分从而分出等级。依据本次实验的要求,此处用分支、循环程序的结构及控制方法来解决。

寄存器分配:

CX:存放学生数量(默认3),计数器作用;

BX:存放目标学生下标值,得到分数缓冲区首地址;

BP:存放缓冲区基地址;

AL:存放平均成绩;

AX,DX,SI:临时寄存器;

3.1.2 流程图

开始

9号调用输出提示信息,10号调用输入查询学生姓名

输入字符串为

空?

Y

9号调用:是否继续,按任意键继续,

按q 退出

N

结束

Y

N CX=0?Y

输出查找失败

N

缓冲区是否为

N

当前字符是否

匹配

N

CX--

Y 缓冲区减一

Y 计算平均成绩并输

出等级

3.1.3 源程序

.386

STACK SEGMENT USE16 STACK DB 200 DUP(0) STACK ENDS

DATA SEGMENT USE16 N EQU 3

BUF DB 'zhangsan',0,0 DB 100,85,80,? DB 'lisi',6 DUP(0) DB 80,100,70,? DB 'wangwu',4 DUP(0) DB 85,85,100,?

MSG DB 'Input the name : $'

CONTINU DB 'Enter any keys to continue(if enter q,exit!):$' FAIL DB 'Not Exist!$' INPUT DB 10 DB ? DB 10 DUP(0) DATA ENDS

CODE SEGMENT USE16

ASSUME CS:CODE, DS:DATA, SS:STACK

START: MOV AX, DATA

MOV DS, AX

JMP BEGIN

FAILED: LEA DX, OFFSET FAIL ; 查找失败

MOV AH, 9H

INT 21H

LOOPA: MOV DL, 0AH ;换行符

MOV AH, 2H

INT 21H

LEA DX, OFFSET CONTINU ;继续

MOV AH, 9H

INT 21H

MOV DL, 0AH ;换行符

MOV AH, 2H

INT 21H

MOV DL, 0DH

MOV AH, 2H

INT 21H

MOV AH, 8H

INT 21H

CMP AL, 71H

JE OVER ;输入 'q', 退出程序BEGIN: MOV CX, N ; 学生个数

LEA DX, OFFSET MSG ;输出提示信息

MOV AH, 9H

INT 21H

MOV DL, 0AH ; 换行符

MOV AH, 2H

INT 21H

LEA DX, OFFSET INPUT ; 读入学生

MOV AH, 0AH

INT 21H

MOV DL, 0AH ; 换行符

MOV AH, 2H

INT 21H

LEA BP, OFFSET INPUT ; 将 INPUT 基址存放至 BP ADD BP,2

CMP DS:BYTE PTR [BP-1],0H ;空字符串

JE LOOPA

INC CX

COMPA: DEC CX

JE FAILED ; 查找失败, 重新输入

MOV BX, N ; 计算目标学生下标值, 存放至 BX

SUB BX, CX

IMUL BX, 14 ; 根据目标学生下标值, 找到分数缓冲区首地址

MOV AX, 10 ; 临时计数器

MOV SI, 0

COMPB: MOV DL, [BX + SI]

MOV DH, BYTE PTR DS:[BP + SI]

CMP DL, 0 ; 如果缓冲区已结束,说明查找成功

JE CAL ; 跳转至平均成绩计算处

CMP DH, DL ; 比较当前缓冲区与输入字符

JNE COMPA ; 当前字符相同,继续循环以比较下一字符

INC SI

DEC AX

JNE COMPB

CAL: MOV BX, N ; 计算目标学生下标值, 存放至 BX

SUB BX, CX

IMUL BX, 14

ADD BX, 10 ; 根据目标学生下标值, 找到分数缓冲区首地址 BX = m * 14 + 10

MOV AX, 0

MOV DX, 0

MOV AL, [BX] ; 计算平均成绩

ADD AX, AX

MOV DL, [BX +1]

ADD AX, DX

MOV DL, [BX +2]

SAR DL, 1

ADD AX, DX ;AL=A*2+B+C/2

SAL AX, 1

MOV DL, 7

IDIV DL ; AL = 2 * AL / 7

MOV [BX + 3], AL; AVG = AL ( AL / 3.5)

CMP AL, 90

JGE LEVELA

CMP AL, 80

JGE LEVELB

CMP AL, 70

JGE LEVELC

CMP AL, 60

JGE LEVELD

JMP LEVELF

LEVELA:MOV DL, 41H ;输出成绩等级

MOV AH, 2H

INT 21H

JMP LOOPA

LEVELB:MOV DL, 42H

MOV AH, 2H

INT 21H

JMP LOOPA

LEVELC:MOV DL, 43H

MOV AH, 2H

INT 21H

JMP LOOPA

LEVELD:MOV DL, 44H

MOV AH, 2H

INT 21H

JMP LOOPA

LEVELF:MOV DL, 46H

MOV AH, 2H

INT 21H

JMP LOOPA

OVER: MOV AH, 4CH

INT 21H

CODE ENDS

END START

3.1.4实验步骤

1. 使用编辑程序EDIT.EXE录入源程序,存盘文件名为shiyan.ASM。

2. 使用MASM 6.0汇编源文件。即MASM shiyan;

3. 观察提示信息,若出错,则用编辑程序修改错误,存盘后重新汇编,直至不再报错为止。

4. 使用连接程序LINK.EXE将汇编生成的shiyan.OBJ文件连接成执行文件。

即LINK shiyan;

5. 若连接时报错,则依照错误信息修改源程序。之后重新汇编和连接,直至不再报错并生成shiyan.EXE文件。

6. 执行该程序。即在命令行提示符后输入shiyan后回车,观察执行现象。

7.让9号功能调用显示的信息放在自己希望的位置。

8.在9号功能调用时,尝试带显示字符串的结尾没有“$”结束符。

9.10号功能调用时,输入的字符数超过定义的数量时,它是如何处理的?

3.1.5实验记录

(包括实验条件、输入/输出、错误和修改等信息的记录)

1、实验环境条件:P3 1GHz,256M存;WINDOWS 2000命令行窗口;EDIT.EXE 2.0;MASM.EXE

6.0; LINK.EXE 5.2; TD.EXE 5.0。

2、按照流程图编写完程序,编译和连接都没问题,运行时出现

后来发现是9号调用的字符串在之前定义时没有以$结尾,改正后程序运行正确

3、程序运行正确,但格式很差,如下图:

改进方法:在LOOPA里1号调用的换行符后面加上一个回车换行符,即

MOV DL, 0AH ;换行符

MOV AH, 2H

INT 21H

后面加上:

MOV DL, 0DH

MOV AH, 2H

INT 21H

改正后运行如下图:

分析:存放的三个人平均成绩依次为zhangsan:88 等级A; lisi:83 等级B; wangwu:90 等级B,可见与输出结果相符合

4、对于输入字符超过定义的数量时,会出现无法再继续输入的情况如下图:

4体会

这次上机,进一步提高了自己的汇编语言编程能力,通过实验对这门语言有了更深的理解,更加熟悉了调试工具td的使用以及对dos功能调用的理解。这次上机主要是熟悉分支、循环程序的结构和控制方法,掌握了它们的调试方法,对转移指令有了更深的理解,是从比高级语言更底层的角度去理解了其含义,对其它的汇编指令有了初步的认识,尽管有些指令还是需要查表才能写出来,但相信在今后的几次实验中会对更多的指令更加的熟悉和掌握。

参考文献

[1] 王元珍等.80x86汇编语言程序设计.版本(第1版)

[2] 王晓虹等.汇编语言程序设计教程.版本(第1版)

汇编语言实验2

计算机工程系实验报告 课程名称:汇编语言 实验项目名称:用机器指令和汇编语言指令编程 班级:15级计科4班姓名:梁红梅学号:15091413 一、实验目的: 1.学习Debug中D命令的使用方法,掌握查看指定内存单元的内容的指令,其中本实验中 主要掌握“d段地址:偏移地址”的格式; 2.了解Debug 中D命令程序的执行者:CPU,了解D命令的执行过程; 3.掌握CPU在访问内存单元时的主要过程; 4.学习怎样利用在Debug中cs、ds、ss、es这4个段寄存器,简化debug命令格式。 二、实验要求: 使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。Mov ax,ffff Mov ds,ax Mov ax,2200 Mov ss,ax Mov sp,0100 Mov ax,[0] ;ax= Add ax,[2] ;ax= Mov bx,[4] ;bx= Add bx,[6] ;bx= Push ax ;sp= 修改的内存单元的地址是内容为 Push bx ;sp= 修改的内存单元的地址是内容为 Pop ax ;sp= ;ax= Pop bx ;sp= ;ax= Push [4] ;sp= 修改的内存单元的地址是内容为 Push [6] ;sp= 修改的内存单元的地址是内容为

三、实验数据记录: 1.进入Debug后使用-a命令将程序写入内存 2.通过使用-t命令将写入内存的程序逐一执行,直到命令执行完毕

三、实验结果及分析: 1.mov ax,[0] 执行完成后 ax=C0EA; 2.add ax,[2]执行完成后ax=C0FC; 3.mov bx,[4] 执行完成后 bx=30F0; 4.add bx,[6]执行完成后 bx=6021; 5.push ax 执行完成后 sp= 00FE 修改的内存单元的地址是 2200:00FE 内容为C0FC 6.push bx 执行完成后 sp= 00FC 修改的内存单元的地址是 2200:00FC 内容为6021

汇编语言实验报告 20112914讲解

合肥工业大学计算机与信息学院 实验报告 课程:汇编语言程序设计专业班级:信息安全11-1 学号:20112914 姓名:王佳淼

实验一Debug程序的使用 一.实验目的 1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。 2、掌握8086/8088的寻址方式及多字节数据的处理方法。 二.实验内容 1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。 2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。要求: 本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。 三.实验过程和程序 1、启动DOS操作系统 2、运行https://www.wendangku.net/doc/2718385773.html,程序(若当前盘为C) C:>DEBUG↙ – ;(“–”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG命令) 3、用“A”命令编辑和汇编源程序 –A ↙ 186E:0100 MOV AX,[0200]↙ 186E:0103 MOV BX,[0202]↙ 186E:0107 ADD AX,[0204]↙ 186E:010B ADC BX,[0206]↙ 186E:010F MOV [0208],AX↙ 186E:0112 MOV [020A],BX↙ 186E:0116 ↙ 4、用“U”命令反汇编验证源程序 –U CS:0100↙ 186E:0100 A10002 MOV AX,[0200] 186E:0103 8B1E0202 MOV BX,[0202] 186E:0107 03060402 ADD AX,[0204] 186E:010B 131E0602 ADC BX,[0206] 186E:010F A30802 MOV [0208],AX 186E:0112 891E0A02 MOV [020A],BX 186E:0116 –

汇编语言实验报告

汇编语言实验报告 专业: 班级: 姓名: 学号: 2011年12月14日

目录 实验1 利用DEBUG调试汇编语言程序段 (3) 实验2 初级程序的编写与调试实验(一) (11) 实验3 初级程序的编写与调试实验(二) (20) 实验4 汇编语言程序上机过程 (28) 实验5 分支程序实验 (33) 实验6 循环程序实验 (40) 实验7 子程序实验 (45)

实验1 利用DEBUG调试汇编语言程序段一.实验目的 1.熟悉DEBUG有关命令的使用方法; 2.利用DEBUG掌握有关指令的功能; 3.利用DEBUG运行简单的程序段。 二.实验内容 1.进入和退出DEBUG程序; 1)开始—运行,输入cmd,点确定进入命令窗口 2)在命令窗口中输入dubug进入debug程序 3)进入debug窗口后,输入q命令退出debug 2.学会DEBUG中的 1)D命令(显示内存数据D 段地址:偏移地址) 例1:-D100;显示DS段, 0100开始的128个节内容

说明:指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。 ①DSEGREG[起始地址] [L 长度] ;显示SEGREG段中(缺省内默认为DS), 以[起始地址] (缺省内为当前的偏移地址),开始的[L 长度] (缺省内默认为128)个字节的内容. ② D SEGREG[段地址:偏移地址] ;显示SEGREG段中(缺省内默认为DS), [段地址:偏移地址]开始的[L 长度] (缺省内默认为128)个字节内容 -D ;默认段寄存器为DS,当前偏移地址(刚进入debug程序偏移地址为0100H) -D DS:100 ;显示DS段, 0100H开始的128个字节内容 -D CS:200 ;显示CS段, 0200H开始的128个字节内容 -D 200:100 ;显示DS段, 0200:0100H开始的128个字节内容

汇编语言程序设计实验教程第二章实验报告

汇编语言程序设计实验教程第二章 实验报告

实验2.1 用表格形式显示字符 1.题目:用表格形式显示ASCII字符SMASCII 2.实验要求: 按15行*16列的表格形式显示ASCII码为10H-100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII为0)隔开。 3.提示: (1)显示每个字符可使用功能号为02的显示输出功能调用,使用方法如下:mov ah,02h mov dl,输出字符的ASCII码 int 21h (2)显示空白符时,用其ASCII码0置入dl寄存器。每行结束时,用显示回车(ASCII 为0dh)和换行符(ASCII为0ah)来结束本行并开始下一行。 (3)由于逐个显示相继的ASCII字符时,需要保存并不断修改dl寄存器的内容,而显示空白、回车、换行符时也需要使用dl寄存器,为此可使用堆栈来保存相继的ASCII字符。具体做法是:在显示空白或回车、换行符前用指令 push dx 把dl的内容保存到堆栈中去。在显示空白或回车、换行符后用指令 pop dx 恢复dl寄存器的原始内容。 4.程序清单: code segment assume cs:code start: mov dx,0010h next: mov cx,10h loop1: mov ah,02h int 21h inc dx push dx

int 21h pop dx loop loop1 push dx mov dl,0ah int 21h mov dl,0dh int 21h pop dx cmp dx,100h jb next mov ah,4ch int 21h code ends end start 5.运行结果如下: 6.实验总结: 通过本次实验我深刻的知道用汇编语言编译程序的方法,掌握了如何合理的利用各个寄存器进行程序的控制操作,初步了解到循环程序的控制方法,以及dos中断调用的基本要领对学习汇编语言有了非常好的帮助作用! 汇编语言实验二查找匹配字符串 一、目的 查找匹配字符串SEARCH

汇编实验报告2-1

《汇编语言程序设计》第二次上机2-1实验报告 院系:计算机科学与技术 专业:信息安全 班级:0903班 姓名: 学号: 时间:2011-6-6 地点:南一楼808

一、实验目的 (3) 二、题目与实验要求 (3) 三、寄存器分配和变量定义说明: (3) 四、流程图 (5) 五、源程序及注释 (7) 六、实验步骤 (13) 七、实验记录 (13) 八、体会 (16)

一、实验目的 1、加深对一些常用的汇编指令的理解; 2、加深对常用DOS功能调用指令的理解; 3、进一步熟悉TD的使用。 二、题目与实验要求 1、《80X86汇编语言程序设计》教材中 P95的 3.7 题。 要求:(1)将该题改成一完整的程序(可以省略实验报告中的程序框图)。 (2)请事先指出依次执行每条程序指令后(AX)的内容。 (3)请事先指出执行ADD、SUB、SAL、RCL指令后,CF、ZF的值。 (4)记录上机执行后与(2)、(3) 中对应的内容。 2、《80X86汇编语言程序设计》教材中 P94的 3.3 题。 要求:(1)将该题改成一完整的程序,其中数据段的定义为习题3.1中的数据段(可以省略实验报告中的程序框图)。 (2)请事先画出数据段中数据的存储形式。 (3)请事先指出依次执行每条程序指令后相应寄存器中的内容。 (4)请事先给出各调指令在汇编后的形式。 (5)比较上机执行后,看到的各项内容是否与(2)、(3) ,(4)内容一致。 不一致的应分析错误原因。 3、《80X86汇编语言程序设计》教材中 P96的 3.11 题。 要求:(1)请事先指出程序运行结束后,显示器显示的内容。 (2)若将NUM的定义改成如下形式: NUM DB 35 显示的结果是什么? (3)若将NUM的定义改成如下形式: NUM DB 59 显示的结果是什么? (4)指出程序运行后看到的结果,若不一致,分析产生错误的原因。 4. 从键盘输入两串字符分别存入BUF1和BUF2区,比较两串内容是否相等,相等显示“MATCH !”, 不相等显示“NO MATCH !”。 要求:(1) 使用10号功能调用输入字符串; (2) 使用9号功能调用输出提示信息; 提示:先比较长度是否相等。 5 选做题 输入一个无符号的数字串,然后以16进制形式显示出串的值。 例如: INPUT A NUMBER : 59 RESULT : 3BH 其中下划线上的内容(59)为程序运行时输入的串。 三、寄存器分配和变量定义说明:

汇编实验报告(详细版)

计算机组成与汇编语言(实验报告) 内容: 实验一、六、七、八 院系专业:计算机学院计算机科学与技术 姓名:xxxxxxxxx 学号: 2011004xxxxx 完成时间:2012年12月1日

计算机组成与汇编语言实验报告 姓名xxxx 学号2011004xxxxx 计分 专业软件工程班级xxxx 实验日期2012年 12 月 1日实验名称实验一数制转换 实验目的 ●熟悉各种进制数据之间的相互转换方法。 ●掌握二-十进制数据的相互转换程序设计。 实验内容 1.将编写好的程序1输入、编译、连接并运行。 程序1清单 #include #include #include void main() { int i,l,s0=0,s=0; char a[17]; while(l!=16) { printf("请输入一个16位的二进制数:\n"); gets(a); l=strlen(a); for(i=0;i<16;i++) { if(a[i]!='0'&&a[i]!='1') {

printf("输入的二进制数不正确!!"); break; } } } if(a[15]=='1') s++; for(i=1;i<16;i++) { if(a[15-i]=='1') s+=(1<

说明:如果不是16位二进制则会提示错误。 2.将编写好的程序2输入、编译、连接并运行。 程序2清单 #include #include void main() { int t0,t1,t2,t3,i,j; int a[16]; printf("请输入一个十进制数:"); scanf("%d",&t0); t1=t0; for(i=0;i<16;i++) { t2=t1/2; if(t2>1) a[i]=t1%2; else if(t1==1) { a[0]=1; for(i=1;i<16;i++) a[i]=0; } else if(t1==2) { a[i]=0; a[i+1]=1; for(j=i+2;j<16;j++)

汇编语言综合实验报告

XXXX大学XX学院 实验报告 课程名称:汇编语言 学号: 姓名: 系: 专业: 年级: 指导教师: 职称: 20xx~20xx学年第一学期

实验项目列表 序号实验项目名称成绩指导教师 1 实验一汇编程序的汇编及运行 2 实验二顺序程序设计 3 实验三分支循环程序设计 4 实验四 DOS功能调用 5 实验五子程序设计 总平均

福建农林大学金山学院实验报告 系:专业:年级: 姓名:学号:实验课程:汇编语言 实验室号:__ __ 实验设备号:实验时间: 90分钟 指导教师签字:成绩: 实验一汇编程序的汇编及运行 1.实验目的和要求 (1)熟悉汇编程序的汇编、连接、执行过程 (2)生成LST文件,查看LST文件 (3)生成OBJ文件,修改语法错误 (4)生成EXE文件 (5)执行 2.实验环境 IBM—PC机及其兼容机 实验的软件环境是: 操作系统:DOS 2.0以上;调试程序:https://www.wendangku.net/doc/2718385773.html,;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。 3.实验内容及实验数据记录 (1)将数据段输入,取名1.txt,保存在MASM文件夹下。生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少? DA TA SEGMENT ORG 20H NUM1=8 NUM2=NUM1+10H DA1 DB ‘IBM PC’ DA2 DB 0AH, 0DH COUNT EQU $-DA1

大学课程汇编语言的实验报告

实验报告 实验课程: 学生姓名: 学号: 专业班级:电气信息类III班 2011年12月20日

目录 (1)汇编语言程序上机过程 (2) (2)字符串处理程序实验 (6) (3)子程序实验 (13) (4)中断程序实验 (21) (5)C++调用汇编子程序 (25)

南昌大学实验报告 ---(1)汇编语言程序上机过程学生姓名:学号:专业班级: 实验类型:□验证■综合□设计□创新实验日期:2011.11.12/13实验成绩:一、实验目的 熟练掌握汇编语言程序的编辑、调试和运行的过程和方法。了解汇编语言程序的汇编、运行环境。 二、实验内容 1.掌握常用的编辑工具软件(如WORD、EDIT)、MASM和LINK的使用; 2.伪指令:SEGMENT,ENDS,ASSUME,END,OFFSET,DUP; 3.利用的INT21H的1号功能实现键盘输入的方法; 三、实验环境 PC微机 DOS操作系统或Windows操作系统 MASM.EXE,LINK.EXE,https://www.wendangku.net/doc/2718385773.html,或宏汇编集成环境 四、实验要求 1.仔细阅读有关伪指令SEGMENT,ENDS,ASSUME,END,OFFSET,DUP的内容; 2.了解利用的INT21H的1号功能实现键盘输入的方法,了解.EXE文件和.COM文件的区别及用INT21H4C号功能返回系统的方法; 3.阅读下面程序段。 五、主要实验步骤 程序: data segment message db'This is a sample program of keyboard and disply' db0dh,0ah,'Please strike the key!',0dh,0ah,'$' data ends stack segment para stack'stack' db50dup(?) stack ends code segment assume cs:code,ds:data,ss:stack start:mov ax,data mov ds,ax mov dx,offset message mov ah,9 int21h again:mov ah,1

汇编实验报告52352019

(此文档为word格式,下载后您可任意编辑修改!) 实验三循环程序设计 一、预习内容 1.多重循环程序和排序程序设计方法。 2.带符号数的比较转移指令:JL,JLE,JG,JGE 二、目的要求 1.掌握多重循环程序和排序程序设计方法。 2.掌握带符号数的比较转移指令:JL,JLE,JG,JGE 三、实验内容 建立学生名次表,以grade为首地址的数组中保存了学生的成绩,其中grade+i 保存学号为i+1的学生的成绩。要求建立一个10个字的rank数组,并根据grade中的学生成绩将学生名次填入rank数组中,其中rank+i的内容是学号为i+1学生的名次(提示:一个学生的名次等于成绩高于该学生的人数加1). 四、程序流程图

五、程序 DSEG SEGMENT grade dw 90,60 rank dw 10 dup(?) DSEG ENDS CSEG SEGMENT assume cs:CSEG, ds:DSEG start: mov ax, dseg mov ds, ax mov di,10 mov bx,0 lea bp,rank l: lea si,grade mov dx,1 mov cx,10 mov ax,[si+bx] next: cmp ax,[si] jge no_count inc dx no_count: add si,2 loop next mov [bp],dx add bp,2 add bx,2 dec di sub di,0 jne l mov ax, 4c00h int 21h CSEG ENDS end start 六、实验结果 JGE情况下的排序结果

汇编语言综合实验报告

综合性设计性实验报告 班级:计算机科学与技术专2014 级 4 班实验项目名称:循环显示1 0 个数字符号 实验项目性质:综合性 实验所属课程:计算机组成原理与汇编语言 实验室(中心):实验室(4 0 7 ) 指导教师: 实验完成时间: 2016 年 5 月 27

一、实验目的 (1)掌握子程序的定义和调用方法。 (2)掌握子程序的编写方法及参数传递的方法。 二、实验内容及要求 本实验内容主要是编写一个显示过程汇编程序,使得在屏幕上依次显示10 个数字符号,每一行13 个字符,然后循环进行显示。实验要求是在代码段中编写这个过程,并要求用主程序调用该过程。 三、实验设备及软件 实验室(407)电脑一台以及编译器DEBUG MASM LINK软件。 四、设计方案 ㈠题目(老师给定或学生自定) 循环显示10个字符 ㈡设计的主要思路 首先,先定义一个数据段和代码段。数据段内定义一个名称为prl大小为一个字节的字符串,即本人学号。代码段内首先借助段寻址伪指令ASSUME规定好代码段和数据段分别在段寄存器CS、DS。然后start内将数据段段地址放入DS中。接下来定义一个子程序dgdsp,其实现的功能主要是先将bl(字符数目控制)清零,dl(字符范围0-9)赋值为字符0的ascll码。然后定义一个lp循环,循环内调用DOS2号功能显示字符,并bl、dl自增,接着比较dl与字符9的ascll码值的大小,若大于就将dl重置为字符0的ascll码。若小于则跳转到next循环,next循环中主要比较bl与13的大小,若小于则跳转到lp,若大于就进入bbb子程序。bbb子程序主要是先保护DX将其压栈,然后使用DOS9号功能显示prl字符串,最后将DX出栈。然后进入next循环将DX压栈,分别使用DOS0a、02号功能将dl输入显示,最后将DX出栈。分别将bl、al清零,最后跳转到lp子程序继续循环执行。 流程图如下:

汇编语言(第2版)王爽著 课后实验报告详解

汇编语言实验报告 : 班级学号 学生姓名 提交日期 成 绩

实验1-1如下: 用E命令将指令写入内存:

用A命令将指令写入内存: 实验1-2代码如下: 用a命令在2000:0000处写如要写如的代码,然后用R命令来修改CS为2000,IP修改为0,然后用T命令执行,直到AX中的值为10,因为是默认为十六进制,所以ax中的0010实际代表十进制的16。如图:

实验1-3: 用D 命令输入内存fff0h~fffffh,则可看到:

生产日期为06/15/09在地址为FFFF5~FFFF12处,现在用E命令随便修改一下有: 在window7下虚拟的dos中可以改,但如果重新打开dos中的debug 则日期任然不会改变,因为那是ROM。 实验1-4代码如下:

内存地址为B800:0开始的为显存,是RAM,可以改变其值来在屏幕中显示,其中这一个字符占两个字节,前一个(低)为字符的ASCII 码,后一个(高)为要显示的颜色,内存B800:0和B800:1这两个字节对应着屏幕中的第一个字符的位置,依次类推,每个屏幕的行有80个字符,对应的内存占160个字节 实验2-1:(按实验结果填空) Mov ax,ffff Mov ds,ax Mov ax,2200 Mov ss,ax Mov sp,0100 Mov ax,[0] ;ax=5BEA Add ax,[2] ;ax=5CCA Mov bx,[4] ;bx=30F0 Add bx,[6] ;bx=6026 Push ax ;sp=00FE; 修改的内存单元的地址是2200:00FE 内容是5CCA Push bx ;sp=00FC; 修改的内存单元的地址是2200:00FC内容是6026 Pop ax ;sp=00FE; ax=6026. Pop bx ;sp=0100; bx=.5CCA Push [4] ;sp=00FE; 修改的内存单元的地址是2200:00FE内容是30F0 Push [6] ;sp=00FC; 修改的内存单元的地址是2200:00FC内容是2F36 实验截图如下:

汇编实验报告

南华大学 实验名称:汇编语言程序设计实验 学院:计算机学院 专业班级:本2010 电气信息类03班 学号:20104030342 姓名:谢志兴 指导教师:刘芳菊 日期:2012 年 6 月10 日

实验一DEBUG的熟悉 一、实验目的 (1)学习使用DEBUG的命令; (2)使用DEBUG命令在数据段中查看程序运行的结果; (3)利用DEBUG运行简单的程序段。 二、实验内容 1)输入程序观察寄存器变化 使用DEBUG命令,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器的内容变化。注意用T命令执行时,CS: IP寄存器的内容。 MOV AX, 4E20 ADD AX, 1416 MOV BX, 2000 ADD AX, BX MOV BX, AX ADD AX, BX MOV AX, 001A MOV BX, 0026 ADD AL, BL ADD AH, BL ADD BH, AL MOV AH, 0 ADD AL, BL ADD AL, 9C 2)输入下面的程序,这是一个两个数相与的程序。结果存放在MSG2单元中,偏移地址为?值为多少? DSEG SEGMENT MSG1 DW 7856H, 2038H MSG2 DW? DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG

START: MOV AX, DSEG MOV DS, AX MOV AX, MSG1 AND AX, MSG1+2 MOV MSG2, AX MOV AL, 0 MOV AH, 4CH INT 21H CSEG ENDS END START 程序的跟踪执行操作 在DOS下直接输入文件主名就可以执行文件了,有的程序会显示结果,可能执行后什么结果都没有,是因为程序中没有显示命令。那么如何查看程序的运行结果呢? 程序执行过程的跟踪操作步骤如下: (1)在DOS下输入:DEBUG 文件名.EXE (2)在DEBUG提示符下输入U命令 如果程序中有数据段,可以看到反汇编后第一句可执行语句为: A地址:B地址MOV AX, K地址如:1261:0000 MOV AX, 1260 其中:K地址就是数据段的段寄存器内容,A地址为代码段段寄存器地址,B地址为程序第一条指令的偏移地址。 (3)可以用T命令单步执行指令,执行到MOV AH, 4CH时结束,也可以用G命令执行整个程序,输入:G=B地址(如:G=0000) (4)用D命令查看程序执行后数据段的变化 输入:D K地址:0 (如:D1260:0)

汇编实验报告

XXXX大学 实验报告 课程名称汇编语言程序设计成 绩 实验学时 评语: 指导教师: 年月日 班级: 学号: 姓名: 地点: 时间:

实验一汇编语言编程实验 一、实验目的 (1)掌握汇编语言的编程方法 (2)掌握DOS功能调用的使用方法 (3)掌握汇编语言程序的调试运行过程 二、实验内容 1. 将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完 成必要提示信息的显示。 2. 在屏幕上显示自己的学号姓名信息。 3. 循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输 入”Q”或“q”时结束。 4. 实验中使用的DOS功能调用: INT 21H AH 值功能调用参数结果 1 键盘输入并回显AL=输出字符 2 显示单个字符(带Ctrl+Break检查) DL=输出字符光标在字符后面 6 显示单个字符(无Ctrl+Break检查) DL=输出字符光标在字符后面 8 从键盘上读一个字符AL=字符的ASCII码 光标跟在串后面 9 显示字符串DS:DX=串地址, ‘$’为结束字符 4CH 返回DOS系统AL=返回码 例如,实现键盘输入并回显的完整代码: MOV AH 01H INT 21H 三、实验结果 1. 将指定数据区的字符串数据”Let us go !”以ASCII码形式显示在屏幕上,并通过 DOS功能调用完成必要提示信息的显示: 2. 在屏幕上显示自己的学号姓名信息 3.循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输 入”Q”或“q”时结束。

四、实验原理 DATA SEGMENT MES DB 'NUMBER: 03099018 ',0AH,0DH,'NAME: Feng Xiaokang',0AH,0DH,'$' CENT DB 'Let us go !','$' ENTE DB 0AH,0DH,'$' INFO DB 'Origin: ','$' ASCI DB 'ASCII : ','$' MSG1 DB 'If you want to quit please press...q/Q...',0AH,0DH,'$' MSG2 DB 0AH,0DH,'Char: $' RS DB ' ASCII: $' SD DB '' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;存储数据 MOV DS,AX MOV DX,OFFSET MES ;显示数据 MOV AH,09H INT 21H MOV DX,OFFSET MSG1 MOV AH,09H INT 21H MOV DX, OFFSET CENT MOV SI, DX T: MOV AL,[SI] CMP AL,'$' JZ C1 AND AL,0F0H ;取高4位 MOV CL,4 SHR AL,CL CMP AL,0AH ;是否是A以上的数 JB A ADD AL,07H A: ADD AL,30H MOV DL,AL ;show character MOV AH,02H INT 21H

计算机汇编上机实验报告

实验报告 1 二、实验题目:顺序程序设计 三、实验类型:必做 四、实验目的: 1.了解汇编语言的程序结构。 2.理解汇编语言中由源程序文件到可执行文件的过程。 五、实验内容和步骤: 1、实验内容: 编程实现:当X=5时,求Y=3X4+5X3+6X2+4X+2. 2、实验步骤: (1)首先对a1.asm进行汇编连接生成a1.exe文件。 (2)进行DEBUG程序并装入要调试的程序a1.exe。 如:DEBUG a1.exe;进入DEBUG并装配a1.exe (3)反汇编,确定每条指令的地址。 -U ;从当前地址进行反汇编 -U200;从CS:200处开始反汇编 反汇编可以确定断点地址,如:把断点地址设置在0120H处,则可以打入以下命令 (4)G命令来设置断点。 -G120 此时程序在0120H处停下,并显示出所有寄存器以及各标志位的当前值,在最后一行还给出下一条将要执行的指令的地址、机器语言和汇编语言,程序员可以从显示的内容来以解程序运行是否正确。 (5)观察数据段的内容,即观察内存的内容 -D DS:0000;从数据段的0单元开始显示128个字节。 -D DS:00000001;从数据段的0单元、1单元显示2个字节。 (6)退出DEBUG命令 -Q 六、实验结果: 145A:001E 83C002 ADD AX,+02 -u 145A:0021 A30100 MOV [0001],AX 145A:0024 B44C MOV AH,4C 145A:0026 CD21 INT 21 145A:0028 7509 JNZ 0033 145A:002A E83F26 CALL 266C 145A:002D 8946E8 MOV [BP-18],AX 145A:0030 E80D97 CALL 9740 145A:0033 F6065C3601 TEST BYTE PTR [365C],01 145A:0038 7405 JZ 003F

汇编实验报告

汇编语言程序设计 实验报告 学号:100511530 班级:电气信息类1005 姓名:陆淑琴 指导老师:李诗高

实验一、汇编语言上机的基本过程及环境 【实验目的】 (1)熟悉汇编语言的编辑、汇编、连接及调试的全过程,重点掌握使用DEBUG调试程序的方法。 (2)了解汇编语言的程序结构。 【实验内容】 (1)在数据段中定义两个数(数据自拟,包含有正数和负数),要求编写程序分别计算出这两个数的和、差、积、商,并用Debug的相关命令查询计算结果(包括对CF,OF,SF,ZF的影响)。 (2)首先对AX,BX,CX寄存器赋初值(数据自拟),再将AX寄存器的中间八位,BX的低四位和CX的高四位拼接成一个新的字,并把结果存入偏移地址为0000H的存储单元。其中BX的低四位作为结果字的高四位,CX的高四位作为结果字的低四位。并用Debug的相关命令查询内存单元的结果字。 源代码: DA TA SEGMENT val1 DW 1000h val2 DW 2000h maxv DW ? DA TA ENDS STACK SEGMENT STACK 'STACK'

DB 100H DUP(?) STACK ENDS CODE SEGMENT 'CODE' ASSUME CS:CODE, DS:DATA,SS:STACK .386 MAIN: MOV AX, DATA; MOV DS, AX PUSH val1 PUSH val2 CALL MAX ; POP maxv ;栈顶返回值出栈 MOV AX, 4c00H INT 21H MAX PROC PUSH BP ;执行该指令前堆栈情况 MOV BP, SP ;执行后堆栈情况 MOV AX, [BP+4] CMP AX, [BP+6] JA EXIT MOV AX, [BP+6] EXIT: MOV [BP+6], AX ;用栈顶返回值 POP BP RET 2 ;执行后堆栈情况 MAX ENDP CODE ENDS END MAIN 【实验步骤】 (1)用编辑软件(记事本、UltraEdit等)编辑一个扩展文件名为ASM的汇编语言源程序。 (2)用汇编程序MASM汇编上述的汇编语言源程序,形成目标代码文件。(扩展名为OBJ) (3)用连接程序LINK连接目标代码文件,形成可执行文件。(扩展名为EXE)(4)用DEBUG32调试可执行文件,观察执行结果,以验证其正确性。

计算机组成原理与汇编实验报告

计算机组成原理与汇编 实验报告 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

计算机组成原理与汇编课程设计 实验报告 目录 一、课程设计目标 (3) 二、课程设计基本要求 (3) 三、课程设计的内容 (3) 四、课程设计的要求 (5) 五、实验详细设计 (5) 1.统计文件中各字母出现的频率 (5) 2.用递归计算50以内Fibonacci 数, 以十进制数输出 (9) 3.虚拟平台模拟机实验 (11) 六、使用说明 (19) 七、总结与心得体会 (19) 八、参考文献 (20) 九、附录 (20) 1.字符统计.asm (20) 2.斐波那契数(小于50).asm (29) 一、课程设计目标 通过课程设计使学生综合运用所学过的计算机原理与汇编知识,增强解决实际问题的能力,加深对所学知识的理解与掌握,提高软硬件开发水平,为今后打下基础。 课程设计的目的和要求: 1、使学生巩固和加强《计算机原理与汇编语言》课程的基本理论知识。

2、使学生掌握汇编语言程序设计的方法及编程技巧,正确编写程序。 3、使学生养成良好的编程习惯并掌握调试程序的基本方法。 4、使学生养成规范书写报告文档的能力,撰写课程设计总结报告。 5、通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。 二、课程设计的基本要求 1、认真查阅资料,独立完成设计任务,每道题都必须上机通过。 2、编写预习报告,写好代码,上机调试。 3、独立思考,培养综合分析问题解决问题和调试程序的能力。 4、按时完成课程设计,写出课程设计报告。 三、课程设计的内容 1、给定一个英文ASCII码文件,统计文件中英文字母的频率,以十进制形式输出。 2、用递归计算50以内Fibonacci 数, 以十进制数输出. 3、虚拟平台的模型机实验,具体要求如下: 1)选择实验设备,将所需要的组件从组件列表中拖到实验设计流程栏中 2)搭建实验流程:根据原理图1和电路图(见附件),将已选择的组件进行连线。 3)输入机器指令:选择菜单中的“工具”,再选择“模型机调试”,在指令输入窗 口中输入如下指令: 00000000 00010000 00001001 00100000 00001011 00110000 00001011 01000000 00000000 00000001 本实验设计机器指令程序如下:

汇编语言实验报告

汇编语言程序设计实验报告 学院:计算机科学与技术 专业:计算机科学与技术 指导教师: ** 班级: ** 学号: ** 姓名:**

实验一集成环境及调试工具 一、实验题目 认识Tddebug集成操作软件 二、分析设计思想,绘制实验原理图、流程图 (一)、汇编语言程序的开发过程如图1.1所示,这个过程主要有编辑、编译、链接几个步骤构成。 图1.1 汇编语言程序开发过程 1、源程序的编辑 E: > EDIT TEST.ASM 编辑过程就是将源程序输入内存,生成一个扩展名为ASM的文本文件并存入硬盘。2、源程序的编译 E:>TASM TEST.ASM 编译也称为汇编,就是利用汇编器(如TASM或MASM)对源程序进行编译,生成扩展名为OBJ的目标文件。在编译过程中,检查语法错误,若有错,则不生成目标代码文件,并给出错误信息。根据错误信息应返回到编辑状态,修改源程序。 3、目标程序的链接 E:> TLINK TEST.OBJ 链接过程是利用链接程序(如TLINK或LINK)将用户目标程序和库文件链接、定位,生成扩展名为EXE的可执行文件。链接时,如果链接文件找不到所需要的链接信息,则发出错误信息,不生成可执行文件。 4、调试可执行程序 E:>TD TEST.EXE 如果生成的EXE文件运行后,并没有按照设计意图运行,就需要对程序进行调试,找出错误。再对源程序进行修改,即重复进行编辑、编译、链接、调试,直到生成完全正确的可执行文件为止。 (二)、Tddebug集成操作软件使用说明 1.该软件是集编辑(Edit.exe)、编译(Tasm.exe)、连接(Link.exe)和调试(TD.exe)

汇编实验报告

实验三算术运算与代码转换程序设计 一、实验目的 1)掌握算术运算程序的设计方法。 2)掌握代码转换程序的设计方法。 3)进一步掌握各种程序结构。 4)熟练掌握和使用用DEBUG调试程序。 二、实验内容 1)编制两个多字节整数加法和减法程序,并将结果按十六进制形式显示在屏幕上。 2)编制程序实现二进制定点数与十进制数的ASCII码串之间转换,并将结果显示在屏幕上。 3)编写程序计算从键盘输入两个不超过四位的十进制数的和、差、积、商,并以十进制形式输出。 4)写程序把从键盘输入的四位十六进制数转换为压缩的BCD码,并显示输出。 5)编写一通用过程用来将十进制数(从键盘输入)转换为P(从键盘输入)进制数。 三、实验设备 PC机一台

四、实验步骤 1) 按程序流程图编制实验程序。 2) 输入源程序。 3) 汇编、连接程序,执行程序,检查结果。 4) 程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。 5) 用D命令检查执行结果。 六、源程序 实验一 DATA SEGMENT NUM1 DB 22H,33H,44H,55H,66H,77H NUM1L DB 6H NUM2 DB 22H,22H,22H,22H NUM2L DB 4H OUTCOME1 DB 10H DUP(0) OUTCOME2 DB 10H DUP(0) N DB 0H DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START:MOV AX,DATA

华中科技大学汇编实验报告2

课程实验报告 课程名称:汇编语言程序设计实验 实验名称:实验二分支程序、循环程序的设计 实验时间: 2016-3-29,14:00-17:30 实验地点:南一楼804室63号实验台 指导教师:勇专业班级:计算机科学与技术201409班 学号: U201414813 姓名:唐礼威 同组学生:无报告日期: 2016年 3 月 30日原创性声明 本人重声明:本报告的容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。除文中已经注明引用的容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。 特此声明! 学生签名: 日期: 成绩评定 实验完成质量得分(70分)(实验步骤清晰详细深入,实验记录真实完整等)报告撰写质量得分(30分) (报告规、完整、通顺、详 实等) 总成绩(100分)指导教师签字: 日期:

目录 1实验目的与要求 (2) 2实验容 (2) 3实验过程 (3) 3.1任务1 (3) 3.1.1设计思想及存储单元分配 (3) 3.1.2流程图 (4) 3.1.3源程序 (4) 3.1.4实验步骤 (7) 3.1.5实验记录 (8) 4体会 (9) 参考文献 (10)

1实验目的与要求 1、熟悉分支、循环程序的结构及控制方法,掌握分支、循环程序的调试方法; 2、加深对转移指令及一些常用的汇编指令的理解; 3、加深对常用DOS功能调用指令的理解,进一步熟悉TD的使用。 2实验容 设计实现一个学生成绩查询的程序。 1、实验背景 在以BUF为首址的字节数据存储区中,存放着n个学生的课程成绩表(百分制),每个学生的相关信息包括:(占10个字节,结束符为数值0),语文成绩(1个字节),数学成绩(1个字节),英语成绩(1个字节),平均成绩(1个字节)。 例如: N EQU 1000 BUF DB ‘zhangsan’,0,0 ;学生,不足10个字节的部分用0填充 DB 100, 85, 80,? ; 平均成绩还未计算 DB ‘lisi’,6 DUP(0) DB 80, 100, 70,? DB N-3 DUP( ‘TempValue’,0,80,90,95,?) ;除了3个已经具体定义了学生信息的 成绩表以外,其他学生的信息暂时假 定为一样的。 DB ‘wangwu’,0,0,0,0 DB 85, 85, 100, ? 2、功能一:提示并输入学生 (1)使用9号DOS系统功能调用,提示用户输入学生。 (2)使用10号DOS系统功能调用,输入学生。输入的字符串放在以in_name为首址的存储区中。 (3)若只是输入了回车,则回到“(1)”处重新提示与输入;若仅仅输入字符q,则程序退出,否则,准备进入下一步处理。 3、功能二:以学生查询有无该学生 (1)使用循环程序结构,在成绩表中查找该学生。

汇编语言实验报告..

汇编语言课程设计 学院: 专业: 姓名: 学号:

汇编语言是计算机专业的一门重要的专业基础课,主要介绍汇编语言程序设计的基本原理和方法。汇编语言是一门理论性和实践性较强的课程,辅助课堂教学的实验有助于帮助学生理解汇编语言的基本原理,锻炼学生的动手能力,提高学生的综合应用知识的能力。 目录 1 利用DEBUG调试汇编语言程序段……………………………………… 2 初级程序的编写与调试实验(一) ................................................................................. 3 初级程序的编写与调试实验(二)………………………………………... 4 汇编语言程序上机过程 .......................................................................................................... 5分支程序实验…………………………………………………………… 6 循环程序实验……………………………………………………………..

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,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。 三.课程要求 1.仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;四.环境 PC微机 DOS操作系统或Windows 操作系统 MASM.EXE,LINK.EXE,https://www.wendangku.net/doc/2718385773.html,或宏汇编集成环境 五.方法步骤 1.在DOS提示符下,进入DEBUG程序; 2.在DOS目录下启动DEBUG; 3.详细记录每一步所用的命令,以及查看结果的方法和具体结果。 R, D, E 命令:

相关文档