汇编语言实验1
实验一、汇编语言程序的上机过程及调试
实验一、汇编语言程序的上机过程及调试<i>汇编程序调试过程</i>实验一、汇编语言程序的上机过程及调试<i>汇编程序调试过程</i>一、实验目的熟练掌握汇编语言上机汇编、连接和装入运行。
学会使用调试程序DEBUG或TD来进行程序调试。
<i>汇编程序调试过程</i>二、实验内容(一)汇编程序建立过程a.建立汇编源程序─通过b.编译为目标文件d.连接为可执行文件c.不通过,重新修改(语句错误)f.不正确,用调试工具调试,重新修改(逻辑错误)e运行正确g.完成<i>汇编程序调试过程</i>汇编语言的源程序需要编译和连接后才能在计算机上执行。
汇编语言源程序扩展名规定为.ASM。
用MASM编译源程序后,将产生源程序的目标程序文件,其扩展名为.OBJ。
再经过连接程序(LINK)把目标程序文件与库文件或其他目标文件连接在一起形成可执行文件(扩展名为.EXE)。
这时就可以运行该程序了。
DOS下可直接键入可执行程序的文件名从而运行该程序。
<i>汇编程序调试过程</i>(二)过程详细说明步骤a: 建立汇编源程序如果现在的根目录不是E盘,写入E :然后回车,再打入cd *** (***是你新建的文件夹名),例如电气031班的同学,现在你的DOS界面根目录为:E\dq031 。
打入edit然后回车,EDIT的操作画面便会出现在屏幕上,alt键可以控制工具栏操作,←↑→↓箭头控制阴影选择的上下移动。
我们现在按alt键,选中flie, 按↓选中open,回车,找到刚刚拷贝的asm 文件,回车。
选择存盘并给你输入的文件起一个文件名,形式:*** . asm ;然后回到dos环境。
<i>汇编程序调试过程</i>步骤b: 编译目标文件在DOS提示符下键入MASM *** .asm回车,(其中***为你刚才在*****RE a 中建立的文件名)这时汇编程序的输出文件可以有三个(分别:.obj .lst .crf),便会出现三次提问,在这可以一路回车即可。
实验1_认识汇编语言
实验一 认识汇编语言1.1 实验目的(1)理解汇编语言的概念及其与高级语言的区别(2)了解MASM6.11和TASM软件包的安装及配置(3)了解常用汇编语言集成环境(4)掌握汇编语言程序的上机过程1.2 预备知识1.2.1 系统环境对汇编语言的初学者来说,DOS环境的优点是:DOS操作系统简单,程序员可以管理系统的所有资源,访问和修改系统中的所有内存(包括内存控制块、中断向量表),直接对I/O端口进行读写,便于对知识的学习和理解。
其缺点是:单任务的DOS操作系统只有一个运行级别,任何进程与DOS操作系统都是同等级别的,致使系统中各个进程会相互影响。
如果某个进程死机,整个系统就会瘫痪。
但是DOS系统已经退出历史舞台,目前的学生只熟悉Windows环境而对DOS知之甚少,继续要求学生在DOS系统的命令行界面下编写和调试程序,无疑存在巨大的困难。
目前,IBM PC及其兼容机配置的Intel系列微处理器可以工作在实模式、保护模式和虚拟86三种模式下。
实模式是汇编语言入门的基础,是汇编语言教学中无法跨越的阶段。
了解实模式是理解内存分段式管理和寻址方式的基础。
保护模式是Windows系统的工作模式,虚拟86模式则是在保护模式下提供的模拟8086处理器工作的模式,为学习汇编语言提供了便利。
DOS汇编程序在Win32环境中运行时,操作系统会模拟实模式运行16位进程。
对于一些可能会影响整个操作系统工作的指令,windows操作系统会拒绝执行。
64位的Windows 环境则不提供16位应用的虚拟环境。
因此,采用Win32环境进行汇编语言程序的编辑工作,在虚拟控制台环境中学习(汇编、连接和调试)汇编语言是最佳方案。
下面我们将逐步给大家讲解如何安装和配置汇编语言的编译调试环境,并选择适合的编辑软件来组建汇编语言的集成环境。
最后,叙述如何使用Visual Studio 2008 Express作为汇编语言的工作环境。
1.2.2 汇编语言上机过程汇编语言程序需要经过编辑、汇编、连接、调试与执行等过程才能实现其具体功能。
汇编语言实验一
实验一查看CPU和内存,用机器指令和汇编指令编程一.实验目的:掌握DEBUG 的基本命令及其功能二.实验内容:1. 预备知识:Debug的使用(1) 什么是Debug?Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。
使用它,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。
(2) 我们用到的Debug功能●用Debug的R命令查看、改变CPU寄存器的内容;●用Debug的D命令查看内存中的内容;●用Debug的E命令改写内存中的内容;●用Debug的U命令将内存中的机器指令翻译成汇编指令;●用Debug的T命令执行一条机器指令;●用Debug的A命令以汇编指令的格式在内存中写入一条机器指令。
(3) 进入DebugDebug是在DOS方式下使用的程序。
我们在进入Debug前,应先进入到DOS方式。
用以下方式可以进入DOS:①重新启动计算机,进入DOS方式,此时进入的是实模式的DOS。
②在Windows中进入DOS方式,此时进入的是虚拟8086模式的DOS。
(4) 用R命令查看、改变CPU寄存器的内容1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名若要修改一个寄存器中的值,比如AX中的值,可用R命令后加寄存器名来进行,输入“r ax”后按Enter键,将出现“:”作为输入提示,在后面输入要写入的数据后按Enter 键,即完成了对AX中内容的修改。
若想看一下修改的结果,可再用R命令查看(5) 用Debug的D命令查看内存中的内容1)格式:-d 段地址:偏移地址,Debug将列出从指定内存单元开始的128个内存单元的内容。
使用D命令,Debug将输出3部分内容,如图2.34所示。
中间是部分从指定地址开始的128个内存单元的内容,用十六进制的格式输出,每行的输出从16的整数倍的地址开始,最多输出16个单元的内容。
微机原理与接口技术 实验一 8086汇编语言的编程实践
实验一8086汇编语言的编程实践【实验目的】1.掌握8086汇编语言编程以及调试的过程。
2.学会使用masm.exe、debug.exe、td.exe等软件。
【实验内容】1.通过示范源程序熟悉从如何建立源文件到进行调试【实验步骤】1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。
如果没有创建过此目录,请用如下方法创建:通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷贝到此目录中。
2.建立ASM源程序建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。
下面的例子说明了用EDIT文本编辑器来建立ASM源程序的步骤(假定要建立的源程序名为HELLO.ASM),用NOTEPAD(记事本)建立ASM源程序的步骤与此类似。
在Windows中点击桌面左下角的“开始”按钮→选择“运行”→在弹出的窗口中输入“ C:\ASM\HELLO.ASM”,屏幕上出现EDIT的编辑窗口。
窗口标题行显示了EDIT程序的完整路径名。
紧接着标题行下面的是菜单行,窗口最下面一行是提示行。
菜单可以用Alt键激活,然后用方向键选择菜单项,也可以直接用Alt-F 打开File文件菜单,用Alt-E打开Edit编辑菜单,等等。
如果键入EDIT命令时已带上了源程序文件名(C:\ASM\HELLO.ASM),在编辑窗口上部就会显示该文件名。
如果在键入EDIT命令时未给出源程序文件名,则编辑窗口上会显示“UNTITLED1”,表示文件还没有名字,在这种情况下保存源程序文件时,EDIT会提示输入要保存的源程序的文件名。
编辑窗口用于输入源程序。
EDIT是一个全屏幕编辑程序,故可以使用方向键把光标定位到编辑窗口中的任何一个位置上。
实验一 利用 DEBUG 调试汇编语言程序段
实验名称实验一利用 DEBUG 调试汇编语言程序段一、实验目的1.熟悉 DEBUG 有关命令的使用方法;2.利用 DEBUG 掌握有关指令的功能;3.利用 DEBUG 运行简单的程序段。
二、实验要求1.仔细阅读有关 DEBUG 命令的内容,对有关命令,要求事先准备好使用的例子;三、实验环境DOS 操作系统四、实验内容1.进入和退出 DEBUG 程序;1)开始—运行点确定进入DOS命令窗口图1进入DOS命令窗口2)在命令窗口中输入 dubug 进入 debug 程序图2进入 debug 程序3)进入 debug 窗口后,输入 q 命令退出 debug图3退出 debug2.学会 DEBUG 中的1)D 命令(显示内存数据 D 段地址:偏移地址)例 1:-D100 ;显示 DS 段, 0100 开始的 128 个字节内容-D ;默认段寄存器为 DS,当前偏移地址(刚进入 debug 程序偏移地址为 0100H)图4默认显示 DS 段内容-D DS:100 ;显示 DS 段, 0100H 开始的 128 个字节内容图5显示 DS 段内容-D CS:200 ;显示 CS 段, 0200H 开始的 128 个字节内容图6显示 CS 段内容-D 200:100 ;显示 DS 段, 0200:0100H 开始的 128 个字节内容图7显示 DS段0200:0100H内容-D 200 ;显示 DS 段, 0200H开始的128个字节内容图8显示 DS段0200H开始的内容-D 100 L 10 ;显示 DS 段, 100H 开始的 100H 个字节内容图9显示 DS段100H开始的100H字节内容2)E 命令(修改指定内存)例 1:-E100 41 42 43 44 48 47 46 45-D 100,L08结果:073F:0100 41 42 43 44 48 47 46 45-e 100 修改内存内容-d 100,L08 查看刚才修改的内存内容图10 修改和查看DS段100H开始的80H字节内容例 2: -E 100073F:0100 41. 42 : 42 是操作员键入此命令是将原 100 号内存内容 41 修改为 42,用 D 命令可察看。
实验1---汇编语言语法练习与代码转换
实验报告( 2015/ 2016 学年第二学期)课程名称微型计算机原理与接口技术实验名称实验时间指导单位指导教师学院学号指导老师实验报告三、实验过程描述与结果分析汇编语言源程序编写好以后,必须经过下列几个步骤才能在机器上运行:(1) 编辑源程序(生成.ASM文件)(2) 汇编源程序(.ASM → .OBJ)(3) 目标程序(.OBJ → .EXE )(4) 调试可执行程序(使用调试程序Debug调试生成的.EXE文件)(5) 运行程序输出结果。
排除语法错误要求通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序。
但有很多语法错误,要求按照原样对源程序进行编辑,汇编后,根据TASM给出的错误信息对源程序进行修改,直到没有语法错误为止,然后进行,并执行相应的可执行文件。
正确的执行结果是在屏幕上显示:25+9=34。
修改后代码:(分号后为修改);FILENAME:EXA121.ASM.486DATA SEGMENT USE16SUM DB ?,?,MESG DB '25+9= 'DB 0,0 ;DB 0,0,'$'N1 DB 9,F0H ;DB 9,0F0HNEXT: ADD [BX+8],SUM ;NEXT:MOV CL,SUMADD BYTE PTR [BX+8],CL ADD [BX+7],30H ;ADD BYTE PTR [BX+7],30HADD [BX+8],30H ;ADD BYTE PTR [BX+8],30HRETCHANG:ENDPCODE ENDSEND BEG。
计算机组成原理实验1-汇编语言实验
微处理器与接口技术实验指导实验一监控程序与汇编语言程序设计实验一、实验要求1、实验之前认真预习,明确实验的目的和具体实验内容,设计好主要的待实验的程序,做好实验之前的必要准备。
2、想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果。
3、在教学实验过程中,要爱护教学实验设备,认真记录和仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。
4、实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。
善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。
二、实验目的【1】学习和了解TEC-XP16教学实验系统监控命令的用法;【2】学习和了解TEC-XP16教学实验系统的指令系统;【3】学习简单的TEC-XP16教学实验系统汇编程序设计。
三、实验注意事项(一)实验箱检查【1】连接电源线和通讯线前TEC-XP16实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP16实验系统上的芯片和PC机的串口造成损害。
【2】五位控制开关的功能示意图如下:【3】几种常用的工作方式【开关拨到上方表示为1,拨到下方为0】(二)软件操作注意事项【1】用户在选择串口时,选定的是PC机的串口1或串口2,而不是TEC-XP16实验系统上的串口。
即选定的是用户实验时通讯线接的PC机的端口;【2】如果在运行到第五步时没有出现应该出现的界面,用户需要检查是不是打开了两个软件界面,若是,关掉其中一个再试;【3】有时若TEC-XP16实验系统不通讯,也可以重新启动软件或是重新启动PC再试;【4】在打开该应用软件时,其它的同样会用到该串口的应用软件要先关掉。
(三)联机通讯失败自检如果上述的硬件和软件的操作都正确,联机却依旧失败,可以进行如下测试:【1】测试PC机的串口是否能正常工作,或是换一台PC或换同一台PC的另一个串口再试,在换串口时要将TEC-XP16实验系统断电,换完后重新启动实验系统和软件;【2】检查机器上的元器件插接是否正确(建议用户对照能够正常通讯的实验系统进行详细检查),有没有被学生动过,尤其是扩展内存和扩展I/O接口时,芯片方向是否插对,片选信号有没有连接;【3】检查相应的短路子是否连接正确;【4】建议教师预留一台运行正常的TEC-XP16实验系统备用,机器出问题后可以对照检查。
实验一 emu8086的使用
实验一emu8086软件的使用一. 实验目的1.熟悉汇编语言开发环境。
2.掌握Emu8086软件使用方法。
3.了解汇编语言的程序结构、调试一个简单的程序。
4.理解寻址方式的意义。
二. 实验环境硬件环境:奔3以上处理器,512MB以上内存空间软件环境:windowsXP以上操作系统,emu8086编译环境。
三.实验内容与完成情况1.实验程序例3.1程序:data segmentdata1 db 0f8h,60h,0ach,74h,3bhdata2 db 0c1h,36h,9eh,0d5h,20hpkey db "press any key...$"data endscode segmentassume cs:code,ds:datastart:mov ax, datamov ds, axmov es, axmov cx,5clclooper:mov al,data2[si]adc data1[si],alinc sidec cxjnz loopermov ax, 4c00hint 21hcode endsend start2.实验步骤首先打开Emu8086的软件,选择COM模板,将程序录入8086程序运行软件,点击保存扩展名为.asm,再单击模拟,再选择程序的单步执行模式,得到以下的操作图。
(1)开始执行(2)单步执行(3)结束四.出现的问题1.建立编码模板时出错;2.不知道如何执行程序。
五.对问题的解决方法1.在老师的提示下,知道.exe文件是需要用到的模板;2.与C++6.0的界面对比后,知道点击emulate可以打开运行界面,点击single step进行单步执行,点击run可以完全执行程序。
实验1-ADS1.2安装及简单的汇编程序
展示程序运行结果
程序链接:生成可执行文件
程序运行:查看输出结果验 证程序功能
程序编译:确保程序语法正 确无错误
结果分析:分析实验数据得 出结论
分析程序的正确性和效率
程序运行结果与预期是否一致 程序是否存在语法错误或逻辑错误 程序运行效率是否满足要求 程序是否存在内存泄漏或性能瓶颈
总结实验经验和教训
了解汇编语言在计 算机科学领域中的 应用和重要性
安装DS1.2集成开发环境
打开安装包点击“Next”
同意许可协议选择安装路径
下载并安装适合你操作系统 的版本
等待安装完成启动DS1.2 IDE
创建新工程并配置工程选项
打开DS1.2软件选 择“File”菜单中 的“New Project” 选项
在弹出的“New Project”对话框中 输入工程名称和保 存路径
解决方案:检查输入数据或代码逻辑错 误确保程序正确执行
问题4:实验时间不够 解决方案:合理安排时 间提前准备实验所需材料和工具
解决方案:合理安排时间提前准备实验 所需材料和工具
提出改进和优化建议
针对实验过程中出现的问题提出具体的改进措施。 根据实验结果分析可能存在的优化空间提出相应的优化建议。 结合实验经验提出对实验流程、实验设备的改进和优化建议。
打开集成开发环境(IDE)
编译并运行程序
点击编译按钮生成目标文件
添加标题
添加标题
打开已写好的汇编程序文件
添加标题
添加标题
点击运行按钮执行程序
调试程序
打开实验箱电源确保电源指示灯亮起 将编写好的汇编程序通过串口发送到实验箱的微控制器中 按下实验箱上的“运行”按钮观察实验箱的输出是否符合预期 如果实验箱的输出不符合预期检查汇编程序是否有语法错误或逻辑错误并进行相应的修改
实验一 用DEBUG熟悉指令功能和寻址方式
实验一用DEBUG熟悉指令功能和寻址方式一、实验性质:验证型二、实验目的:掌握debug的使用,能建立和运行汇编语言程序掌握寻址方式DEBUG的命令DEBUG的命令都用单个字母表示,其后可以跟一个或多个参数,参数之间用空格或逗号分隔。
DEBUG的命令参数大多数是地址或地址范围,其地址书写格式为:[段地址:]偏移地址其中的段地址可以用段寄存器名表示,也可以用一个十六进制数表示。
如:ES:10043A5:200地址范围的书写格式为:Ⅰ.[段地址:]起始偏移地址终止偏移地址Ⅱ.[段地址:]起始领衔地址L长度如:CS:10010F和CS:100L10所指的地址范围是一致的。
当输入的命令不正确时,DEBUG将在该行底下指出错误所在。
注意:在DEBUG下,输入的数据和显示的数据都是十六进制数,不用在数据后加“H”A汇编与反汇编命令1.汇编命令A格式:A[地址]功能:从键盘输入汇编程序,并逐条地把汇编指令翻译成机器代码指令存入对应内存单元。
说明:如果不指定汇编地址,则以CS:IP为地址。
例:0BB6:0000-0005写入三条指令。
2.反汇编命令U格式:U[地址]/[地址范围]功能:将指定地址范围内的机器代码翻译成汇编源程序指令显示出来,并同时显示地址及代码。
注意:反汇编时一定确认指令的起始地址,否则得不到正确的结果。
例:反汇编看CS:0005-0011单元的指令。
B显示与修改内存单元内容的命令1.显示内存单元内容命令D格式1:D[地址]格式2:D地址范围只写一个D,表示显示从当前地址单元开始的128个单元中的字节数据说明:D命令在屏幕上显示的内容分为三部分,左边是每一行存储单元的起始地址,中间是各字节单元的内容,右边是各单元内容对应的ASCII码字符(不可显示的字符用"."代替)。
指定要显示的单元的逻辑地址,即写出完整的段地址和偏移地址。
指定要显示数据区起始单元的地址和最后一个单元的地址。
实验一汇编语言上机及Debug调试
实验一汇编语言程序上机过程以及调试(1)一、预习内容1.工具软件MASM、LINK的使用2.常用DEBUG命令的使用: G,D,R,T,U,Q3.完整程序设计方法的格式。
二、目的要求1.掌握常用工具软件MASM、LINK的使用2.掌握常用DEBUG命令: G,D,R,T,U,Q 能灵活使用这些命令调试程序3.掌握完整程序设计方法的格式,能正确书写数据段,代码段等。
三、实验内容比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match'否则显示’No match’.请读程序,并将程序补充完整。
DSEG SEGMENTstring1 db 'Move the cursor backward.'string2 db 'Move the cursor backward.'mess1 db 'Match.',13,10,'$'mess2 db 'No match.',13,10,'$'DSEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG, es:DSEG,MAIN PROC FARstart: mov ax, dsegmov ds, axmov es, axlea si ,string1①cld②repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp: mov ah,09hint 21hmov ax, 4c00hint 21hMAIN ENDPCSEG ENDSend start实验步骤:1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在d:\masm下,注意保存时将文件扩展名改为.asm(如test1.asm)。
2)屏幕左下角”开始”–“运行”输入cmd ,进入dos命令操作,先用d: 和cd mas m 命令改变路经,接着用”masm + 文件名” (如masm test1,这里文件名可以不带扩展名)对源文件进行汇编,产生.obj文件和.LST文件。
实验一 TEC-XP+用法与汇编语言程序设计
南京工程学院计算机工程学院计算机组成与结构实验报告书实验学生班级K网络工程121实验学生姓名王云峰学号*********实验地点信息楼A115实验一TEC-XP+用法与汇编语言程序设计同组同学李翔240121515 实验日期12周周五实验仪器号一、实验目的1.了解TEC-XP+机的基本结构,掌握各开关、指示灯、按键的功能,建立对TEC-XP+机的感性认识。
2.掌握TEC-XP+机与PC机联机通讯的方法。
3.了解TEC-XP+机的指令系统及寻址方式;掌握TEC-XP+机的汇编语言程序设计方法。
4.掌握TEC-XP+机汇编语言程序的调试方法;掌握常用监控命令的格式、功能及用法。
二、实验内容1.了解TEC-XP+机的基本结构,熟悉各开关、指示灯、按键的功能。
2.完成TEC-XP+机与PC机的联机通讯。
3.调试几个汇编语言源程序,修改错误直至获得正确运行结果。
4.记录运行结果,并读懂实验程序。
三、实验步骤与结果例1:设计一个程序,在屏幕上输出显示字符‘6’。
A 2000 ;地址从16进制的2000(内存RAM区的起始地址)开始2000: MVRD R0,0036 ;把字符‘6’的ASCII码送入R02002: OUT 80 ;在屏幕上输出显示字符‘6’,80为串行接口地址2003: RET ;每个用户程序都必须用RET指令结束2004:(按回车键即结束源程序的输入过程)这就建立了一个从主存2000h地址开始的小程序。
在这种方式下,所有的数字都约定使用16进制数,故数字后不用跟字符h。
每个用户程序的最后一个语句一定为RET汇编语句。
因为监控程序是选用类似子程序调用方式使实验者的程序投入运行的,用户程序只有用RET 语句结束,才能保证用户程序运行结束时能正确返回到监控程序的断点,保证监控程序能继续控制教学机的运行过程。
例2:设计一个程序,用次数控制在终端屏幕上输出‘0’到‘9’十个数字符。
A 2020MVRD R2,00OA ;送入输出字符个数MVRD R0,0030 ;‘0’字符的ASCII码OUT 80 ;输出保存在R0低位字节的字符DEC R2 ;输出字符个数减1JRZ 202E;判10个字符输出完否,已完,则转移到程序结束处PUSH R0 ;未完,保存R0的值到堆栈中(2028)IN 81 ;查询接口状态,判字符串行输出完成否SHR R0 ;JRNC 2028;未完成,则循环等待POP R0 ;已完成,准备继续输出下一字符,从堆栈恢复R0的值INC R0 ;得到下一个要输出的字符JR 2024 ;转去输出字符(202E)RET这个程序只使用基本汇编语句。
实验一 汇编语言程序设计EMU8086基础实验
实验一汇编语言程序设计EMU8086基础实验1、实验目的和要求:了解使用EMU8086(8086汇编模拟工具)学习汇编的方法。
2、实验内容:编写汇编程序,计算2010H+2011H,并把和存入RESULT单元。
8086汇编模拟工具,结合了一个先进的原始编辑器、汇编器、反汇编器、具除错功能的软体模拟工具(虚拟 PC),还有一个循序渐进的指导工具。
这对刚开始学汇编语言的人会是一个很有用的工具。
它会在模拟器中一步一步的编译程式码并执行,视觉化的工作环境让它更容易使用。
你可以在程式执行当中检视暂存器、标志以及内存。
模拟器会在虚拟 PC 中执行程式,这可以隔绝你的程式,避免它去存取实际硬体,像硬盘、内存,而在虚拟机器上执行汇编程序,这可以让除错变得更加容易。
3、实验仪器与器材:计算机及EMU8086汇编软件等。
4、实验原理:自己总结5、实验过程与测试数据(含电路图/程序框图):A、打开EMU8086 v4.08软件,新建工程,选EXE模板,清屏,编写8086程序代码。
B、保存程序代码为*.asm文件,编译保存为可执行文件.exe,编译保存没有错误则模拟运行。
如果有错误返回修改。
运行有单步运行、全速运行等。
实验一参考程序DATA SEGMENTX DW 2010HY DW 2011HRESULT DW ?DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV AX,XADD AX,YMOV RESULT,AXRETMAIN ENDPCODE ENDSEND START6、实验分析:自己分析7、实验体会自己总结。
实验五汇编语言程序设计实验(一)
实验五汇编语言程序设计实验(一)一、实验目的1、了解和掌握汇编语言子程序和主程序的设计。
2、掌握循环程序的设计。
3、掌握汇编语言主程序与子程序的调用和参数传递。
4、进一步熟悉在PC机上建立,汇编,链接,调试和运行8086、8088汇编语言程序的过程。
二、实验内容1、复习汇编语言源程序的上机过程:2、编写一个完整程序(包含循环设计和子程序设计)在以strg为首地址的缓冲区中存放着1个字符串,以-1作为结束标志,编程统计字符串长度,并将结果存入lenth单元。
要求统计字符串用子程序完成。
data segmentstrg db ‘abcd’,-1lenth dw ?data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea dx,strgcall scountmov lenth,bxmov ah,4chint 21hscount proc nearpush sixor bx,bxmov si,dxnext:cmp byte ptr[si],-1jz overinc bxinc sijmp nextover:pop siretscount endpcode endsend start三、实验器材IBM PC 微机一台四、实验要求1、正确理解本次实验的目的,内容和原理。
2、能编写相应的程序五、实验报告要求完成下面任务:从键盘输入1个长度小于100的字符串,存入以buff 为首地址的缓冲区,其中如有大写字母,要求用子程序转换成小写字母,字符串以回车键作为结束。
写出操作步骤,程序清单,程序注释,实验现象。
实验1 仿真软件的使用与汇编语言程序调试实验
3、实验设备与仪器
PC机 Wave软硬件仿真软件。 PC机、Wave软硬件仿真软件。 软硬件仿真软件
仿真软件的使用与汇编语言程序调试实验
4、实验步骤
1)打开电脑电源。 打开电脑电源。 启动计算机,打开伟福仿真软件。 2)启动计算机,打开伟福仿真软件。首先进行仿真器的 设置,打开仿真器设置窗口, 设置,打开仿真器设置窗口,在仿真器标签里选择使用 伟福软件模拟器,进入软件仿真环境。 伟福软件模拟器,进入软件仿真环境。 用单步、设置断点、 3)用单步、设置断点、全速三种执行程序的方法调试程 观察相关内容数据的变化。 序,观察相关内容数据的变化。
Байду номын сангаас
仿真软件的使用与汇编语言程序调试实验
2、实验内容
将指定的片内数据存储器(RAM)40H起建立00H-将指定的片内数据存储器(RAM)40H起建立00H-起建立00H 0FH的16个数据 个数据; 0FH的16个数据; 将所建立的数据移到指定片外数据存储块1000H 1000H起 将所建立的数据移到指定片外数据存储块1000H起 16个存储单元 个存储单元)。 16个存储单元)。
仿真软件的使用与汇编语言程序调试实验 6、实验报告要求
1)实验报告要求有实验目的、要求、设备或仪器、程序设计、 1)实验报告要求有实验目的、要求、设备或仪器、程序设计、 实验报告要求有实验目的 步骤、数据分析。数据分析填在报告本的原始数据栏。 报告本的原始数据栏 步骤、数据分析。数据分析填在报告本的原始数据栏。 2)画出实验要求1)2)程序设计流程图 画出实验要求1)2)程序设计流程图、 2)画出实验要求1)2)程序设计流程图、写出程序清单并有简 要注释。 要注释。 3)写出实验过程中所遇到的问题与解决的办法 写出实验过程中所遇到的问题与解决的办法。 3)写出实验过程中所遇到的问题与解决的办法。
实验1 ARM 指令实验
2012-5-17
深圳市优龙科技有限公司
数据处理指令 数据处理指令可分为数据传送指令、算术逻 辑运算指令和比较指令等。 数据传送指令用于在寄存器和存储器之间进 行数据的双向传输。 算术逻辑运算指令完成常用的算术与逻辑的 运算,该类指令不但将运算结果保存在目的寄 存器中,同时更新CPSR中的相应条件标志位。 比较指令不保存运算结果,只更新CPSR中 相应的条件标志位。
加载/存储指令 加载 存储指令 ARM微处理器支持加载/存储指令用于在寄存器和存 储器之间传送数据,加载指令用于将存储器中的数据传 送到寄存器,存储指令则完成相反的操作。 常用的加载存储指令如下: ------ LDR 字数据加载指令 ------LDRB 字节数据加载指令 ------LDRH 半字数据加载指令 ------STR 字数据存储指令 ------STRB 字节数据存储指令 ------STRH 半字数据存储指令 在本实验中主要用到了LDR和STR指令,下面将介 绍这两条指令的用法:
2012-5-17 深圳市优龙科技有限公司
上面是关于该实验涉及到的部分函数,完整的 代码请看光盘目录的exp文件夹下相应实验的工程 目录。 1.7 练习题 编写一个汇编代码,让LED灯D13不停的闪烁, 同时可以通过调节延迟时间来控制D13闪烁的频率。
2012-5-17
深圳市优龙科技有限公司
2012-5-17 深圳市优龙科技有限公司
1.6 ARM汇编程序编程实例 汇编程序编程实例 1.参考汇编代码程序 参考汇编代码程序,主要实现LED灯D14的不停 闪烁的功能,主要代码如下: ;汇编指令实验 ;定义端口E寄存器预定义 rGPFCON EQU 0x56000050 rGPFDAT EQU 0x56000054 rGPFUP EQU 0x56000058 AREA Init,CODE,READONLY ;该伪指令 定义了一个代码段,段名为Init,属性只读 ENTRY ;程序的入口点标识 ResetEntry
汇编语言编程实验报告
汇编语言编程实验报告汇编语言程序设计实验报告(一)汇编语言程序设计实验报告(一)一、预备知识汇编语言程序设计是一门实践性很强的课程。
编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。
二、实验目的1、掌握实验运行汇编语言所用的计算机机型2、熟悉常用编辑程序(行编辑程序EDLIN、全屏幕编辑程序QE及其它用于文件编辑的应用程序。
)3、掌握汇编程序ASM、宏汇编程序MASM1.0以上。
4、LINK连接程序5、DEBUG调试程序三、汇编语言源程序上机操作过程2、编辑源文件根据给定的任务,可编写程序。
如果经过检查认为所编程序无错时,就可在计算机上通过编辑程序建立源程序文件了。
一般在编辑过程中总会有错误产生,因此还要进行人工检查、修改以致重新编辑,直到所编辑的源程序无误为止,然后以一个源程序文件(ASM文件)存盘。
将包含QE文件的工作磁盘插入驱动器A:。
进入QEA\QE进入全屏幕后可以开始编程。
文件名取为Myprog。
asm;Ddisplystring (09H)CODESEGMENTPUBLICASSUME CS:CODE,DS:CODEORG 100HSTART:JMP BEGINMSG DB‘Hi ! This ia a dollar sign terminated string.’,’$’BEGIN:MOV AX,CS ;set up to display messageMOV DS,AXMOV DX,OFFSET,SG ;set up to display messageMOV AH,09H;display string function requestINT 21H ;call DOSMOV AH ,4CH ;terminate propram funct requestINT 21H ;Call DOSCODE ENDS;end of code segmentEND START;strat is the entry point输入完毕后,按ALT---X,存盘返回DOS3、汇编源程序文件(ASM,MASM)由编辑程序所建立的ASM文件只是个文本文件,计算机无法执行。
实验一 清零程序
实验一清零程序一、实验目的: 掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容:把2000H~20FFH 的内容清零。
三、实验程序框图四、实验步骤: 用连续或单步方式运行程序,检查2000~20FF 中执行程序前后的内容变化。
五、思考:假使把1000H~10FFH 中的内容改成FF,如何修改程序,请分别用连续和单步方式运行程序来完成校验证六、程序清单(1)基本程序(文件名SW01.ASM)ORG 0000HLJMP SE01ORG 0640HSE01: MOV R0,#00H ;(00H)送R0,R0 为计数器MOV DPTR,#2000H ;(2000H)送DPTRLOO1: CLR A ;累加器A 清零MOVX @DPTR,A ;存储空间内容清零INC DPTR ;DPTR 加1INC R0 ;R0 加1CJNE R0,#FFH,LOO1 ;若R0 不等于00,则跳转至LOO1 继续循环LOOP: SJMP LOOPEND七、思考:假使把1000H~10FFH 中的内容改成FF程序如下:ORG 0000HLJMP SE01ORG 0640HSE01: MOV R0,#00H ;(00H)送R0,R0 为计数器MOV DPTR,#1000H ;(2000H)送DPTRLOO1: MOV A,#FF;累加器A 置FFMOVX @DPTR,A ;存储空间内容置FFINC DPTR ;DPTR 加1INC R0 ;R0 加1CJNE R0,#FFH,LOO1 ;若R0 不等于00,则跳转至LOO1 继续循环LOOP: SJMP LOOPEND现象:运行第一条程序可以发现1000H~10FFH 中的内容变成FF,运行第二条程序1000H~10FFH 中的内容改成00.而其它单元的内容不变。
心得:该实验的内容比较简单。
实验二P3.3 口输入,P1 口输出一、实验目的:掌握P3 口、P1 口简单使用。
汇编语言综合实验 --- 学生成绩排序(单链表实现)
这一部分任务是按学生总成绩由高到低进行排序。采用单链表方式,给数据元素的链指针LINK字段装填数据,使LINK字段指向它的后继数据元素。步骤如下:
Ⅰ.初始时,数组元素的每个LINK字段值为0,表示数组元素没有被选中。扫描数组元素的SUM字段,从中找到第一个最大的数,将这个数组元素设置为链表的头,保存这个数组元素的位移量,并将其LINK字段设置为1,标记这个数组元素已被选中但尚未装填链指针。
重复上述步骤直到该结构体类型数组中的最后一个节点LINK字段置为1,该节点即为单链表的链尾。
③遍历单链表,即对学生成绩信息按总成绩由高到低输出。
首先将单链表的头指针赋值给BX,依次循环COUNT(学生人数)次输出每一个数组元素的值,每次输出结束后,将BX的值加上TYPE S_ARRAY(即加16字节),BX指向下一个数组元素的首地址。
②建立单链表,即完成对学生成绩信息的降序排列。
首先从所有数组元素中找出总成绩最大的一项,将该数组元素作为单链表的头指针,保存在DX中,同时将LINK字段赋值为1;
其次,从LINK字段为0的数组元素中找到总成绩最大的一项,将该数组元素的偏移地址作为前一节点的LINK字段值,同时将该节点的LINK字段值置为1;
图1-1程序主界面:
图1-2程序二级菜单界面:
2.排序功能的实现:
图1-2输入学生成绩界面:
图1-4按总分排序输出学生成绩信息:
3.设计思路:
(1)数据定义:
一个数据元素(一个学生的数据项)应该为一个结构类型,定义如下:
STUDENT STRUC;定义学生结构体
LINK DW 0;单链表指针,指向下一个节点偏移地址
Ⅰ.将链表的头元素的位移量送到BX寄存器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.若要查看1863:1000单元开始的内容,使用什么命令,显示结果。
5.若要查看2000:0000单元的命令,使用什么命令,显示结果。
6.若要修改AX寄存器的内容为1234,使用什么命令,显示结果。
思பைடு நூலகம்与练习
老师评价
指导老师签名:
实验一《DEBUG调试命令的使用》实验报告
实验名称
DEBUG调试命令的使用
实验
时间
年月日
节课
实验
时数
2
实验学生
指导教师
实验场地
实验准备
(1)操作系统: Windows 2000 /windowsxp
(2)汇编软件:MASM
实验目的
(1)了解汇编语言调试程序使用的基本过程。
(2)掌握使用debug命令中常用的命令。
(3)使用debug调试掌握数据的寻址方式。
实验任务
1.请分别使用debug的D、R、E、F、A、U、T、P、Q命令,写出这些命令的功能是什么?
实验步骤
2.若要在1863:0001单元内写入指令MOV AX,1234,应使用什么指令?若当前的(CS)不等于1863,(IP)也不等于0001要使用T执行写入的指令应先使用什么命令?为什么?