实验一 MedWin的使用与汇编语言上机操作
MedWin软件使用
MedWin 概述
MedWin 集成开发环境快速入门
MedWin 是万利电子有限公司Insight® 系列仿真开发系统的高性能集成开发环境。集编辑、编译/ 汇编、在线及模拟调试为一体,VC 风格的用户界面,内嵌自主版权的宏汇编器和连接器,并完全支持 Franklin/Keil C 扩展OMF 格式文件,支持所有变量类型及表达式,配合Insight® 系列仿真器,是您 开发80C51 系列单片机的理想开发工具。
从因特网上下载安装
1. 下载所需的MedWin 中文版Chinese.zip 或MedWin 英文版English.zip 文件 2. 双击鼠标左键,释放文件Chinese.zip 或English.zip 3. 将文件释放到C:\Windows\Temp 或其它文件夹 4. 进入C:\Windows\Temp\Chinese 或C:\Windows\Temp\English 文件夹 5. 在文件夹内点击setup,安装MedWin 集成开发环境
图5:安装MedWin 集成开发环境路径选择 确认安装目录后,MedWin 集成开发环境系统安装完成。安装界面提示是否运行MedWin 集成开发
MedWin 集成开发环境快速入门
环境,如果对选择确认运行,下一步将进行MedWin 集成开发环境的系统设置;如果是升级安装,将运 行MedWin 集成开发环境。
发环境的系统画面。
第三步:设置工作目录
图8:MedWin 集成开发环境端口选择
MedWin 集成开发环境快速入门
进入MedWin 集成开发环境后,系统首先提示默认的工作目录为C:\MedWin。我们建议用户根据需 要选择合适的工作目录,例如将工作目录改为D:\WorkDir(用户可自10:选择MedWin 集成开发环境工作目录 选择驱动器D 盘后,打开文件夹(目录)WorkDir,确认后,工作目录设置即告完成。系统将提示进 行下一步设置:编译/ 汇编/ 连接器的配置。 第四步:配置编译/ 汇编/ 连接器及环境 MedWin 集成开发环境初始默认编译/ 汇编/ 连接环境为使用万利电子自主版权的宏汇编和连接器, 使用默认设置,汇编连接信息和错误关联均为中文提示。 当选择用户设置编译/ 汇编/ 连接环境时,必须注意选择合适的路径和程序:如 1. 编译器路径为C:\C51\BIN\C51.exe 2. 汇编器路径为C:\C51\BIN\A51.exe 3. 连接器路径为C:\C51\BIN\BL51.exe 系统头文件、库文件的环境为: 1. 编译器系统头文件路径为C:\C51\INC
汇编上机汇编语言步骤
汇编上机汇编语言步骤汇编语言是一种底层的计算机语言,用于将人类可读的指令转换为机器可执行的指令。
它在计算机体系结构和操作系统的开发以及底层编程中起着重要作用。
本文将介绍汇编语言的上机实践步骤,帮助读者更好地理解和应用汇编语言。
I. 准备工作在进行汇编语言编程之前,需要做一些准备工作。
1. 硬件环境准备确保计算机硬件环境能够支持汇编语言编程。
通常,需要一台计算机和合适的开发环境,例如Masm、NASM等。
2. 软件环境准备根据个人喜好和需求,选择合适的开发环境和工具。
例如,可以使用文本编辑器编写源代码,并使用汇编器将其汇编为机器码。
同时,还需要安装调试工具,用于调试和测试编写的程序。
3. 学习资料准备在开始上机实践之前,建议阅读相关的汇编语言教材、文档或参考书籍,了解基本的汇编语言概念和语法规则。
这将有助于更好地理解和应用汇编语言。
II. 编写汇编程序一旦准备工作完成,我们可以开始编写汇编程序了。
以下是编写汇编程序的一般步骤。
1. 分析问题和设计首先,明确问题的需求和目标。
然后,设计程序的逻辑结构,确定需要使用的指令和算法。
2. 编写源代码使用选择的文本编辑器编写源代码。
按照汇编语言的语法规则,逐行编写汇编指令,并添加必要的注释和标签。
3. 汇编程序保存源代码文件,并使用汇编器将源代码转换为机器码。
这一步骤会生成可执行文件,即汇编程序。
4. 运行和调试运行汇编程序,并使用调试工具进行调试。
通过逐步执行代码、监视变量和寄存器的值,可以定位和解决程序中的错误。
III. 优化和扩展完成基本的汇编程序后,可以考虑进行优化和扩展,以提高程序的性能和功能。
1. 代码优化优化汇编程序,使其更高效、更可靠。
可以通过减少指令数量、减少内存访问、使用更有效的算法等方式进行优化。
2. 功能扩展根据需求,添加新的功能或功能模块。
这可能包括输入输出处理、文件操作、图形界面等。
IV. 运行和测试完成优化和扩展后,进行运行和测试。
实验一、汇编语言程序的上机过程及调试
实验一、汇编语言程序的上机过程及调试<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、掌握文本编辑程序EDIT的基本使用方法。
2、熟练掌握汇编语言上机操作的基本步骤,学会汇编语言程序的编辑、汇编、连接、运行等操作方法。
二、上机实验指导(一)实验环境1.硬件环境微型计算机(Intel x86系列CPU)一台2. 软件环境⏹Windows98/2000/XP操作系统⏹文本编辑器(NOTEPAD(记事本))⏹汇编程序(MASM.EXE)⏹连接程序(LINK.EXE)(二)上机实验步骤上机步骤总结如下:1.把汇编程序拷贝到 C:\ASM\2.用记事本建立ASM源程序,保存为C:\ASM\HELLO.ASM3.汇编 C:\ASM>MASM HELLO.ASM<回车>4.链接C:\ASM>LINK HELLO.OBJ<回车>5.执行C:>ASM>HELLO〈回车〉下面详细介绍上机步骤:1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。
创建方法:找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM.EXE、LINK.EXE都拷贝到此目录中。
2.建立ASM源程序使用NOTEPAD(记事本)文本编辑器建立ASM源程序。
打开记事本,输入源程序后,保存为后缀为.ASM的文件,保存路径为C:\ASM\HELLO.ASM。
3.用MASM.EXE汇编源程序产生OBJ目标文件具体操作如下:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:C:\Documents and Settings>cd..(回车,退回到上一级根目录)C:>CD ASM<回车>C:\ASM>MASM HELLO.ASM<回车>操作时的屏幕显示如图2所示。
汇编语言上机实验内容
实验一上机操作一、实验目的掌握汇编语言程序编辑、汇编、连接、运行以及利用DEBUG调试程序的方法。
二、实验设备PC机及相应的软件。
三、实验内容及步骤1、编辑一个指定的汇编语言源程序,并对其进行汇编、连接和运行。
2、利用DEBUG进行程序调试,掌握常用命令的使用方法,观察运行结果。
3、汇编语言上机操作,见图1-1 汇编语言上机操作流程。
上机操作过程:开始输入cmd 确认后显示:C:\Documents and setting\Administrator>-输入 cd c:\masm 后显示:c:\masm>-c:\masm>EDIT ABC.asmc:\masm>MASM ABC;若有语法错,回EDIT下改该程序c:\masm>LINK ABC;若有错,回EDIT下改程序c:\masm>ABC若运行结果错,回EDIT下改程序或在DEBUG下调试,找原因。
c:\masm>DEBUG ABC.exe手写源程序图 1-1 汇编语言上机操作流程汇编语言程序举例例1:将BL寄存器的内容按二进制形式显示出来。
设:(BL)=01010011B分析:采用2号功能调用,分别输出30 31 30 31 30 30 31 31显示:01010011参考程序:CODE SEGMENTASSUME CS: CODESTART:MOV CX ,8 ;显示字符个数为8MOV BL ,53HNEXT:SHL BL ,1 ;将显示位移至CF中JC ONE ;CF=1?MOV DL ,30H ;CF=0,将0的ASCII放在DL中JMP EXITONE:MOV DL ,31H ;CF=1,将1的ASCII放在DL中EXIT:MOV AH ,2INT 21H ;调用DOS功能显示DEC CX ;循环次数减1JNZ NEXT ;判断是否结束MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START上机操作:c:\masm>EDIT ShowBL.asm ;编辑源程序c:\masm>MASM ShowBL ;汇编成ShowBL.objMicrosoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981,1988. All rights reserved.48912 + 447243 Bytes symbol space free0 Warning Errors0 Severe Errorsc:\masm>LINK ShowBL ;连接成ShowBL.exeMicrosoft (R) Overlay Linker Version 3.61Copyright (C) Microsoft Corp 1983-1987. All rights reserved.LINK : warning L4021: no stack segmentc:\masm>ShowBL ;装载并执行ShowBL.exe 01010011 ;屏幕显示c:\masm>-在DEBUG下查看ShowBL.exe的装入情况:c:\masm>DEBUG ShowBL.exe- R ;查看当前寄存器内容AX=0000 BX=0000 CX=001B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B51 ES=0B51 SS=0B61 CS=0B61 IP=0000 NV UP EI PL NZ NA PO NC B353 MOV BL,53- U CS:0 ;查看程序0B61:0000 B353 MOV BL,530B61:0002 B90800 MOV CX,00080B61:0005 D0E3 SHL BL,10B61:0007 7205 JB 000E…….0B61:0017 B44C MOV AH,4C0B61:0019 CD21 INT 21…….-G ;执行程序01010011Program terminated normally-例2:将某段中的字符串“Hello!”传送到另一段中。
实验一MASMForWindows的使用及顺序程序设
实验一 MASM For Windows 的使用及顺序程序设计一、实验目的1、熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序的过程。
2、熟悉masm for windows调试环境及DEBUG常用命令的使用二、实验内容1.DEBUG常用命令(U、R、D、E、F、T、G、Q)的操作使用2.编程实现两个16位无符号数的加、减、乘、除运算。
有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显示。
相加若有进位不存入存储单元。
三、实验设备PC机一台、masm for windows 汇编语言集成环境四、实验准备1) 分析题目,将程序中的原始数据和最终结果的存取方法确定好。
2) 画出流程图。
3) 写出源程序。
4) 对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。
五、实验步骤1) 输入源程序。
2) 汇编、连接程序,生成 .EXE文件,执行文件,检查结果。
六、学生实验报告的要求1) 列出源程序,说明程序的基本结构,包括程序中各部分的功能。
2) 说明程序中各部分所用的算法。
3) 说明主要符号和所用到寄存器的功能。
4) 上机调试过程中遇到的问题是如何解决的。
5) 对调试源程序的结果进行分析。
4) 说明标志位CF、SF和OF的意义。
DEBUG的常用命令1、R 显示或修改寄存器的内容命令格式:-R2、 D 显示存储单元的内容命令格式:-D[地址1, 地址2]3、E修改存储单元的内容命令格式:-E[地址1, 地址2]4、U反汇编命令格式:-U[地址1, 地址2]5、T单步执行命令格式:-T6、G连续执行命令格式:-G[=起始地址, 结束地址]A小汇编命令格式:-A7、Q退出DEBUG,返回DOS实验一源程序 EXAM1-2 .ASMDATA SEGMENTA DB 34H,18H,2 DUP(0),’$’B DB 56H,83HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV AL,AMOV BL,BADD AL,BLMOV AH,A+1MOV BH, B+1ADC AH, BHMOV A, ALMOV A+1, AH ;A加上B,并存入A单元中MOV CX, 0004H ;设置循环次数4次MOV DI, OFFSET A ;DI指向A的首地址MOV DX, [ DI] ;A单元中的值送入DX寄存器中ADD DI,03NEXT: MOV AX, DXAND AX,000FHCMP AL,0AHJB QQQ ;跟A比较,若小,则跳到QQQADD AL, 07H ;若比A大,加上07HQQQ: ADD AL, 30H ;将A单元里的数据转换成ASCII码 MOV [DI], ALDEC DIPUSH CXMOV CL, 04SHR DX, CLPOP CXLOOP NEXTMOV DX, OFFSET A ;DX指向A的首地址MOV AH, 09H ;依次在屏幕上输出INT 21HMOV AH,4CHINT 21HCODE ENDSEND START执行程序EXAM1-2·EXE,屏幕上显示结果:9B8A。
实验一汇编语言程序上机过程与调试
实验⼀汇编语⾔程序上机过程与调试实验⼀汇编语⾔程序上机过程与调试(基本指令实验)⼀、实验⽬的1、熟悉80X86寻址⽅式及基本指令的功能,进⼀步理解和巩固课堂学习的内容。
2、掌握汇编语⾔程序设计上机过程和汇编语⾔源程序结构,为后续汇编语⾔程序设计打好基础。
3、熟悉Masm for windows集成实验环境,以及DEBUG、CODEVIEW调试⼯具的使⽤⽅法。
⼆、实验预习要求1、熟悉汇编语⾔程序设计上机步骤,熟悉DEBUG、CODEVIEW调试⼯具的使⽤⽅法。
2、复习80X86操作数寻址⽅式及基本指令。
3、了解实验内容,并在实验前根据课堂所学知识回答有关问题(个别取决于程序实际运⾏环境的问题除外),以便在实验时进⾏验证。
三、实验内容(⼀)、读懂下列源程序,使⽤Masm for windows集成实验环境⽣成名为EX11.ASM的源程序,汇编⽣成EX11.OBJ⽂件和EX11.LST⽂件,连接⽣成EX11.EXE⽂件;⽤EDIT 或记事本打开EX11.LST⽂件,了解.LST⽂件包含的信息;使⽤DEBUG 和CODEVIEW调试⼯具单步执⾏EX11.EXE程序,注意观察IP值的变化,并回答下列问题。
1. 程序装⼊后,代码段寄存器CS的内容为0B68 H,代码段第⼀条可执⾏指令:MOV AX,DATA对应的机器代码为B81A0B H,它是⼀个3 个字节的指令,注意观察执⾏该指令时IP值的变化情况,该指令源操作数DATA的寻址⽅式是直接寻址,其值为0B6A 。
2. 执⾏完MOV DS,DA TA指令后,DS的内容为0B6A H,源程序在数据段中定义的数据82H,68H,88H被装⼊的存储单元的物理地址分别是0B6A0 H,0B6A1H,0B6A2H.3. 程序中第⼀条ADD AL,[BX]指令对应的机器代码为0207 H,它是⼀个2个字节的指令,注意观察执⾏该指令时IP值的变化情况;该指令源操作数的寻址⽅式是直接寻址,该操作数所在存储单元的逻辑地址(DS):(BX)为0B6A:0001 ,其物理地址为0B6A1H;执⾏完该指令后(AL)= EA H,CF= 0 ,OF= 0 ,ZF= 0,SF= 1 ,AF= 0 ,PF= 0 ;若两操作数为⽆符号数,计算结果是否正确?z 若两操作数为带符号数,计算结果是否正确?z若计算结果正确,结果是正数还是负数?f4.执⾏完第⼆条ADD AL,[BX]指令后(AL)= 72 H,CF= 1 ,OF= 1 ,ZF= 0 ,SF= 0,AF= 1 ,PF= 1 ;若两操作数为⽆符号数,计算结果是否正确?B 若两操作数为带符号数,计算结果是否正确?B5.指令MOV SUM,AL中,⽬的操作数的寻址⽅式为直接寻址。
汇编上机实验报告
汇编上机实验报告实验目的:通过进行汇编语言上机实验,掌握汇编语言的基本语法和编程技巧,培养汇编程序设计能力。
实验内容:实验一:汇编程序的简单输入输出1.编写一个汇编程序,要求从键盘输入两个整数,然后将其相加,并将结果输出到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验二:汇编程序的条件跳转1.编写一个汇编程序,要求从键盘输入一个整数,判断其是否大于10,若是,则将其打印到屏幕上;否则,将其乘以5并打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验三:汇编程序的循环1.编写一个汇编程序,要求计算1到10的累加和,并将结果打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验四:汇编程序的数组操作1.编写一个汇编程序,要求定义一个长度为10的数组,并将数组中的值初始化为0,然后利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。
2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。
实验结果:实验一:汇编程序的简单输入输出编写的汇编程序通过键盘输入两个整数,实现了相加并将结果输出到屏幕上的功能。
程序运行正常,输出结果与预期一致。
实验二:汇编程序的条件跳转编写的汇编程序通过键盘输入一个整数,根据条件判断,实现了将输入数大于10时打印在屏幕上,否则将其乘以5并打印在屏幕上的功能。
程序运行正常,输出结果与预期一致。
实验三:汇编程序的循环编写的汇编程序通过循环计算1到10的累加和,并将结果打印在屏幕上。
程序运行正常,输出结果与预期一致。
实验四:汇编程序的数组操作编写的汇编程序通过定义一个长度为10的数组,并将数组中的值初始化为0,利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。
实验一汇编语言上机及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文件。
汇编语言上机实验汇总
汇编语言上机实验汇总汇编语言是计算机的低级语言,主要用于编写底层程序和驱动程序。
在学习汇编语言的过程中,学生通常需要进行一定数量的上机实验。
下面是一个汇编语言上机实验的汇总。
1.实验一:环境搭建-目标:搭建汇编语言开发环境2.实验二:基本语法-目标:学习汇编语言的基本语法和指令格式-内容:编写一个简单的汇编程序,包括数据段、代码段和堆栈段,以及常用指令(例如MOV、ADD、SUB、JMP等)的使用。
3.实验三:寄存器和内存操作-目标:熟悉汇编语言中的寄存器和内存的操作-内容:编写一个汇编程序,通过MOV指令将数据从内存中加载到寄存器中,然后进行运算,并将结果存储回内存。
4.实验四:条件分支和循环-目标:掌握汇编语言中的条件分支和循环结构-内容:编写一个汇编程序,使用条件分支指令(例如CMP、JE、JNE 等)实现一个简单的判断语句;然后使用循环指令(例如LOOP)实现一个简单的循环结构。
5.实验五:子程序和参数传递-目标:学习如何创建和调用子程序,并传递参数-内容:编写一个汇编程序,其中包含一个子程序,该子程序接受两个参数并返回它们的和。
然后在主程序中调用该子程序,并输出结果。
6.实验六:中断和异常处理-目标:了解中断和异常处理机制,并在汇编程序中处理中断或异常-内容:编写一个汇编程序,其中包含一个中断处理程序,当发生特定的中断时,该处理程序将执行一些特定的操作。
7.实验七:串操作和文件操作-目标:学习汇编语言中的串操作和文件操作-内容:编写一个汇编程序,使用串操作指令(例如MOVS、LODS、STOS等)操作字符串;然后使用文件操作指令(例如OPEN、READ、WRITE 等)读取或写入文件。
8.实验八:图形和音频处理-目标:了解汇编语言中的图形和音频处理- 内容:编写一个汇编程序,使用图形库(例如BGI、OpenGL、DirectX)绘制简单的图形或运行一个音频文件。
这些上机实验可以帮助学生逐步掌握汇编语言的基本知识和技能,并为以后的高级汇编语言编程打下基础。
实验内容
实验内容实验一、仿真系统Medwin认识一、实验目的:熟悉Medwin软件仿真环境,为以后的软件仿真打基础。
二、实验内容:1、掌握如何进入Medwin仿真环境,如何编程。
2、掌握程序编译及运行方法。
3、掌握如何查看程序结果。
三、实验要求:将数据05H放入30~4FH的内存空间。
要求以下截图。
1、程序截图;2、反汇编窗口截图;3、数据寄存器截图;4、特殊功能寄存器截图。
实验二、定时器仿真实验一、实验目的1、加深对定时器、计数器工作原理的理解。
2、掌握定时器、计数器的程序设计方法。
二、实验内容1、选用T0作定时器,操作模式选模式1,由P1.0输出周期为2ms的方波,晶振频率fosc=12MHz。
2、选用T0作定时器,自动重装模式,定时2ms,将P1.1取反,晶振频率fosc=6MHz。
3、选用T1作计数器,操作模式选模式2,给出定时计数器的初始化程序。
实验三、MCS-51单片机内存数据交换一、实验目的1、了解单片机内部的地址分配。
2、掌握单片机内数据转移的方法。
二、实验内容1、先将数据00H~1FH存入RAM区30H~4FH内,然后将30H~4FH内的数据转移到40H~5FH内,要求数据的顺序不变。
2、先将数据00H~0FH存入RAM区30H~3FH内,再将数据60H~6FH存入RAM区50H~5FH内,然后将30H~3FH内的数据与50H~5FH内的数据交换,要求每组数据的顺序不变。
实验四、软件抗干扰技术一、实验目的:1、了解软件抗干扰技术的重要性。
2、通过实验,掌握软件抗干扰技术的三种实现方法,即指令冗余、软件陷阱以及WATCHDOG技术。
二、实验内容:1、查看软件陷阱两种形式的机器码。
形式1:NOPNOPLJMP 0000H形式2:LJMP 0202HLJMP 0000H实验要求:给出源程序及Code码。
2、程序发生中断,如何在中断服务程序区判断程序是否发生乱飞,如果发生乱飞,该如何处理。
即当受到干扰的程序乱飞到开放的中断区的软件陷阱方法。
微机原理汇编语言的上机过程 实验报告
微机原理技术与接口实验报告学院:专业:班级:姓名:学号:汇编语言程序的上机过程实验目的通过简单地操作了解汇编语言程序的基本内容,体会汇编语言的运行,为以后的实验打下一定的基础。
实验原理及操作步骤一、上机环境要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。
▪汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。
▪连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。
▪调试程序:DEBUG.EXE,用于调试可执行程序。
二、上机过程汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。
1.编辑源程序用文本编辑软件创建、编辑汇编源程序。
常用编辑工具有:、记事本、Word等。
无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。
2.汇编用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。
汇编程序的主要功能是:检查源程序的语法,给出错误信息;产生目标程序文件;展开宏指令。
汇编过程如下:在DOS状态下,输入命令:MASM MYFILE.ASM(回车),即启动了汇编程序。
此命令执行后,会出现下面的3行信息,依次按回车键(即选择默认值)即可建立3个输出文件,其扩展名分别为:.OBJ(目标文件),.LST(列表文件)和.CRF(交叉引用文件)。
Object Filename [MYFILE.OBJ]:Source Listing [Nul.LST]:Cross Reference [Nul.CRF]:依次按回车键,进行选择后,汇编程序就对汇编源程序进行汇编。
如果汇编过程中发现有语法错误,则屏幕上会显示出错语言的位置和出错的类型。
此时,需要进行修改,然后再进行汇编。
如此进行,直至汇编无错误,得到目标文件为止。
3.连接汇编产生的目标文件(.obj)并不是可执行的程序,还要用连接程序把它转换为可执行的EXE文件。
汇编语言程序设计上机步骤与调试方法
汇编语言程序设计上机步骤与调试方法在汇编语言程序设计中,上机步骤与调试方法是非常重要的,它们能够帮助程序员更好地编写和调试程序。
本文将介绍汇编语言程序设计的上机步骤以及常用的调试方法,帮助读者更好地理解和应用这些知识。
一、上机步骤1. 准备工作在开始上机之前,我们需要做一些准备工作。
首先,确认计算机已经连接好必要的硬件设备,例如键盘、显示器等。
其次,确保操作系统和开发环境已经正确安装并能够正常运行。
最后,根据需要准备好所需的汇编语言文档和程序样例。
2. 创建新项目在开始编写汇编语言程序之前,我们需要创建一个新的项目。
在项目中,我们可以组织和管理相关的文件和代码。
通常,我们会选择一个合适的集成开发环境(IDE)来创建和管理项目。
3. 编写程序在创建项目之后,我们可以开始编写汇编语言程序。
首先,我们需要了解目标机器的指令集和寄存器,以便正确地编写程序。
然后,根据需求,我们可以使用不同的指令、寄存器和内存来实现所需的功能。
在编写程序的过程中,注意代码的可读性和易于维护性是非常重要的。
4. 调试程序编写完汇编语言程序后,我们需要进行调试,以确保程序的正确性和稳定性。
调试是一个迭代过程,通常包括以下步骤:- 设置断点:在程序中设置断点,以便在特定位置停止程序的执行。
- 单步执行:通过逐条执行程序的指令,我们可以观察程序的执行过程,并检查各寄存器和内存的值。
- 监视变量:在调试过程中,我们可以监视程序中的变量值,以验证其正确性。
- 查看输出:观察程序的输出结果,与预期结果进行比较,以确定程序是否按照预期执行。
- 修复错误:如果发现程序中存在错误,我们需要对程序进行修改和调整,直到问题解决为止。
5. 运行程序在完成程序的调试之后,我们可以运行程序并观察其运行效果。
在运行过程中,我们可以测试程序的各种功能,以确保其正常工作。
二、调试方法1. 打印输出在调试汇编语言程序时,打印输出是一种常用且简单有效的调试方法。
汇编语言程序设计 上机基本操作
2.编辑命令 (1) . 帮助命令 Ctrl+J 用来查看系统提供的帮助信息. (2).退出编辑命令 a. Ctrl+KD或PF1键命令,将当前被编辑的文件存入磁盘,然 后退出编辑壮态,回到”起始命令表”; b. Ctrl+KX或KD. 但返回的是操作系统下; c. Ctrl+KQ或PF2键.它放弃当前被编辑文件,返回到”起始 命令表”. 3.光标移动命令 可以用Ctrl+字母(E,X,S,D,R…)实现光标的移动. 4.删除与插入命令 Ctrl+G,+T,+Y,或用DEL进行删除操作;用Ctrl+V,+N进行插入 5.打印命令: 按下P键后,屏幕上显示是否输出到磁盘上(Y/N)? 你可以按要求选择.
汇编语言程序设计
汇编语言上机,可使用IBM-PC兼容机,使 用DOS操作系统,若是Windows操作系统,要切 换到DOS操作系统.启动MS-DOS操作系统,在 计算机启动时,按ESC键,进入操作系统选项,并 切换到MS-DOS操作系统. 系统里必须安装有 WordStar或PCED或EDLTN软件.WordStar是 文字处理软件;PCED是全屏幕编辑程序;EDLIN 是行编辑程序.在下面的操作中一一见绍……..
五、调试程序DEBUG 1。DEBUG程序的调用 在DOS提示下, C>DEBUG [D:] [path] [文件名] [参数1] [参数2] 2.DEBUG的主要命令 (1).显示内存单元内容的命令 D -D[地址]或[范围] (2).修改内存单元内容的命令 E -E 地址 内容表 例如:-E DS: 100 F3”XYZ” 8D 例如:-E 100: 18E4: 0100 89.78 此命令是将原100号单元的内容89改为78.
汇编上机实验报告
汇编上机实验报告实验名称:汇编上机实验报告1. 实验目的通过完成汇编上机实验,掌握汇编语言的基本概念和语法规则,理解计算机底层运行的原理,加深对计算机体系结构的理解。
2. 实验环境硬件环境:个人电脑一台,操作系统为Windows 10软件环境:MASM汇编语言开发工具(Microsoft Macro Assembler)、DOSBox模拟器3. 实验内容及步骤3.1 实验一:汇编程序基本框架搭建步骤:(1) 在MASM环境下创建一个新的汇编源文件,命名为"lab1.asm"。
(2) 在源文件中编写汇编程序的基本框架,包括段定义、数据定义和代码段等。
(3) 使用MASM汇编器将源文件编译为目标文件。
(4) 使用链接器将目标文件连接为可执行程序。
(5) 在DOSBox模拟器中执行可执行程序,观察程序输出结果。
3.2 实验二:实现简单的数值运算步骤:(1) 按照实验一的步骤,在MASM环境下创建一个新的汇编源文件,命名为"lab2.asm"。
(2) 在源文件中编写汇编程序,实现两个数的相加、相减、相乘和相除等简单的数值运算。
(3) 使用MASM汇编器将源文件编译为目标文件。
(4) 使用链接器将目标文件连接为可执行程序。
(5) 在DOSBox模拟器中执行可执行程序,输入两个数值,观察程序计算结果。
3.3 实验三:字符串处理步骤:(1) 按照实验一的步骤,在MASM环境下创建一个新的汇编源文件,命名为"lab3.asm"。
(2) 在源文件中编写汇编程序,实现字符串的输入、输出和处理。
(3) 使用MASM汇编器将源文件编译为目标文件。
(4) 使用链接器将目标文件连接为可执行程序。
(5) 在DOSBox模拟器中执行可执行程序,输入一个字符串,观察程序对字符串的处理结果。
4. 实验结果与分析实验一:汇编程序基本框架搭建在DOSBox模拟器中成功执行了汇编程序,没有出现任何错误提示,并得到了预期的输出结果。
汇编语言上机实验报告
汇编语言上机实验报告汇编语言上机实验报告引言:汇编语言是一种底层的计算机语言,通过使用汇编语言,我们可以更加深入地了解计算机的运行原理和底层机制。
本次实验旨在通过上机实践,掌握汇编语言的基本语法和编程技巧,同时加深对计算机底层的理解。
实验目的:1. 学习汇编语言的基本语法和指令集;2. 掌握汇编语言的程序设计和调试方法;3. 加深对计算机底层原理的理解。
实验环境:本次实验使用的是Windows操作系统,并安装了MASM汇编语言开发工具。
实验过程:1. 实验一:Hello World程序我们首先编写一个简单的Hello World程序,用于验证汇编语言的环境是否正常。
通过使用MASM工具,我们可以将源代码汇编成可执行文件,并在命令行中运行。
该程序的功能是在屏幕上输出"Hello World"。
```assembly.model small.stack 100h.datamsg db 'Hello World$'.codemain procmov ah, 09hlea dx, msgint 21hmov ah, 4chint 21hmain endpend main```通过编译、链接和运行,我们可以在屏幕上看到"Hello World"的输出。
2. 实验二:计算两个数的和在这个实验中,我们将学习如何编写一个简单的加法程序。
我们定义两个变量a和b,并将其值相加,然后将结果输出到屏幕上。
```assembly.model small.stack 100h.dataa db 10b db 20sum db ?.codemain procmov al, aadd al, bmov sum, almov ah, 09hmov dl, sumadd dl, 30hint 21hmov ah, 4chint 21hmain endpend main```在屏幕上,我们可以看到输出结果为"30",即10加20的和。
汇编教程 汇编语言上机过程
3、连接程序的使用 、
目标文件(.OBJ)必须经过连接以后才能成为可执行 文件,连接后的可执行文件具有绝对地址 。 D:\MASM>LINK 文件名
Object Modules[.OBJ]:要目标文件名 ,缺省类型为 缺省类型为OBJ : Run file[文件名 文件名.exe]:要可执行文件名 ,缺省与 缺省与OBJ文件同名 文件名 : 文件同名 List file[NUL.MAP]:要内存分配图文件名 ,直接回车则不要。 直接回车则不要。 : Libraries[.LIB]:提示是否用到库文件,汇编程序没有库文件, :提示是否用到库文件,汇编程序没有库文件, 回车即可。 回车即可。
输入或修改结束后,按ALT出现屏幕菜单,↓可 下拉菜单,↑↓←→可选项。 存盘后出现文件名.ASM文件 文件…. 存盘后出现文件名 文件
2、宏汇编程序的使用(设定当前目录为 、 设定当前目录为MASM) )
D:\MASM>MASM 文件名.ASM : Source filename[.ASM]:要源文件名 ,缺省类型为.ASM Object filename[文件名.OBJ]:要目标文件名 ,直接回 车为默认值 Source listing[NUL.LST]: 要源文件列表文件名 (通常用同名.LST),直接回车默认不要列表文件。 Cross reference[NUL.CRF]: 要交叉引用表文件名 , 该文件用于形成符号表文件.REF,直接回车默认 不要该文件….
几种常用的DEBUG 命令: 命令: 几种常用的
(1) (2) (3) (4) (5) (6) (7) (8) D:显示存储单元内容 E:修改存储单元内容 R:显示、修改寄存器内容 U:反汇编命令 G:运行命令 T:跟踪命令 Q:退出命令 A:汇编命令
[理学]实验一MedWin的使用与汇编语言上机操作
实验一MedWin的使用与汇编语言上机操作实验目的:熟悉MedWin环境,通过在MedWin环境下调试字节拆分、合并程序、数据块清零程序、加法程序,掌握汇编语言程序的调试方法,加深对BCD码、ASCII码、堆栈、寄存器、数据指针、汇编语言指令、机器码等基本概念的理解,为后续程序编制和调试打下基础。
实验内容:1.掌握MedWin环境的使用1)字节拆分、合并:调试e421.asm程序,观察相关寄存器和单元的内容。
2)数据块清零:调试clear.asm程序,观察相关寄存器和单元的内容。
2. 编写两个十六位数的加法程序。
有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。
思考题:1. 安装配置MedWin 中需注意什么问题?如何通过MedWin进行反汇编?2. 怎样查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容?3.字节拆分、合并还有哪些方法,举一例说明。
4. 若按递增1规律填充数据块,应如何修改程序?5. 若完成双字节BCD码加法,应如何修改程序?字节拆分、合并程序File name: e421.asmDescription: 1字节BCD码转换为2字节ASCII2字节ASCII码转化为1字节BCD码Date:Designed by:Source used: 30H: BCD data31H, 32H:ASCII data31H, 32H ->33HORG 2000HSTART: MOV SP, #40H ;赋堆栈指针MOV 30H, #49H ;30H单元赋值MOV R0, #32H ;R0指针赋值MOV @R0, #0 ;32H单元清零MOV A, 30HXCHD A, @R0 ;拆分字节ORL 32H, #30H ;转换为ASCIISWAP AORL A, #30H ;转换为ASCIIMOV 31H, A ;结果存于31H单元MOV A, 31H ;从31H单元取值ANL A, #0FH ;转换为BCDSWAP AMOV 33H, A ;结果存于33H单元MOV A, 32H ;从32H单元取值 ANL A, #0FH ;转换为BCDORL 33H, A ;合并字节HERE: SJMP HERE ;踏步END数据块清零程序:将片外RAM 7000H-70FFH单元全部清零File name: clear.asmDate:Designed by:Source used: R0: 计数器DPTR: 片外数据指针ORG 0030HCLEAR: MOV R0, #00H ;设循环计数器MOV DPTR, #7000H ;设数据指针CLEAR1: CLR A ;将A清零MOVX @DPTR, A ;传送到片外RAMINC DPTR ;修改数据指针INC R0 ;修改循环计数器CJNE R0, #00H, CLEAR1 ;判断是否结束CLRW: SJMP CLRW ;原地踏步 END。
汇编语言上机实验汇总
START: MOV AX,DATA MOV DS,AX LEA DX,INFON MOV AH,9 INT 21H LEA DX,BUF MOV AH,10 INT 21H MOV CL, [BUF+1] LEA DI,BUF+2 CALL DATACATE CALL IFYEARS JC A1 LEA DX,N MOV AH,9 INT 21H JMP EXIT A1: LEA DX,Y MOV AH,9 INT 21H EXIT: MOV AH,4CH INT 21H DATACATE PROC NEAR LEA SI,BUF+2 MOV BX,0 X3: MOV AL ,[SI] SUB AL ,30H MOV AH,0 XCHG AX,BX MOV DX,10D MUL DX XCHG AX,BX ADD BX,AX INC SI LOOP X3 MOV W,BX RET DATACATE ENDP IFYEARS PROC NEAR PUSH BX PUSH CX PUSH DX MOV AX,W MOV CX,AX MOV DX,0 MOV BX,4 DIV BX CMP DX,0 JNZ LAB1 MOV AX,CX MOV BX,100 DIV BX CMP DX,0 JNZ LAB2 MOV AX,CX MOV BX,400
18A2:011E CD21 INT 21 可见,要执行10条指令,至011B处停止 -G=100,011B AX=7777 BX=0000 CX=020C DX=0000 SP=0000 BP=0000 SI=0200 DI=0204 DS=18A2 ES=1892 SS=18A2 CS=18A2 IP=011B NV UP EI PL NZ NA PE NC 18A2:011B B8004C MOV AX,4C00 -D 200 20F 18A2:0200 78 56 34 12 A9 87 43 65-21 DE 77 77 43 43 83 06 xV4...Ce!.wwCC.. 和为7777DE21H,正确。 ⑥再取一组数据,查看运行结果。为此,首先用E命令修改数据。 -E 200 CD,AB,78,56,90,EF,34,12 -D 200 20F 18A2:0200 CD AB 78 56 90 EF 34 12-21 DE 77 77 43 43 83 06 ..xV..4.!.wwCC.. -G=100,11B AX=68AC BX=0000 CX=020C DX=0000 SP=0000 BP=0000 SI=0200 DI=0204 DS=18A2 ES=1892 SS=18A2 CS=18A2 IP=011B NV UP EI PL NZ NA PE NC 18A2:011B B8004C MOV AX,4C00 -D 200 20F 18A2:0200 CD AB 78 56 90 EF 34 12-5D 9B AC 68 43 43 83 06 ..xV..4.]..hCC.. 和为68AC9B5DH,错误。说明程序有问题。 ⑦再将断点设在完成低位字加法后,查看运行结果。 -G=100,112 AX=9B5D BX=0000 CX=020C DX=0000 SP=0000 BP=0000 SI=0200 DI=0204 DS=18A2 ES=1892 SS=18A2 CS=18A2 IP=0112 NV UP EI NG NZ NA PO CY 18A2:0112 8B4402 MOV AX,[SI+02] DS:0202=5678 -D 200 20F 18A2:0200 CD AB 78 56 90 EF 34 12-5D 9B AC 68 43 43 83 06 ..xV..4.]..hCC.. 低位和为9B5D,正确。说明错误可能出在后面 ⑧使用T命令从刚才的断点处向后单步调试,查看运行结果。 -T=112 AX=5678 BX=0000 CX=020C DX=0000 SP=0000 BP=0000 SI=0200 DI=0204 DS=18A2 ES=1892 SS=18A2 CS=18A2 IP=0115 NV UP EI NG NZ NA PO CY 18A2:0115 034502 ADD AX,[DI+02] DS:0206=1234 -T AX=68AC BX=0000 CX=020C DX=0000 SP=0000 BP=0000 SI=0200 DI=0204 DS=18A2 ES=1892 SS=18A2 CS=18A2 IP=0118 NV UP EI PL NZ NA PE NC 18A2:0118 89440A MOV [SI+0A],AX DS:020A=68AC AX寄存器的结果为68AC,而应为68AD。可见是本条加法指令使用错误,这里应使用带进位加法指令。 ⑨使用A命令装入正确指令后再次运行,察看结果。 -A 115 18A2:0115 ADC AX,[DI+02] 18A2:0118 -G=100,11B AX=68AD BX=0000 CX=020C DX=0000 SP=0000 BP=0000 SI=0200 DI=0204 DS=18A2 ES=1892 SS=18A2 CS=18A2 IP=011B NV UP EI PL NZ NA PO NC 18A2:011B B8004C MOV AX,4C00 -D 200 20F 18A2:0200 CD AB 78 56 90 EF 34 12-5D 9B AD 68 43 43 83 06 ..xV..4.]..hCC.. 和为68AD9B5DH,正确。对于这样一个简单程序一般来说不会再有问题。退出后修改源程序即可。 ⑩退出 -Q D:\MASM> 四、实验要求 (1)熟练掌握Debug的命令; (2)熟练掌握使用Debug调试汇编程序; (3)记录实验结果,写实验报告。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一MedWin的使用与汇编语言上机操作
实验目的:熟悉MedWin环境,通过在MedWin环境下调试字节拆分、合并程序、数据块清零程序、加法程序,掌握汇编语言程序的调试方法,加深对BCD码、ASCII码、
堆栈、寄存器、数据指针、汇编语言指令、机器码等基本概念的理解,为后续程
序编制和调试打下基础。
实验内容:
1.掌握MedWin环境的使用
1)字节拆分、合并:调试e421.asm程序,观察相关寄存器和单元的内容。
2)数据块清零:调试clear.asm程序,观察相关寄存器和单元的内容。
2. 编写两个十六位数的加法程序。
有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。
思考题:
1. 安装配置MedWin 中需注意什么问题?如何通过MedWin进行反汇编?
2. 怎样查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容?
3.字节拆分、合并还有哪些方法,举一例说明。
4. 若按递增1规律填充数据块,应如何修改程序?
5. 若完成双字节BCD码加法,应如何修改程序?
字节拆分、合并程序
File name: e421.asm
Description: 1字节BCD码转换为2字节ASCII
2字节ASCII码转化为1字节BCD码
Date:
Designed by:
Source used: 30H: BCD data
31H, 32H:ASCII data
31H, 32H ->33H
ORG 2000H
START: MOV SP, #40H ;赋堆栈指针
MOV 30H, #49H ;30H单元赋值
MOV R0, #32H ;R0指针赋值
MOV @R0, #0 ;32H单元清零
MOV A, 30H
XCHD A, @R0 ;拆分字节
ORL 32H, #30H ;转换为ASCII
SWAP A
ORL A, #30H ;转换为ASCII
MOV 31H, A ;结果存于31H单元
MOV A, 31H ;从31H单元取值
ANL A, #0FH ;转换为BCD
SWAP A
MOV 33H, A ;结果存于33H单元
MOV A, 32H ;从32H单元取值 ANL A, #0FH ;转换为BCD
ORL 33H, A ;合并字节
HERE: SJMP HERE ;踏步
END
数据块清零程序:将片外RAM 7000H-70FFH单元全部清零
File name: clear.asm
Date:
Designed by:
Source used: R0: 计数器
DPTR: 片外数据指针
ORG 0030H
CLEAR: MOV R0, #00H ;设循环计数器
MOV DPTR, #7000H ;设数据指针
CLEAR1: CLR A ;将A清零
MOVX @DPTR, A ;传送到片外RAM
INC DPTR ;修改数据指针
INC R0 ;修改循环计数器
CJNE R0, #00H, CLEAR1 ;判断是否结束CLRW: SJMP CLRW ;原地踏步 END。