微机原理实验报告软件实验1
微机软件实验报告
一、实验目的1. 熟悉微机软件的基本概念和原理。
2. 掌握微机软件的开发流程和常用工具。
3. 提高编程能力和软件设计能力。
4. 理解微机软件在各个领域的应用。
二、实验环境1. 操作系统:Windows 102. 编程语言:C++3. 开发工具:Visual Studio 20194. 实验设备:个人电脑一台三、实验内容本次实验主要分为以下几个部分:1. 微机软件概述- 微机软件的概念及分类- 微机软件的发展历程- 微机软件在各个领域的应用2. C++编程基础- 变量和数据类型- 运算符和表达式- 控制结构(条件语句、循环语句) - 函数- 数组- 指针3. Visual Studio 2019开发环境- 创建项目- 编写代码- 编译和调试程序4. 实验项目:计算器程序设计- 界面设计- 功能实现- 测试与优化四、实验步骤1. 微机软件概述- 通过查阅资料,了解微机软件的基本概念、分类、发展历程和应用领域。
- 思考微机软件在日常生活、工作学习中的应用。
2. C++编程基础- 学习C++编程基础,包括变量、数据类型、运算符、控制结构、函数、数组、指针等。
- 通过编写简单的程序,巩固所学知识。
3. Visual Studio 2019开发环境- 安装并熟悉Visual Studio 2019开发环境。
- 创建一个新项目,并编写简单的C++程序。
4. 实验项目:计算器程序设计- 设计计算器界面,包括按钮、文本框等控件。
- 编写程序实现计算器的功能,如加、减、乘、除等运算。
- 对程序进行测试,确保功能正确无误。
- 优化程序,提高运行效率。
五、实验结果与分析1. 微机软件概述- 通过实验,掌握了微机软件的基本概念、分类、发展历程和应用领域。
- 认识到微机软件在各个领域的广泛应用,如操作系统、办公软件、游戏、数据库等。
2. C++编程基础- 通过实验,掌握了C++编程基础,包括变量、数据类型、运算符、控制结构、函数、数组、指针等。
微机原理与接口技术软件实验报告
第一篇软件实验实验一存储器块操作实验一、实验目的1. 熟悉KEIL集成调试环境和汇编程序的调试方法。
2. 掌握存储器读写方法;3. 了解内存块的移动方法;二、实验说明实验1 指定某存储器的其实地址和长度,要求能将其内容赋值。
通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。
块移动是单片机常用操作之一,多用于大量的数据复制和图像操作。
例程2给出起始地址,用地址加1方法移动块,将指定源地址和长度的存储块移到指定目标为起始地址的单元中去。
移动3000H起始的256个字节到4000H起始的256个字节。
三、实验内容1. 试编程将片内RAM中的数据依次复制到片外RAM。
假设源数据区的首地址为40H,目的数据区的首地址为1000H,数据块长度为10H。
流程图:程序:运行结果:Memory显示,片内RAM中40H开始数据为03 00 29 00 00 00 71 00 AB 00 00 00 1E 00 00 FF,说明测试数据已经成功输入片内RAM。
从片外RAM中1000H位置开始记录为03 00 29 00 00 00 71 00 AB 00 00 00 1E 00 00 FF,说明片内RAM从40H开始的数据已经成功复制到片外从1000H开始的地址。
2. 两个16位无符号二进制数分别存放在片外RAM首址为2000H和2002H单元内,将它们相加,结果存入RAM 30H(低8位)、31H(高8位)。
程序(以0506H+CDEFH为例):0506H和CDEFH已存入片外单元,运算结果D2F5已存入30H和31H中。
四、思考题1. 如何将存储块的内容置成某固定值(例全填充为0FFH)?请用户修改程序,完成此操作。
答:将源程序中的MOV A, #01H 改为MOV A,#0FFH即可。
2. 若源块地址和目标地址有重叠,该如何避免?答:先执行一次数据转移操作将源块地址中的数据先暂存入一块地址与目标地址和源块地址均不重叠的存储区,再执行一次数据转移操作将暂存区的数据移入目标地址区域。
微机原理实验报告 IO实验
《微机原理及应用技术》课程实验报告实验一片内输入、输出实验【预习内容】1.二进制、十进制及十六进制的表示方法及相互转换方法。
二进制XXXXB如1111B 十进制XX如15 十六进制0xXX如0x0f相互转换方法:十进制转二进制方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。
二进制转十进制方法为:把二进制数按权展开、相加即得十进制数。
二进制转十六进制方法为:4位二进制数按权展开相加得到1位十六进制数。
(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。
十六进制转二进制方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。
十进制转十六进制有两种方法间接法把十进制转成二进制,然后再由二进制转成十六进制。
直接法把十进制转十六进制按照除16取余,直到商为0为止。
十六进制转成十进制方法为:把十六进制数按权展开、相加即得十进制数。
2.C语言基本数据类型、定义方式以及赋值范围。
(1)整数类型(2)浮点类型3.写出至少一种软件延时程序并说明原理。
基本原理:利用循环结构反复执行空语句占用指令周期,实现等待延时。
void Delay1ms() //@12.000MHz{unsigned char i, j;i = 2;j = 239;do{while (--j);} while (--i);}4.掌握for循环及while循环,掌握if语句及switch语句。
for语句for (/*初始化 int i=0*/; /*判断条件 i<count*/; /*执行语句 i++*/) {/* code */}while语句while (/* condition */){/* code */}do{/* code */} while (/* condition */);switch/case语句switch (/*表达式*/){case/*值1*/ : /* code */; break;case/*值2*/ : /* code */; break;...default : /* code */break;}If/if-else语句if (/* condition */){/* code */}else if (/* condition */){/* code */}else{/* code */}5.什么是单片机?什么是单片机最小系统?单片机最小系统三要素是什么?单片机(Microcontrollers,亦称MCU),即单芯片微型计算机,包括了CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统。
微机原理软件实验报告
微机原理软件实验报告学院: _信息与通信工程学院_班级:姓名:学号:实验一DEBUG 的使用一、实验目的1.掌握汇编程序的编辑、编译、连接和执行的全过程;2.学习和掌握用DEBUG调试程序的方法。
二、实验内容1.用编辑软件,输入以下汇编语言源程序:DA T SEGMENTA DB 20 ;(自定)B DB 15 ;(自定)Y DB 3 DUP(0)Z DB 0,0DA T ENDSSTA SEGMENT STACKDW 50 DUP(?)STA ENDSCOD SEGMENTASSUME CS:COD,DS:DA TSTAR PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DA TMOV DS,AXMOV AX,STAMOV SS,AXMOV AL,AMOV Z,ALMOV Z+1,ALCALL SUB1MOV AL,BMOV Z,ALMOV Z+1,ALCALL SUB1MOV AL,AMOV Z,ALMOV AL,BMOV Z+1,ALCALL SUB1ADD WORD PTR Y,AXADC BYTE PTR[Y+2],0RETSTAR ENDPSUB1 PROCMOV AL,ZMOV AH,Z+1MUL AHADD WORD PTR Y,AXADC BYTE PTR[Y+2],0RETSUB1 ENDPCOD ENDSEND STAR2.用 DEBUG 将可执行文件调入,并进行调试。
1)用 D 命令观察数据区在内存中的具体内容,记录单元 A 和 B 的具体地址。
2)用 U 命令对目标代码反汇编,观察反汇编后的结果。
注意发现源程序的起始位置,并记录这个起始地址。
3)用 T 命令作单步跟踪调试。
比较每条指令执行后的结果和原来的理解是否一致,得出程序运行的结果:它们是写在什么单元,具体内容是什么;并判断结果是否正确。
在子程序 SUB1 的入口处设一断点,用 G命令执行程序。
微机原理实验指导书(软件)
实验一系统认识与数码转换实验一、实验目的1.学习汇编语言的开发过程。
2.熟练掌握DEBUG调试程序。
参考书后附录E二、实验设备PC机一台三、实验内容及步骤1.系统认识实验在内存缓冲区BUFF中存储0-F共16个字节数据,实验参考程序如下:DATA SEGMENTBUFF DB 16 DUP (?);定义数据段DATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DI,OFFSET BUFF ;设置缓冲区首址MOV CX,16 ;字节数送入CX中MOV AL,0A1: MOV [DI],AL ;写入一字节INC DI ;修改地址指针INC AL ;修改数据LOOP A1 ;未填完循环MOV AH,4CHINT 21HCODE ENDS ;代码段结束END START ;程序结束实验步骤:(1)把实验用的相关软件拷贝到PC机中,比如D盘的HUIBIAN文件夹(D:\HUIBIAN)。
(2)进入DOS环境(开始\程序\附件\‘C:\命令提示符’),进入路径D:\HUIBIAN。
(3)编辑,启动编辑软件EDIT,输入源程序,检查无误后存盘,如文件名11.ASM。
(4)汇编,即键入MASM 11.ASM回车,通过后应生成文件11.OBJ。
(5)连接,即键入LINK 11.OBJ回车,通过后应生成文件11.EXE。
(6)调试,即键入DEBUG 11.EXE,进入调试软件DEBUG来调试源程序。
DEBUG的用法可参考教材的附录E。
(7)运行程序,观察结果是否正确。
2.数码转换实验将十进制数的ASCⅡ码转换为BCD码。
设五位十进制数的ASCⅡ码已存放在内存缓冲区BUF1中,转换为 BCD 码后,再分别存入内存缓冲区BUF2中。
提示:一字节ASCⅡ码取其低四位即变为BCD码。
实验程序如下:DATA SEGMENTBUF1 DB 31H,32H,33H,34H,35H ;定义数据段BUF2 DB 5 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV CX, 5 ;循环计数器赋初值MOV SI,OFFSET BUF1 ;ASCⅡ码首址MOV DI,OFFSET BUF2 ;BCD码首址A1: MOV AL,[SI] ;送ASCⅡ码至ALCMP AL,3AH ;比较AL与3AJAE A2 ;大于3A则转A2SUB AL,30H ;小于3A则取ASCⅡ码低4位JB A2 ;小于30则转A2MOV [DI],AL ;保存结果A2: INC SIINC DILOOP A1MOV AH,4CHINT 21HCODE ENDSEND START实验步骤(1)输入源程序,进行汇编、连接。
微机原理及应用中南大学实验报告
微机原理及应用实验报告实验一单片机仿真开发机操作和MCS-51指令系统应用一、实验目的1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整;2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编;3、掌握程序的调试和运行的各种方法。
二、实验说明1.输入给定程序,配置选项,调试并运行程序,观察程序控制下寄存器的变化。
2.选中此项keil为纯软件仿真。
3.编写程序上机调试通过,实验报告要求提交程序流程图及源程序。
三、实验内容及步骤(完成分值:60分)本实验秩序运行Keil uVersion2程序,设置为keil为纯软件仿真(不需要连接仿真器就可以仿真)。
1.新建工程项目2.设置工程文件参数3.编写新程序事例4.调试程序直至能够运行出结果。
四、参考实验程序AJMP MAINORG 0030HMAIN: MOV R0,#20HMOV R2,#0FHMOV A,#00HA1: MOV @R0,AINC R0INC ADJNZ R2,A1MOV R0,#20H ;暂停,观察并记录!MOV DPTR,#7000HMOV R2,#0FHA2: MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R2,A2MOV R0,#030H ;断点,观察并记录!MOV DPTR,#7000HMOV R2,#0FHA3: MOVX A,@DPTRMOVX @R0,AINC R0INC DPTRDJNZ R2,A3DO: LJMP DOEND ;内部存储器数据块赋值,搬运数据块到外部存储器,再搬运回内部数据存储器。
五、附加题(完成分值:10分/单个附加题,附加题要求当场给指导老师检查结果,否则无效。
其中1、2、3附加题要求写在实验报告上)1.将光标移到想要暂停的地方,MOV R0,#20H所在行,选择“执行到光标处”功能,程序快速执行到光标所在行。
观察运行情况,并记录下表。
R0 R2 A 20H 21H 22H 23H 24H 25H2FH 00H 0FH 00H 01H 02H 03H 04H 05H26H 27H 28H 29H 2AH 2BH 2CH 2DH 2EH06H 07H 08H 09H0AH 0BH 0CH 0DH 0EH2.在MOV R0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元内容R0 DPL 7000H 7001H 7002H 7003H 7004H 7005H 7006H2FH 01H 0FH 01H 02H 03H 04H 05H 06H7007H 7008H 7009H 700AH 700BH 700CH 700DH 700EH07H 08H 09H 0AH 0BH 0CH 0DH 0EH3.画出程序流程图4.修改程序,实现新功能(例如搬运数据时实现倒序,变成对应的BCD码,请自行考虑与别人不同的功能,同组同学已经实现过的功能不算新功能)答:由程序可知,子程序Al产生数据,子程序A2将产生的数据搬运至7000H开头的地址,子程序A3将7000H开头的地址搬运至30H开头的地址。
微机原理实验报告
微机原理实验报告实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
二、实验内容将两个多位十进制数相加, 要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1.DATA2为首的5个内存单元中(低位在前), 结果送回DATA1处。
三、程序框图图3-1四、参考程序清单程序名: XIANGJ.ASMDATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?) DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL ADDAMOV AX,4C00HINT 21HADDA PROC N EARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30HSUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP A D2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30HADD BYTE PTR [DI],30H DEC SIDEC DIDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START五: 结果分析这次试验依次将相加数和被相加数存入AL, BL, 依次从低位向高位相加, 然后把结果放在内存中, 根据程序走向, 相加的结果依次放在内存地址DS:0000到DS:0004的位置上, 和我们实验预期结果一样。
微机原理实验报告
微机原理实验报告微机原理与接口技术实验报告学院:信息工程学院班级:学号:姓名:实验一:系统认识实验1 实验目的:掌握TD-PITE 80X86 微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。
2 实验设备:PC机一台,TD-PITE 实验装置一套。
3 实验内容:编写实验程序,将00H~0FH 共16 个数写入内存3000H 开始的连续16 个存储单元中。
4 实验步骤:1. 运行Wmd86 软件,进入Wmd86 集成开发环境。
2. 环境调试,“设置”选项中选择汇编语言。
语言环境选择界面3. 新建文档,编写程序,程序如下:SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:SSTACKSTART: PUSH DSXOR AX, AXMOV DS, AXMOV SI, 3000HMOV CX, 16AA1: MOV [SI], ALINC SIINC ALLOOP AA1AA2: JMP AA2CODE ENDSEND START4. 编译连接,程序无误下载:信息界面5. 连接PC与实验系统的通讯电缆,打开实验系统电源。
6. 下载程序,查看内存3000H 开始的连续16 个存储单元中的内容,显示如下:8.由于该内存段原始数据与实验数据相同,便于区分观察,将该内存段初始化,然后查看:9.点击运行程序,在此查看该段内存:10.设置断点,执行程序:5 操作练习编写程序,将内存3500H 单元开始的8 个数据复制到3600H 单元开始的数据区中。
通过调试验证程序功能,使用E命令修改3500H 单元开始的数据,运行程序后使用D命令查看3600H 单元开始的数据。
1、编写程序如下:SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:SSTACKSTART: PUSH DSXOR AX, AXMOV DS, AXMOV SI, 3500HMOV DI, 3600HMOV CX, 8AA1: MOV AL, [SI]MOV [DI], ALINC SIINC DILOOP AA1AA2: JMP AA2CODE ENDSEND START2、执行过程如上,内存变化如下:程序执行前程序执行后实验二:数制转换实验1、实验目的1. 掌握不同进制数及编码相互转换的程序设计方法,加深对数制转换的理解;2. 熟悉程序调试的方法。
微机软件课程设计实验报告
实验一基本程序编程和程序调试一、实验目的1、掌握数码转换等基本程序设计的技巧和方法。
2、熟悉DEBUG命令。
3、学会和掌握用DEBUG调试程序的方法。
二、实验设备PC机一台,装有DOS基本系统三、实验内容及步骤用DEBUG建立、汇编和运行调试程序的操作。
DEBUG是DOS系统支持的用于汇编语言源程序调试的系统软件。
它共有19条命令完成相应的功能,命令及其格式可参阅附录一。
(一)DEBUG操作练习1)实验调试程序程序的功能是从3500H内存单元开始建立0-15共16个数据。
程序略。
2)实验步骤:(1)输入与修改①启动DOS,在DOS提示符下输入DEBUG后回车,屏幕立即显示DEBUG提示符“—”,表明已进入DEBUG状态,可以执行DEBUG的各种命令。
②用DEBUG中的汇编命令“A 地址”将程序建立在内存单元中。
在提示符“—”下键入:“A 2000 ↵”此时显示器上将会显示程序的段地址CS和偏移地址IP,则可以输入以上的程序了。
③用反汇编命令“U 地址”检查程序:在提示符“—”下,键入“U 2000↵”,将从2000内存单元开始的内容反汇编,屏幕上即显示:(2)显示和修改数据①用修改内存单元命令“E 地址”在指定内存单元中存入一个数。
如要在3500为首址的单元中存入14H和25H两个数据,可在提示符“—”下,键入:“E 3500↵”②用显示内存命令“D 地址”检查指定单元的内容,在提示符“—”下,键入“D3500↵”③用显示和修改命令“R ”或“R 寄存器名”显示寄存器或修改其内容,在提示符“—”下,键入“R↵”(3)程序运行程序的运行方式有单步运行、断点运行和连续运行几种方式。
①单步运行输入DEBUG跟踪命令“T”或“T=地址”或“T=地址指定次数”,可从指定地址处运行该单元中的一条指令,以后只要连续输入“T”命令就能连续执行一条一条指令。
如在提示符“—”下,键入“T=2000 ↵”②断点运行用运行命令“G=地址地址断点地址断点…”执行指定地址的程序,在提示符“—”下,键入“G=2000 2011 ↵”③连续运行输入DEBUG 命令“G=地址”,执行指定地址的程序。
北邮微机原理软件实验报告
实验一1.实验要求:编一程序,将地址偏移量为100H单元开始的256个单元分别写入00H,01H,……,FFH数据;统计写入的数据块的0元素、正元素、负元素的个数,并分别将统计结果送入上述数据块后的三个单元中;用DOS功能调用显示上面数据快各单元(包括统计结果)内容,要求每行显示16个数据,两个数据之间用空格隔开。
程序设计思路:分配256个单元存放数据00H,01H,……,FFH,3个单元存放统计结果。
约定:DH存放0的个数,BH存放负数的个数,BL存放正数的个数,然后进行将256个数据一一与0进行比较,得到 DH、BH、BL。
将DH、BH、BL 存入SI的最后三个单元。
最后在以高、低4位,依次将每个单元的数据输出。
2. 程序流程:4.子程序:DISP PROC NEAR ;Show number MOV DL,AL MOV AH,2 INT 21H RET DISP ENDP开始初始化;SI 前256个单元存放00 H……FFH;CX=256;DH=0;BX=0;CMP AL ,0;MOV AL ,[SI] CX=0?将DH ,BX 存入SI ;INC SI ;CX=259;YESINC DH ;INC BHINC BL显示高4位显示低4位; 添加空格; INC SI ;BH=0??BH=16;CX=0?SF=ELSZF=1N ONO YE SN O终止YE实验二1.实验要求:编一程序,把键入的十六进制数转换成十进制,要求:(1)在屏幕上显示转换的十进制数,键入的最大值为FFFFH;(2)若键入非16进制的数,则提示错误;(3)程序中至少用一个子程序和宏命令。
2.程序设计思路:首先判断键入的字符是否为合法的十六进制字符,若是十六进制,将其转化成二进制数值,放入BX中,然后接收下一个字符,并将上一个字符左移4位,再讲此时的BX与接收到的BX相加,直到键入回车,停止接收。
然后通过除以10000,依次将余数除以1000、100、10、1,将二进制转化为十进制,再显示出来。
微机原理软件实验报告
实验名称:汇编语言程序设计实验日期:2023年3月10日实验地点:计算机实验室实验者:张三一、实验目的1. 熟悉汇编语言的基本语法和指令系统。
2. 掌握汇编语言程序设计的基本方法。
3. 通过实验,加深对微机原理的理解。
二、实验内容本次实验主要涉及以下内容:1. 数据传送指令的应用2. 算术运算指令的应用3. 控制转移指令的应用4. 子程序设计三、实验步骤1. 编写一个简单的程序,实现以下功能:(1)将数据0x1234存入寄存器AX;(2)将数据0x5678存入寄存器BX;(3)计算AX和BX的乘积,并将结果存入寄存器DX;(4)将乘积的高16位和低16位分别存入寄存器CX和AX。
2. 编写一个程序,实现以下功能:(1)将数据0x1A2B3C4D存入内存单元[0x1000];(2)从内存单元[0x1000]开始,读取连续4个字节的数据;3. 编写一个程序,实现以下功能:(1)定义一个子程序,实现两个整数的加法运算;(2)在主程序中调用该子程序,实现两个整数的加法运算。
四、实验结果与分析1. 数据传送指令的应用(1)将数据0x1234存入寄存器AX;MOV AX, 0x1234(2)将数据0x5678存入寄存器BX;MOV BX, 0x5678(3)计算AX和BX的乘积,并将结果存入寄存器DX;MUL BX(4)将乘积的高16位和低16位分别存入寄存器CX和AX; MOV CX, DXMOV AX, DX2. 算术运算指令的应用(1)将数据0x1A2B3C4D存入内存单元[0x1000];MOV [0x1000], 0x1A2B3C4D(2)从内存单元[0x1000]开始,读取连续4个字节的数据; MOV AX, [0x1000]MOV BX, [0x1000+2]MOV CX, [0x1000+4]MOV DX, [0x1000+6]MOV AH, 0x0EINT 0x103. 控制转移指令的应用(1)定义一个子程序,实现两个整数的加法运算;ADD procedure:ADD AX, BXRET(2)在主程序中调用该子程序,实现两个整数的加法运算;MOV AX, 0x1MOV BX, 0x2CALL ADDMOV CX, AX五、实验心得通过本次实验,我深刻理解了汇编语言的基本语法和指令系统,掌握了汇编语言程序设计的基本方法。
uestc微机原理实验报告1
1、掌握ARM汇编指令
2、学习掌握C与汇编混合编程基础
3、熟练使用ARM调试工具RVDS进行调试操作
五、实验内容:
1.熟悉ARM汇编
2.用ARM汇编实现1+2+...+N
3.C调用汇编实验(实现字符串拷贝功能)
4.汇编调用C实验
5.ARM汇编实现冒泡算法
六、实验器材(设备、元器件):
硬件:PC机Pentium100以上
LDR r1,=src
inner
;------------------------------------------
;用汇编实现算法核心部分
LDRr2,[r1]
LDR r3,[r1,#4]
CMP r2,r3
STRGT r3,[r1]
STRGT r2,[r1,#4]
ADD r1,r1,#4
CMP r1,r6
STR R1,[R0]
MOV PC,LR返回语句
END
3、ARM汇编实现冒泡算法
这种方法的基本思想:是将待排序的元素看作是竖着排列的“气泡”,较大的元素比较重,从而要往下沉。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自上向下检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最重”的元素就沉到了最低位置;处理二遍之后,“次重”的元素就沉到了次低位置。在作第二遍处理时,由于最低位置上的元素已是“最重”元素,所以不必检查。一般地,第i遍处理时,不必检查第i低位置以下的元素,因为经过前面i-1遍的处理,它们已正确地排好序。
END
实验结果:
大学微机原理实验报告(3篇)
第1篇实验名称:微机原理实验实验日期:2023年10月25日实验地点:计算机实验室实验教师:[教师姓名]实验学生:[学生姓名]班级:[班级名称]一、实验目的1. 理解微机原理的基本概念和组成结构。
2. 掌握微机硬件的基本操作和调试方法。
3. 熟悉汇编语言编程和程序调试技巧。
4. 通过实验加深对微机原理课程的理解,提高动手能力。
二、实验内容本次实验主要分为以下几个部分:1. 微机硬件系统结构认识:了解微机硬件系统的组成,包括CPU、内存、I/O接口等,熟悉各部件的功能和相互关系。
2. 汇编语言编程:学习汇编语言的基本语法和指令系统,编写简单的汇编程序,实现特定功能。
3. 程序调试:使用调试工具(如DEBUG)对汇编程序进行调试,查找并修正错误。
4. 微机原理实验:完成以下实验任务:1. 编写程序实现两个多位十进制数的相加。
2. 编写程序实现字符串比较功能。
3. 编写程序实现乘除法运算。
三、实验步骤1. 微机硬件系统结构认识:- 观察实验室中的微机硬件系统,了解各部件的连接方式和功能。
- 使用示波器检测实验装置的信号是否正常。
2. 汇编语言编程:- 学习汇编语言的基本语法和指令系统。
- 编写程序实现两个多位十进制数的相加,程序如下:```;加数DATA1 DB 3,4,5,6,7;被加数DATA2 DB 2,3,4,5,6;结果SUM DB 5 DUP(0);程序开始MOV CX, 5 ;循环次数MOV AL, 0 ;结果初始化为0MOV SI, OFFSET DATA1 ;加数地址MOV DI, OFFSET DATA2 ;被加数地址ADD_LOOP:ADD AL, [SI] ;加数加到AL寄存器ADC AL, [DI] ;进位加到AL寄存器MOV [DI], AL ;结果存回DI寄存器ADD SI, 1 ;加数地址加1ADD DI, 1 ;被加数地址加1LOOP ADD_LOOP ;循环;程序结束```- 编写程序实现字符串比较功能,程序如下:```;字符串1STRING1 DB 'Hello';字符串2STRING2 DB 'World';比较结果RESULT DB 0;程序开始MOV SI, OFFSET STRING1 ;字符串1地址MOV DI, OFFSET STRING2 ;字符串2地址CMP_LOOP:MOV AL, [SI] ;读取字符串1的当前字符CMP AL, [DI] ;与字符串2的当前字符比较 JNE NOT_EQUAL ;不相等则跳转到NOT_EQUAL INC SI ;字符串1地址加1INC DI ;字符串2地址加1LOOP CMP_LOOP ;循环MOV RESULT, 1 ;相等则将结果设置为1JMP END ;跳转到ENDNOT_EQUAL:MOV RESULT, 0 ;不相等则将结果设置为0END:;程序结束```- 编写程序实现乘除法运算,程序如下:```;被乘数DATA1 DB 10;乘数DATA2 DB 5;结果PRODUCT DB 0;程序开始MOV AL, [DATA1] ;被乘数加载到AL寄存器MUL [DATA2] ;乘数乘到AL寄存器MOV [PRODUCT], AL ;结果存回PRODUCT;程序结束```3. 程序调试:- 使用DEBUG工具对汇编程序进行调试,查找并修正错误。
微机原理软件实验报告(终版)word资料23页
2019年微机原理软件实验报告学院:信息与通信工程学院班级:2019211122姓名:李济汉学号:10210737班内序号:20目录实验二分支、循环程序设计 (4)一、实验目的 (4)二、实验内容 (4)三、程序流程图 (4)四、实验原理 (5)五、实验源程序 (5)1、必做题 (5)2、选做题 (7)六、实验运行结果 (10)七、思考题.............................................................................. 错误!未定义书签。
八、实验总结、问题分析、心得体会 (11)实验三代码转换程序设计............... 错误!未定义书签。
一、实验目的 (12)二、实验内容 (12)三、程序流程图与程序模块图 (12)四、实验原理 (13)五、实验源程序 (13)六、实验运行结果 (15)七、思考题.............................................................................. 错误!未定义书签。
八、实验总结、问题分析、心得体会 (16)实验四子程序设计 (18)一、实验目的 (18)二、实验内容 (18)三、程序流程图与程序模块图 (18)四、实验原理 (20)五、实验源程序 (20)六、实验运行结果 (25)七、思考题 (26)八、实验总结、问题分析、心得体会 (27)实验五中断程序设计 (28)一、实验目的 (28)二、实验内容 (28)三、程序流程图 (29)四、实验原理 (29)五、实验源程序 (30)六、实验运行结果 (34)七、思考题 (34)八、实验总结、问题分析、心得体会 (35)实验二分支及循环程序设计一、实验目的1、开始独立进行汇编语言程序设计;2、掌握基本分支,循环程序设计;3、掌握最简单的 DOS 功能调用。
二、实验内容1、安排一个数据区,内存有若干个正数,负数和零.每类数的个数都不超过 9;2、编写一个程序统计数据区中正数,负数和零的个数;3、将统计结果在屏幕上显示。
北京理工大学自动化专业微机原理软件实验报告
微型计算机原理与接口技术软件实验报告班级:姓名:学号:实验一一.实验题目1、学习并掌握IDE86集成开发环境的使用;2、参考书例4-8,以单步形式观察程序的执行过程;3、修改该程序,求出10个数中的最大值和最小值。
以单步形式观察如何求出最大值、最小值。
二.实验目的1、熟悉IDE86集成开发环境的使用。
2、通过编程、上机调试,进一步理解汇编语言的设计思路与执行过程。
3、锻炼动手编程,独立思考的能力。
三.实验内容1、题目1的设计思路及流程图a.设计思路为实现求和的功能,首先将十个数存入内存中,设定AX为计算结果存储单元,CX为计数器,随后建立循环,将每个数依次加到AX上,直至CX=0,最后将AX中存储的结果移动到SUM存储单元中,结束程序。
b.流程图2、题目3设计思路及流程图a.设计思路为实现求取最大值最小值的功能,首先将十个数存入内存中,设定CX为计数器,将第一个数分别存入到MAX与MIN储存单元中,随后建立循环,将每个数依次与MAX(MIN)相比较,如果有大于(小于)MAX(MIN)中的,移入相应存储单元,直至CX=0。
最后将MAX和MIN中存储的数据打印在屏幕上,返回DOSb.四.实验源程序a.题目2源程序DATA SEGMENT ;定义数据段TABLE DB 12H,23H,34h,45h,56h ;10个加数DB 67H,78H,89H,9AH,0FDHSUM DW ?DATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AX ;初始化DSMOV ES,AX ;初始化ESLEA SI,TABLE ;SI指向TABLEMOV CX,10 ;循环计数器XOR AX,AX ;AX为中间结果NEXT: ADD AL,[SI] ;把一个数加到AL中ADC AH,0 ;若有进位,则加到AH中INC SI ;指向下一个数LOOP NEXT ;若未加完,继续循环MOV SUM,AX ;若结束,存结果于SUMHLT ;结束CODE ENDS ;代码段结束ENDSTART ;汇编结束b.题目3源程序DATA SEGMENT ;定义数据段TABLE DB 12H,23H,34h,45h,56h ;十个待比较数DB 67H,78H,89H,9AH,0FDHMAX DB ?MIN DB ?A DB 'Max:','$' ;屏幕提示字符串B DB 0DH,0AH,'Min:','$'DATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AX ;初始化DSMOV ES,AX ;初始化ESLEA SI,TABLE ;SI指向TABLEMOV CX,10 ;循环计数器XOR AX,AX ;清空AXCLD ;清方向标志DFLODSB ;AL存入一个8位数MOV MAX,AL ;将该数送MAXMOV MIN,AL ;将该数送MINDEC CX ;计数器减一NEXT: LODSB ;取下一个数CMP AL,MAX ;与MAX比较JA LARGER ;若大于转LARGERCMP AL,MIN ;否则与MIN比较JB SMALLER ;若小于转SMALLERJMP GOON ;否则转GOONLARGER:MOV MAX,AL ;AL的值存入MAX JMP GOON ;转到GOONSMALLER:MOV MIN,AL ;AL的值存入MINGOON: LOOP NEXT ;CX-1,若CX≠0转NEXTLEA DX,A ;获取A的首地址MOV AH,09H ;调用字符串显示功能INT 21HMOV AL,MAX ;MAX值存入ALCALL DISPLAY ;调用显示子程序LEA DX,B ;获取B的首地址MOV AH,09H ;调用字符串显示功能INT 21HMOV AL,MIN ;MIN值存入ALCALL DISPLAY ;调用显示子程序MOV AH,4CH ;调用返回DOS功能INT 21HDISPLAY PROC ;十六进制显示子程序PUSH BX ;保持BX内容PUSH CX ;保持CX内容MOV BH,ALMOV CH,2 ;设置循环计数器ROT: MOV CL,4 ;移位次数ROL BX,CLMOV AL,BLAND AL,0FH ;清空AL高四位ADD AL,30H ;0-9转换ASCII码CMP AL,3AHJL PRITADD AL,7H ;A-F转换ASCII码PRIT:MOV DL,ALMOV AH,2 ;调用字符显示功能INT 21HDEC CH ;计数器-1JNZ ROT ;CH≠0,继续循环POP CX ;恢复CX内容POP BX ;恢复BX内容RET ;返回DISPLAY ENDPCODE ENDS ;代码段结束ENDSTART ;结束五.实验运行结果a.题目2运行结果前五个数运算结束后寄存器状态:图3 前五个数计算后寄存器状态其中ax值为图4 前五个数计算后AX的值故此时前五个数之和为0104H。
北理(bit)微机原理上机软件实验报告
微机原理软件编程实验报告班级:学号:姓名:一、实验题目1、IDE86集成开发环境的学习和运用2、编写程序求出10个数中的最大值和最小值,并以单步形式观察如何求出最大值、最小值。
3、求1到100 的累加和,并用十进制形式将结果显示在屏幕上。
要求实现数据显示,并返回DOS状态。
4、将存储器中的十个字节型十六进制有符号数按从小到大的顺序排序并按十六进制显示出来。
(56H、0ffH、78H、82H、12H、0、95H、58H、0bcH、34H)二、实验目的1、学习并掌握IDE86集成开发环境的使用包括编辑、编译、链接、调试与运行等步骤编辑:源程序的输入、修改。
编译:常见编译出现的语法错误的修改。
连接:形成可执行文件。
运行:运行、断点设置、单步运行、单步跟踪;观察寄存器、标志寄存器值;观察数据存储器中的数据。
2、完成所有题目,提高编程能力,加深对理论课的理解。
三、实验内容1、文字叙述设计思路1.1编写程序求出10个数中的最大值和最小值由于一共有十个数,所以求其最大数或者最小数需要比较9次。
从数据段的段首开取数,先取两个数进行比较,比较完后取其中的最大数或者最小数放入数据段的第二位中。
再取第三位数与第二位数比较,如此循环,比较9次后在数据段最末位的就是我们需要的数。
1.2求1到100 的累加和,并用十进制形式将结果显示在屏幕上求和部分:1~100一共有100个数,所以需要做100次加法。
做加法要有两个数,第一个数是第i位的数值,第二个数是i-1位以及之前所有数的和,所以这两个数必须分别存放在两个寄存器里,并且两个数相加之后的所得的值,必须放在存放“和”的寄存器中,另外一个寄存器每做完一次加法自加1。
显示部分:我们所求得的最终数值在内存中是以16进制数存放的,但是由于结果只是一个数,我们可以把它的每一位所对应的ASCII码按照一定的顺序存放到一个数据段中,再以字符串形式直接输出。
1.3将存储器中的十个字节型十六进制有符号数按从小到大的顺序排序并按十六进制显示出来比较部分:题目一共给了我们10个数,如果要进行排序的话可以先把十个数中最大的数选出来,放到数据段的最后一个位置,接着再选出次大的数放到数据段的倒数第二位,如此循环到最后便可成功将所给的十个数排序好。
微机原理实验报告软件实验1
一、实验目的1.掌握存储器读写方法2.了解存储器的块操作方法、实验原理存储器读写和块操作三、实验设备仪器及材料计算机,WAVE 6000软件data endscode segme ntassume cs:code, ds:datastart proc n earmov ax, datamov ds, axmov bx, offset Block ;起始地址movcx, 256 ; 清256字节Againmov [bx], byte ptr 0inc bx;地址+1Loop Agai n ;记数减一jmp $ ; 死循环code endsend start四、实验过程Sl.asm data segme nt Block db 256 dup(55h) 代码流程图(1)进入Wave6000,输入程序并检查,保存程序。
⑵“编译”程序。
(3) “全速执行”程序。
⑷“暂停”程序运行,在“数据窗口( MEMOREY )”查看0400H 起始的单元 内容,并记录。
(5)在指令“jmp $”处设断点。
“全速执行”程序。
⑹ 在“数据窗口( MEMOREY )”查看0400H 起始的单元内容,记录并分析实 验结果。
六、实验结果及总结 1、在“数据窗口( MEMOREY )”查看0400H 起始的单元内容 运行前:2、调试:如何将存储器块的内容置成某固定值(例全填充为0FFH) ?总结:通过本实验,我了解到单片机读写存储器的读写方法, 同时也了解到单片 机编程,调试方法。
学会内存的移动方法,也加深对存储器读写的认识。
实验步骤运行后:511H C \UB200Qf \E X&6ASM \S1. ASM(0400 00 0G 00 00 (I) 00 00 CO 00 00 041000 00 00 OG oo 10420 00 □0 00 oo □0 關皿 00 GO oo □0 0440 oa 00 00 oo oo00 □0 co oo oo 0400 00 00 DC oo □.1JJ00 00 0D □0 00 oo_ tJ D 00 oa tK 00 aoon XJ 00 (K 0D oo00 00 co 00 00 oo00 00 co (K ) 00 ooC - \LAB2000F\EXS6kSM \51. ASM地址:0400)(oa 00 W W 00 OO^d r.实验课程名微机原理实验成绩实验项目名称实验二、二进制到BCD码转换指导老师、实验目的1. 了解BCD值和ASCII值的区别2.了解如何将BCD值转换成ASCII值。
微机原理软件实验报告
微机原理软件实验报告班级:姓名:学号:班内序号:日期:实验B 分支,循环程序设计实验报告一.实验目的:开始独立进行汇编语言程序设计;; 掌握基本分支,循环程序设计;;掌握 DOS调用. 二.实验内容:安排一个数据区,内存有若干个正数,负数和零.每类数的个数都不超过9; .编写一个程序统数据区中正数,负数和零的个数;.将统计结果在屏幕上显示.统计出正奇数,正偶数,负奇数,负偶数以及零的个数.。
三.预习题:1、十进制数 0 -- 9 所对应的 ASCII 码是什么?答:30H,31H,32H,33H,34H,35H,36H,37H,38H,39H2、如何将十进制数 0 -- 9 在屏幕上显示出来?答:转化为ASCII 码,然后: MOV AH,02H MOV DL,Y INT 21H3、如何检验一个数为正,为负或为零? 你能举出多少种不同的方法?答:和零作比较,判断是否为零,CMP NUM ,00H ; AND NUM, 00H;判正:AND NUM,80H ; OR NUM ,7FH; SUB NUM,00H; SHL NUM,1; 判负:AND NUM,80H ; OR NUM,7fh ; SUB NUM,00H ; SHL NUM,1;四、实验过程(一)、流程图从数据区读入数字宏定义开始是 否是 否否 是 否是 否是判零操作零计数器数加判断负数是否为偶数 是否为奇数负数计数器加1 正数计数器加1负偶计数器负奇计数器加正奇计数器正偶计数器加数据读完显示结束(二)、源代码SHOW MACRO X ;;宏定义用于显示提示语句MOV AH,09HMOV DX, OFFSET XINT 21HENDMSHOW1 MACRO Y ;;宏定义用于显示数值MOV AH,02HMOV DL,YINT 21HENDMDAT SEGMENTA DB 1,16,70,-1,-2,1,0,-2,0,-2,9S EQU $-A ;待分类的数PLUS DB ? ;存储正数MINUS DB ? ;存储负数LING DB ? ;存储零EVE DB 0 ;存负偶数ODD DB 0 ;存负奇数ZEVE DB 0 ;存正偶数ZODD DB 0 ;存正奇数STRING DB 'THE NUMBER OF POSITIVE NUMBERS IS ', '$'STRINM DB 0DH,0AH,'THE NUMBER OF NEGATIVE NUMBERS IS ', '$' STRINN DB 0DH,0AH,'THE NUMBER OF ZERO IS ', '$'STRING1 DB 0DH,0AH,'THE NUMBER OF POSITIVE ODD NUMBERS IS ', '$'STRING2 DB 0DH,0AH,'THE NUMBER OF POSITIVE EVEN NUMBERS IS ', '$'STRING3 DB 0DH,0AH,'THE NUMBER OF NEGATIVE ODD NUMBERS IS ', '$'STRING4 DB 0DH,0AH,'THE NUMBER OF NEGATIVE EVEN NUMBERS IS ', '$'DAT ENDSSTA SEGMENT STACKDW 50 DUP(?)STA ENDSCOD SEGMENTASSUME CS:COD,DS:DAT,SS:STASTAR PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATMOV DS,AXMOV AX,STAMOV SS,AXMOV CX,SLEA BX,ACON: MOV AL,BYTE PTR[BX]OR AL,ALJZ ZERO ;判断是零JS FU ;判断是负数JMP ZHENG ;判断是正数ZERO: INC LING ;零个数自加JMP DONEFU: INC MINUS ;负数个数自加AND AL,01HJZ OU ;判断是负偶数INC ODD ;判断是负奇数,负奇数个数自加 JMP DONEOU: INC EVE ;负偶数个数自加JMP DONEZHENG: INC PLUS ;正数个数自加AND AL,01HJZ ZOU ;判断是正偶数INC ZODD ;正奇数个数自加JMP DONEZOU: INC ZEVE ;正偶数个数自加JMP DONEDONE: INC BX ;指向下一个内存数LOOP CONADD LING,30H ;转换为ASCII码ADD MINUS,30HADD PLUS,30HADD ODD,30HADD EVE,30HADD ZODD,30HADD ZEVE,30HSHOW STRING ; 提示语句SHOW1 PLUS ;大于0的数SHOW STRINN ;提示语句SHOW1 LING ; 等于0的数 SHOW STRINM ;提示语句SHOW1 MINUS ;小于0的数 SHOW STRING1 ;提示语句SHOW1 ZODD ;正奇数个数数 SHOW STRING2 ;提示语句SHOW1 ZEVE ;正偶数个数SHOW STRING3 ;提示语句SHOW1 ODD ;负奇数个数SHOW STRING4 ;提示语句SHOW1 EVE ;负偶数个数RETSTAR ENDPCODE ENDSEND STAR(三)、实验分析数据区待统计的数据为:1,16,70,-1,-2,1,0,-2,0,-2,9实验结果如下图所示。
《微机原理实验报告》word版
班级自动化学号姓名实验一系统认识实验一实验目的掌握教学系统的基本操作二实验设备PC机一台masm软件三实验内容及步骤(1)输入程序并检查无误,经汇编连接后装入系统(2)输入E3500后回车,在3500-3510单元中分别送入00~09十个数据(3)按“T“键运行以上程序直至程序运行完(4)输入D3600后回车,查看3600单元后面的数据四程序及其显示的结果(1)程序(2)显示的结果实验三运算类编程实验一实验目的(1)掌握使用运算类指令编程及调试方法(2)掌握运算类指令对各状态标志位的影响及其测试方法二实验设备PC一台masm软件三实验内容及步骤(1)二进制双精度加法运算(2)输入程序并检查无误,经汇编连接后装入系统(3)用U0000:2000查看MOV AX,DA TA的语句,即得到数据段段位置CS:1412用E命令E1412:0000回车,给XL,YL,YH赋值存入二进制数A0,65,15,00和9E,B7,21,00(4)用G=0000:2000,运行以上程序(5)输入D1412:0008,检验显示的结果是否为:3E,1D,17,00四实验程序五程序显示的结果实验四分支程序设计实验一实验目的:(1)掌握分支程序的结构(2)掌握分支程序的设计,调试方法二实验设备:PC机一台masm软件三实验内容设计一数据块间的搬移程序。
设计思想:程序要求把内存中一数据区传送到另一存储区。
源数据块和目的数据块在存储中可能有三种情况,对于两个分离的情况,数据的传送从数据块的首位置开始,或者从数据块的末位置开始。
但对于有部分重叠的情况,则要加以分析,否则重叠部分会因搬移而遭到破坏,可以得到以下结论:(1)当源数据块首址大于目的块首址时,从数据块首址开始传送数据。
(2)当源数据块首址小于目的块首址时,从数据块末址开始传送数据。
四实验步骤(1)按实验流程图设计编写实验程序(2)输入程序并检查无误后,经汇编,连接后装入系统(3)用E命令在以SI为起址的单元中填入十六个数(4)用G=0000:2000运行实验程序(5)用D命令查看DI为起址的单元中的数据是否与SI单元中数据相同五实验程序及结果显示(1)实验程序(1)实验结果显示实验五循环程序设计一实验目的(1)加深对循环结构的理解(2)掌握循环结构程序设计的方法(3)熟练掌握调试循环程序的方法二实验设备:PC机一台masm软件三实验内容求数据区内负数的个数:设数据区的第一单元存放区内单元数据的个数,从第二单元开始开始存放数据,在区内最后一个单元存放结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的1.掌握存储器读写方法2.了解存储器的块操作方法、实验原理存储器读写和块操作三、实验设备仪器及材料计算机,WAVE 6000软件data endscode segme ntassume cs:code, ds:datastart proc n earmov ax, datamov ds, axmov bx, offset Block ;起始地址movcx, 256 ; 清256字节Againmov [bx], byte ptr 0inc bx;地址+1Loop Agai n ;记数减一jmp $ ; 死循环code endsend start四、实验过程Sl.asm data segme nt Block db 256 dup(55h) 代码流程图(1)进入Wave6000,输入程序并检查,保存程序。
⑵“编译”程序。
(3) “全速执行”程序。
⑷“暂停”程序运行,在“数据窗口( MEMOREY )”查看0400H 起始的单元 内容,并记录。
(5)在指令“jmp $”处设断点。
“全速执行”程序。
⑹ 在“数据窗口( MEMOREY )”查看0400H 起始的单元内容,记录并分析实 验结果。
六、实验结果及总结 1、在“数据窗口( MEMOREY )”查看0400H 起始的单元内容 运行前:2、调试:如何将存储器块的内容置成某固定值(例全填充为0FFH) ?总结:通过本实验,我了解到单片机读写存储器的读写方法, 同时也了解到单片 机编程,调试方法。
学会内存的移动方法,也加深对存储器读写的认识。
实验步骤运行后:511H C \UB200Qf \E X&6ASM \S1. ASM(0400 00 0G 00 00 (I) 00 00 CO 00 00 041000 00 00 OG oo 10420 00 □0 00 oo □0 關皿 00 GO oo □0 0440 oa 00 00 oo oo00 □0 co oo oo 0400 00 00 DC oo □.1JJ00 00 0D □0 00 oo_ tJ D 00 oa tK 00 aoon XJ 00 (K 0D oo00 00 co 00 00 oo00 00 co (K ) 00 ooC - \LAB2000F\EXS6kSM \51. ASM地址:0400)(oa 00 W W 00 OO^d r.实验课程名微机原理实验成绩实验项目名称实验二、二进制到BCD码转换指导老师、实验目的1. 了解BCD值和ASCII值的区别2.了解如何将BCD值转换成ASCII值。
3.了解如何查表进行数值转换及快速计算。
、实验原理ASCII码表三、实验设备仪器及材料计算机,WAVE 6000软件四、实验过程data segme nt代码流程图Result db 3 dup⑺data endscode segme ntassume cs:code, ds:datastart proc n earmov ax, datamov ds, axmov ax, 123mov cl, 100div clmov Result, al ; 除以100,得百位数mov al, ahmov ah, 0mov cl, 10div clmov Result+1, al ; 余数除以10,得十位数mov Result+2, ah ; 余数为个位数jmp $五、实验步骤1.进入Wave600Q输入程序,并检查,保存程序。
2.“编译”程序。
3.在指令“jmp $”处设断点。
4.“全速执行”程序。
5.在“数据窗口( MEMOREY )”查看:a)0400H、0401H、0402H三个单元的内容,记录并分析实验结果。
b)分别查看0400H、0500H开始256个单元的内容,记录并分析实验结果六、实验结果及总结在“数据窗口( MEMOREY )”查看:a) 0400H、0401H、0402H三个单元的内容运行前12EK C \UB2000F\EXB6ASM\S2. ASM运行后3400 5E 5E E5 5E 55 55 55 55 5E 55 56 *0410 55 55 55 55 55 55 55 55 55 5S 5555 550430 55 55 55 55 55 55E5 E5□ 45Q 55 55 55 55 55 55 55 閃550400 55 5弓亏555 555555 55 5S 55 寿创地址:0400Hb)分别查看0400H、0500H开始256个单元的内容运行前运行后0000 QQ oo00□0 00QQ 00QO -严。
BS4000SE D6 B8TB00Bl64蹈_0420C4取I 00Bl (H F5 Fl 曲010QO43CJ-55配SB 56 04 EC 5D C3 55SB04405& 04 EE 5D C3FA C3 FB C3 55 SB 0155 00 00 6E D0 TB 00 匿69 OT GA 5E 046a B7 00 6B 4& G6 05 Q0 04 S3 07tkllt: 040OH 0400 01 0E 03地址:0400M00 00 00 00 00 0(J Q0 AC. \ LAB201UOI- 6 A5M\0421H C: \IAS2O0CF\BXe&ASI \S2. ASRI一、实验目的1.掌握如何将进制数转换成 ASCII码2.掌握如何查表进行数值转换3.了解如何查表进行数值转换及快速计算。
二、实验原理ASCII码表三、实验设备仪器及材料计算机,WAVE 6000软件四、实验过程data segme ntResult db 2 dup⑺ASCIITab:db "0123456789ABCDEF"; 定义数字对应的ASCII表data endscode segme ntassume cs:code, ds:datastart proc n earmov ax, datamov ds, axmov ax, 1ahmov bl, alshr bl, 4mov bh, 0mov Result, ahand al, 0fhmov bl,almov ah, byte ptr ASCIITab[bx]mov Result+1,ahjmp $程序流程图结束五、实验步骤(1)进入Wave600Q输入程序并检查,保存程序。
(2)“全部编译”程序。
(3)“全速执行”程序。
⑷ 在“数据窗口( MEMOREY )”查看0400H、0401H两个单元的内容,记录并分析实验结果。
六、实验结果及总结在“数据窗口( MEMOREY )”查看0400H、0401H两个单元的内容运行前a3i32. 33OUO 4& 46 00 0034 S5 36 37 3800 00 00 00 oo0420 BS 40 (D BE 1A 00 BA DS Dd0^130 E0 ET FT 000A AT(32 00 36 2E 0(JMEMORY IDMAP运行后i44£H |C: \UiB200 OlF \EX 86ASM \S3.实验课程名微机原理实验成绩实验项目名称实验四、内存块移动指导老师古鹏、实验目的1.了解内存的移动方法2.加深对存储器读写的认识、实验原理存储器读写三、实验设备仪器及材料计算机,WAVE 6000软件四、实验过程程序流程图data segme ntSource db 256 dup(055h)Target db 256 dup(0aah)data endscode segme ntassume cs:code, ds:data, es:datastart proc n earmov ax, datamov ds, axmov es, axmov si, offset Source mov di, offset Target movcx, 256 rep movsbjmp $ code ends五、实验步骤(1)进入Wave6000,输入程序并检查,保存程序。
(2)“全部编译”程序。
(4) “全速执行”程序。
⑸在“数据窗口( MEMOREY )”运行前查看0400H到04F0H内容,运行后查看0500H到05F0H的内容,两个状态相比较,记录并分析实验结果。
六、实验结果及总结在“数据窗口( MEMOREY ) ”运行前查看0400H到04F0H内容,运行后查看0500H到05F0H的内容运行前运行后\LAB2O0OP\EK6&ASM\S4. ASMD550 55 55 55 55: 55 :55 55 55 55 55 55jJID550 AAMM 狀MAA 馆MkA 臥AA,iDSTO XAUAAAAMAA 呱kAAAAkAA 1053 0MAAAAAAAAAAAAAAAAMAA匪和AAAAAAAAAAAAAAkAAAAA^O5E0 AAAAAAAAAA.AAAAAAAAAA. AA 二]±r地址:0400H:\LAB2DOOP\.EXaCASM^4. ASMf C5BO AAAAAAAAAAAAAAAAAAAk AA *Q5CO AAMMAAMftAAAAA 心Ak AA_P5DO AAAAAAAXARMAkAAKAAKAAH5EO05FO AAAAUkAAAAA^AAAAAAAkAA0600 B3 40 00 BE D8 BE CO Bf GO 00 BF10610 F3 A4 EB FE 55 SB EC 8E 56 04 EC ~ I!地址:D4U0H。