汇编实验报告2-1
汇编语言指令及伪指令练习的实验报告总结(范文)
汇编语言指令及伪指令练习的实验报告总结
汇编语言指令及伪指令练习的实验报告总结
篇一:
汇编语言实验报告福建农林大学金山学院课程名称:
姓名:
系:
专业:
年级:
学号:
指导教师:
职称:
(程序设计类课程) 实验报告汇编语言 201X~201X学年第二学期实验项目列表福建农林大学金山学院实验报告系:专业:
年级:
姓名:
学号:
实验课程:
汇编语言实验室号:
_ _1#605 实验设备号:
I3 实验时间:
201X.
4.25指导教师签字:
成绩:
实验一汇编程序的汇编及运行
1.实验目的和要求
(1)熟悉汇编程序的汇编、连接、执行过程;
(2)生成LST文件,查看L ST文件;
(3)生成BJ文件,修改语法错误;
(4)生成EXE文件;
(5)执行程序。
2.实验环境 IBM—PC机及其兼容机;实验的软件环境是:
操作系统:
DS
2.0以上;调试程序:
DEBUG.CM;文本编程程序:
EDIT.EXE、PS.EXE;宏汇编程序:
MA SM.EXE(或AS M .EXE);连接装配程序:
L INK .EXE;交叉引用程序:
CREF.EXE(可有可无)。
3.实验内容及实验数据记录
(1)将数据段输入,取名
1.txt,保存在MASM文件夹下。生成LST文件,(不必连接、运行)用EDI T查看
1.LS T文件。试回答:
DA1,DA2的偏移量分别是多少?C UNT的值为多少?DATA SEGME NT RG 20HNUM1=8 NUM2=NUM1+10H DA1 DB ‘I BM PC’ CUN T EQU $-DA1 DATA END S DA2 DB 0AH, 0DH EN D
汇编语言实验报告
汇编语⾔实验报告
福建农林⼤学⾦⼭学院
(程序设计类课程)
实验报告
课程名称:汇编语⾔
姓名:
系:
专业:
年级:
学号:
指导教师:
职称:
2010~2011学年第⼆学期
实验项⽬列表
福建农林⼤学⾦⼭学院实验报告
系:专业:年级:
姓名:学号:实验课程:汇编语⾔
实验室号:_ _1#605 实验设备号: I3 实验时间: 2011.4.25 指导教师签字:成绩:实验⼀汇编程序的汇编及运⾏
1.实验⽬的和要求
(1)熟悉汇编程序的汇编、连接、执⾏过程;
(2)⽣成LST⽂件,查看LST⽂件;
(3)⽣成OBJ⽂件,修改语法错误;
(4)⽣成EXE⽂件;
(5)执⾏程序。
2.实验环境
IBM—PC机及其兼容机;
实验的软件环境是:
操作系统:DOS 2.0以上;调试程序:/doc/aa5b4424a5e9856a56126062.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的值为多少?
DATA SEGMENT
ORG 20H
NUM1=8
NUM2=NUM1+10H
DA1 DB ‘IBM PC’
DA2 DB 0AH, 0DH
COUNT EQU $-DA1
DATA ENDS
END
(2)输⼊有错误的⽂件,修改错误语句。(MASM没有出现错误即可。不必连接、运⾏。)
汇编 DEBUG 实验报告
一、实验目的、
学习查看CPU及存储器命令
二、实验设备及环境
主流PC
Win7_x64
DOSBox Status Window
DEBUG.EXE
三、实验内容及步骤(截图并对图示进行必要的文字说明)
(1) 使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU 中相关寄存器中内容的变化。
机器码汇编指令
b8 20 4e mov ax,4E20H
05 16 14 add ax,1416H
bb 00 20 mov bx,2000H
01 d8 add ax,bx
89 c3 mov bx,ax
01 d8 add ax,bx
b8 1a 00 mov ax,001AH
bb 26 00 mov bx,0026H
00 d8 add al,bl
00 dc add ah,bl
00 c7 add bh,al
b4 00 mov ah,0
00 d8 add al,bl
04 9c add al,9ch
命令: 作用: 结果: mov ax,4e20 将4e20h存入ax, ax=4e20h add ax,1416 将ax+1416h存入ax,a x=6236h mov bx,2000 将2000h存如bx, bx=2000h add ax,bx 将ax+bx的值存入ax, ax=8236h
mov bx,ax 将ax的值存入bx, bx=8236h
add ax,bx 将ax+bx的值存入ax,ax溢出, ax=046ch
mov ax,001a 将001ah存入ax, ax=001ah
mov bx,0026 将0026h存入bx, bx=0026h
物理实验报告(汇编15篇)
物理实验报告
物理实验报告(汇编15篇)
随着社会不断地进步,接触并使用报告的人越来越多,我们在写报告的时候要避免篇幅过长。一听到写报告马上头昏脑涨?下面是小编精心整理的物理实验报告,欢迎阅读,希望大家能够喜欢。
物理实验报告1
实验:研究电磁铁
初三()班姓名:座号:
一、实验目的:探讨电流的通、断、强弱对电磁铁的影响;探讨增加线圈匝数对电磁铁磁性的影响。
二、实验器材:电磁铁、电源、开关、滑动变阻器、电流表和一小堆大头针。
三、实验步骤:
1、将电源、开关、滑动变阻器、电流表与电磁铁连成串联电路。
2、将开关合上或打开,观察通电、断电时,电磁铁对大头针的吸引情况,判断电磁铁磁性的有无。
3、将开关合上,调节滑动变阻器,使电流增大和减小(观察电流表指针的示数),从电磁铁吸引大头针的情况对比电磁铁磁性强弱的变化。
4、将开关合上,使电路中的电流不变(电流表的示数不变)改变电磁铁的接线,增加通电线圈的匝数,观察电磁铁磁性强弱的变化。
四、实验记录:
通电
断电
电流增大
电流减小
线圈匝数增多
电磁铁的
磁性强弱
五、实验结论:
(1)电磁铁通电时磁性,断电时磁性。
(2)通入电磁铁的电流越大,它的磁性越。
(3)在电流一定时,外形相同的螺线管,线圈的匝数越多,它的磁性越。
物理实验报告2
以天平、量筒、烧杯等实验仪器测定牛奶的密度为例。
一(实验名称)用天平、量筒、烧杯等实验仪器测定牛奶的密度二(实验目的)用天平和量筒测量牛奶的密度。
三(实验材料和器材)牛奶、天平、砝码、量筒、烧杯。
四(实验原理)ρ=m/V 。
五(实验方法(步骤))
1. 将天平放在水平台面上,按天平使用规则调节天平平衡;
汇编语言程序设计实验报告二(分支循环程序实验)
汇编语言程序设计实验报告二(分支循环程序实验)
一、实验目的
1、掌握分支程序、循环程序的设计方法。
2、熟悉DEBUG程序的使用方法。
3、掌握汇编语言程序的编辑、汇编、连接以及调试过程。
二、实验内容
1、编写一程序,将内存中某一区域的数据传送到另一个区域中(要求用循结构,不考
虑数据块重叠问题)。
2、编写一程序,将内存中某一区域的数据传送到另一区域(要求考虑数据块重叠问
题)。
三、实验准备
1、预习数据传送指令,熟悉分支和循环程序设计方法。
2、预习DEBUG调试程序的使用方法。
3、根据实验内容要求,编写好实验源程序。
四、实验步骤
1、用QE或其它编辑软件,在计算机上编辑源程序,使其正确无误。
2、汇编、连接源程序,产生.EXE可执行文件。
3、运行程序。
(1) 进入DEBUG。打入DEBUGT MYPROG.EXE。MYPROG为所编程序的文
件名。
(2) 先用G命令连续剧连续执行程序,程序执行完毕后,观察运行结果。如果
执行后是对的,说明程序编写是正确的,如果结果不对,说明程序有错误,则执行下一步。
(3) 检查程序。在程序中设置若干断点,以便杳出错误所在。
(4) 采用单步命令T或执行程序,观察各寄存器和存储单元内容,以便找到错
误之处。
五、实验报告要求
1、列出程序清单,并给出程序流程图。
2、总结实现数据传送的几种方法,指出它们的区别。开始
3、分析实验中所遇到的一些问题,分析错误原因。
4、说明本实验中是如何使用DEBUG进行调试的。 CX、SI、DI置初值六、流程图勤
开始设置增量方式
CX、SI、DI置初值保存SI内容
汇编指令实验报告
汇编指令实验报告
汇编指令实验报告
汇编指令是计算机中非常重要的一部分,它们直接操作着计算机的硬件,实现各种功能。在本次实验中,我们学习了汇编指令的基本知识,并通过实践掌握了它们的使用方法。本文将对我们的实验过程进行详细的总结和分析。
实验一:汇编指令的基本概念和使用方法
在实验的第一部分,我们首先了解了汇编指令的基本概念和使用方法。汇编指令是一种低级语言,它直接操作计算机的寄存器和内存单元。我们通过学习不同的指令集和指令格式,了解了如何使用汇编指令来实现各种功能。
在实验中,我们使用了一款常见的汇编语言工具,例如MASM(Microsoft Macro Assembler)和NASM(Netwide Assembler)。通过这些工具,我们可以将汇编代码转换成可执行的机器码,并在计算机上运行。
实验二:汇编指令的应用实例
在实验的第二部分,我们通过一些实际的应用实例,进一步加深了对汇编指令的理解和掌握。我们学习了如何使用汇编指令来实现字符串处理、数学运算、条件判断等常见的功能。
例如,我们学习了如何使用汇编指令来实现字符串的反转功能。通过对字符串的每个字符进行逆序排列,我们可以实现字符串的反转。这个实例不仅帮助我们理解了汇编指令的基本操作,还锻炼了我们的逻辑思维能力。
实验三:汇编指令的性能优化
在实验的第三部分,我们探讨了如何通过优化汇编指令来提升程序的性能。通过对程序的瓶颈进行分析,我们可以找到一些可以改进的地方,并通过修改和
优化汇编指令来提升程序的执行效率。
例如,我们学习了如何通过使用SIMD(Single Instruction Multiple Data)指令集来实现并行计算。通过同时对多个数据进行操作,我们可以大大提高程序的运行速度。这个实例不仅帮助我们理解了汇编指令的高级应用,还培养了我们的优化思维能力。
单片机汇编语言程序设计实验报告
单片机实验1 汇编语言程序设计实验
---- 存储器块赋值
一.实验目的
1 熟悉存储器的读写方法,熟悉51汇编语言结构。
2 熟悉循环结构程序的编写。
3 熟悉编程环境和程序的调试。
二.实验内容
指定存储器中某块的起始地址和长度,要求将其内容赋值。例如将4000H 开始的100个字节内容清零或全部赋值为33H(参考程序),
要求根据参考程序修改:
修改程序,赋值内容为(10,9,8,7,6,5,4,3,2,1。)
三.实验仪器
微机、VW,WAVE6000编程环境软件,(单片机实验箱)
仿真器--仿真器设置-
选择仿真器选择仿真头选择CPU Lab8000/Lab6000通用微控制器 MCS51实验 8051
前3个软件实验勾选√使用伟福软件模拟器
四实验步骤
注意:
1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。
2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容
3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR
4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。
5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。
编译器默认设置:
程序框图
参考例程序:
Block equ 4000h
mov dptr, #Block ; 起始地址
mov r0, #10 ; 清10个字节
mov a, #33h ; 将33H赋值给a
arm汇编语言编程实验报告
arm汇编语言编程实验报告
实验二ARM汇编语言编程实验.doc
班级计算机科学与技术(嵌入式)学号课程名称ARM体系结构姓名实验成绩日期指导教师冯灵霞
实验报告院系信息工程学院
一、实验目的
1、掌握ADT IDEARM开发环境中基本的工程设置以及程序编译方法。
2、掌握ADT IDEARM开发环境中基本的程序调试方法。
3、掌握基本的ARM汇编语言编程方法。
二、实验内容
用汇编语言编写一个程序实现如下目的:从源地址拷贝num个字(num*4个字节)的数据到目的地址dst中。
三、预备知识
1、ARM汇编语言的基础知识。
2、程序调试的基础知识和方法。
四、实验设备
1、硬件:JXARM9-2440教学实验箱、PC机。
2、软件:PC机操作系统Windows 98(2000、XP)+ADT IDE开发环境。
五、基础知识
ADT IDE集成了GNU汇编器arm-elf-as、编译器arm-elf-gcc和链
接器arm-elf-ld。在ADT IDE中编写的程序必须符合GNU的语法规则。下面介绍一些基本的GNU汇编知识以及本实验用到的ARM 汇编指令。
1、GUN汇编语言语法及规则
1)_start
_start为程序默认入口点,代码段默认起始地址为0x800,如果需要修改可以在链接脚本文件中指定。
2)标号
语法:
symbol:
symbol为定义的符号。
说明:上述代码定义一个标号,它表示程序中当前的指令或数据地址。如果在程序中出现两个相同的标号,汇编器将会产生一个警告,且只有第一个标号有效。
2、GNU汇编语言伪操作
1).equ伪操作
汇编上机实验报告
实验一认识Tddebug集成操作软件实验日志
指导教师曾素华实验时间:2013 年04 月02 日学院计算机科学与技术专业计算机科学与技术
班级0411005 学号2010211912 姓名李新娱实验室s401
一、实验题目
认识Tddebug集成操作软件
二、实验目的
1.熟悉汇编程序的开发过程。
2.认识Tddebug集成操作软件。
3.掌握在Tddebug集成环境中编辑、编译、连接汇编语言程序方法。
4.掌握INT 21H软件中断来调用DOS内部子程序的方法
三、实验内容及说明
1.实验内容:数据传送实验
1)编程将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串
到屏幕上。参见示例出程序。
2)修改此程序,采用字符串传送指令完成。
2.实验中使用DOS功能调用(INT 21H):
参见教材《32位微型计算机原理与接口技术》89页
(1)显示字符串
入口:AH=09H
调用参数:DS:DX=串首地址,‘$’为结束字符。
(2)返回DOS系统
入口:AH=4CH
调用参数:AL=返回码
四、实验主要步骤
要求一数据传送实验
1.运行Tddebug软件,选择Edit菜单编写实验程序
2.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。
3.使用Rmrun菜单中的Run运行程序,观察运行结果。
4.使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加段装入内存后的分配情况。单步执行数据传送指令后,观察各寄存器及数据区的内容。过程如下:
3)按F7单步执行,在代码区中有一个三角,表示正在执行的指令。每一条指令
汇编语言实验报告
汇编语⾔实验报告
汇编语⾔实验报告
专业:
班级:
姓名:
学号:
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个节内容
说明: 指定要显⽰其内容的内存区域的起始和结束地址,或起始地址和长度。
① D SEGREG[起始地址] [L 长度]
;显⽰SEGREG段中(缺省内默认为DS), 以[起始地址] (缺省内为当前的偏移地址),开始的[L 长度] (缺省内默认为128)个字节的内容.
② D SEGREG[段地址:偏移地址]
;显⽰SEGREG段中(缺省内默认为DS), [段地址:偏移地址] 开始的[L 长度] (缺省内默认为128)个字节内容
-D ;默认段寄存器为DS,当前偏移地址(刚进⼊debug程序偏移地址为0100H)
实验二 汇编语言程序上机过程及调试
实验报告二
课程微机原理实验名称汇编语言程序上机过程以及调试第页专业电子信息班级__ __ 学号_ __ 姓名
实验日期:2014 年 3 月10 日报告退发(订正、重做)
一、实验目的
学习汇编语言程序设计的基本步骤,即编辑(EDIT)程序、汇编(MASM)、连接(LINK)和运行,使对汇编语言程序设计有一个初步的认识。
二、实验内容
1、学习使用全屏幕文本编辑软件EDIT。用EDIT输入一段给定的源程序。
2、用MASM对已存盘的源程序进行汇编,形成目标文件(.OBJ);如有错误,再返回到
EDIT进行修改。
3、用LINK对上述形成的目标文件进行连接,形成可执行文件(.EXE)
4、在DOS提示符下运行该可执行文件。
[汇编语言程序的编写格式]
汇编语言程序一般由几个段组成,它们分别是堆栈段,数据段,代码段。任何一个源程序至少必须有一个代码段和一条作为源程序结束的伪指令END。段的定义有两种格式,分述如
下:
1,完整的段定义格式:
一个段由段头,段体,段尾组成,形式如下:
段名SEGMENT[定位类型][组合类型][‘类别’]
…
…
段名ENDS
其中SEGMENT后的参数一般可省略,详细说明参阅后面的有关章节。
2,简化的段定义格式(MASM5.0版本提供)每段以.开始后跟固定的段名,一般形式如下:
DOSSEG
.MODEL 存储类型;“存储类型”可选择为SMALL。
.STACK[大小];堆栈段,“大小”指定堆栈的字节数。
.DATA;数据段。
.CODE[名字];代码段;一般只有一个代码段,名字可缺少
…
…
例1:用完整的段定义编写一源程序。
汇编语言(第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.
汇编语言编程实验报告
汇编语言编程实验报告
学号:
姓名:
成绩:
目录
一、实验一: ......................................................错误!未定义书签。
二、实验二: (4)
三、实验三: (8)
四、实验四: (10)
五、实验五: ......................................................错误!未定义书签。
六、实验六: (19)
七、汇编实验总结 (23)
实验一
一. 实验题目
【汇编语言补充作业T20T20】编写完整程序,利用】编写完整程序,利用DOS 系统功能调用,从键盘输入一个字符串,并将该字符串从屏幕上换行后并输出。
二. 程序流程及思路
实现字符串输入,需要分成三个步骤:实现字符串输入,需要分成三个步骤:
1、在数据段中定义一个缓存区为存放字符串做准备;
2、DOS 系统功能调用0AH 号子功能,(DS:DX DS:DX))= = 输入缓冲区首址;输入缓冲区首址;输入缓冲区首址;
3、在输入的字符串尾加上‘、在输入的字符串尾加上‘$$’字符,以作为输出结束条件。’字符,以作为输出结束条件。
实现字符串输出,则需要注意的问题是:实现字符串输出,则需要注意的问题是:
1、缓冲区第三个字节才开始存放输入的字符,前两个字节分别存放缓冲区长度和字符串实际字符数;和字符串实际字符数;
2、输出回车换行可利用字符串:、输出回车换行可利用字符串:CR DB 0AH,0DH,CR DB 0AH,0DH,CR DB 0AH,0DH,’’$’。’。
汇编语言简单计算器程序实验报告
课程设计说明书题目: 简单计算器
院系:
专业班级:
学号:
学生姓名:
指导教师:
2010年12月31日
安徽理工大学课程设计(论文)任务书
计算机科学与工程学院硬件教研室
2010年12月17 日安徽理工大学课程设计(论文)成绩评定表
摘要
本次课程设计的题目是用汇编语言实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。想要用汇编语言实现简单的计算器,就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识进行运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,设计各个功能模块。当实现各个程序模块后,通过程序的调用最终实现一个简单的计算器。
关键词:计算器,汇编语言,四则运算,功能模块,调用
目录
1设计目的 (1)
2概要设计 (2)
2.1 系统总体分析 (2)
2.2 程序流程图及说明 (3)
3详细设计 (5)
3.1 主模块及子模块说明 (5)
3.2 各模块详细设计 (7)
4程序调试 (11)
4.1 运行界面分析 (11)
4.2 调试过程及分析 (11)
5心得体会 (13)
5.1 设计体会 (13)
5.2 系统改进 (13)
参考文献 (15)
1设计目的
汇编语言是计算机能够提供给用户使用的最快而又最有效的语言。同时,汇编语言也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间要求很高的场合,汇编语言的应用是必不可少的。至于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可。由于汇编语言如此地接近计算机硬件,因此,它可以最大限度地发挥计算机硬件的性能。用汇编语言编写的程序速度通常要比高级语言快几倍、几十倍、甚至成百上千倍,解释语言其程序速度更无法与汇编语言程序同日而语。
汇编语言程序设计实验报告
汇编语言程序设计实验报告
汇编语言程序设计实验报告
引言:
汇编语言是一种底层的计算机语言,通过直接操作计算机的硬件和寄存器来实现程序的功能。在本次实验中,我们学习了汇编语言的基本语法和编程技巧,并通过实践编写了一些简单的程序。本报告将对实验过程和结果进行总结和分析。
一、实验目的
本次实验的主要目的是让我们掌握汇编语言的基本语法和操作方式,培养我们对计算机底层运行机制的理解能力。通过编写汇编程序,我们可以更深入地了解计算机的运行原理,并且可以更加高效地编写一些底层程序。
二、实验环境
本次实验使用的是Windows操作系统,并且我们使用了MASM汇编器来编译和运行我们的汇编程序。MASM是一款经典的汇编语言开发工具,具有强大的功能和广泛的应用领域。
三、实验内容
在本次实验中,我们完成了以下几个任务:
1. 编写一个简单的汇编程序,实现两个数字的相加功能。
2. 编写一个汇编程序,实现对一个字符串进行反转。
3. 编写一个汇编程序,实现对一个数组进行排序。
四、实验步骤
1. 首先,我们学习了汇编语言的基本语法和指令集。了解了汇编语言中的寄存
器、指令和内存等概念,并且学会了如何使用它们来编写程序。
2. 接着,我们开始编写第一个程序,实现两个数字的相加功能。通过学习汇编语言中的加法指令,我们可以将两个数字加载到寄存器中,并且使用相应的指令进行相加操作。
3. 然后,我们编写了第二个程序,实现对一个字符串进行反转。通过学习汇编语言中的循环和条件判断指令,我们可以逐个字符地读取字符串,并且将它们按照相反的顺序存储到新的内存空间中。
汇编语言编程实验报告
汇编语言编程实验报告
汇编语言程序设计实验报告(一)
汇编语言程序设计实验报告(一)
一、预备知识
汇编语言程序设计是一门实践性很强的课程。编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。
二、实验目的
1、掌握实验运行汇编语言所用的计算机机型
2、熟悉常用编辑程序(行编辑程序EDLIN、全屏幕编辑程序QE及其它用于文件编辑
的应用程序。)
3、掌握汇编程序ASM、宏汇编程序MASM1.0以上。
4、LINK连接程序
5、DEBUG调试程序
三、汇编语言源程序上机操作过程
2、编辑源文件
根据给定的任务,可编写程序。如果经过检查认为所编程序无错时,就可在计
算机上通过编辑程序建立源程序文件了。一般在编辑过程中总会有错误产生,因此还要进行人工检查、修改以致重新编辑,直到所编辑的源程序无误为止,然后以一个源程序文件(ASM文件)
存盘。
将包含QE文件的工作磁盘插入驱动器A:。进入QE
A\QE
进入全屏幕后可以开始编程。文件名取为Myprog。asm
;Ddisplystring (09H)
CODESEGMENTPUBLIC
ASSUME CS:CODE,DS:CODE
ORG 100H
START:JMP BEGIN
MSG DB‘Hi ! This ia a dollar sign terminated string.’,’$’BEGIN:MOV AX,CS ;set up to display message
MOV DS,AX
MOV DX,OFFSET,SG ;set up to display message
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《汇编语言程序设计》第二次上机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)为程序运行时输入的串。
三、寄存器分配和变量定义说明:
题目3
1. 存储单元分配:
NUM为一个定义在数据段中的字节变量,存储一个二进制数
BUF为一个定义在数据段中的字节变量,存储回车换行与提示信息
BUF0为一个定义在数据段中的字节变量,存储一个十六进制数2.寄存器分配:
DI存储BUF0中某个字节的地址,用于寄存器间接寻址
AL存储NUM中二进制数高四位与低四位对应的数字的ASCII码
题目4
1. 存储单元分配:
BUF1、BUF2为两个定义在数据段中的字节变量,存储输入的字符串信息 BUF3为一个定义在数据段中的字节变量,回车换行
BUF4、BUF5为两个定义在数据段中的字节变量,存储提示信息
2.寄存器分配:
BX作为变址寻址寄存器使用
题目5(选做题)
1. 存储单元分配:
STR1、STR2为两个定义在数据段中的字节变量,存储提示信息
BUF1为一个定义在数据段中的字节变量,存储输入的字符串信息
BUF2为一个定义在数据段中的字节变量,回车换行
2. 寄存器分配:
AX存储输入的字符串对应的数字
CX用作计数器,控制循环次数
DI用作变址寻址的变址寄存器
四、流程图
题目4
题目5(选做题)
五、源程序及注释
题目1
.386
DATA SEGMENT USE16
BUF DB ?
DATA ENDS
STACK SEGMENT USE16 STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT USE16
ASSUME DS:DATA, SS:STACK, CS:CODE START:
MOV AX, DATA
MOV DS, AX
MOV AX, 0
DEC AX
ADD AX, 07FFFH
ADD AX, 2
NOT AX
SUB AX, 0FFFFH
ADD AX, 8000H
OR AX, 0BFDFH
AND AX, 0EBEDH
XCHG AH, AL
SAL AX, 1
RCL AX, 1
MOV AH, 4CH
INT 21H
CODE ENDS
END START
题目2
.386
DATA SEGMENT USE16
STR1 DB 0,1,2,3,4,5