单片机 数据块传送 软件实验3

合集下载

数据快传送实验报告

数据快传送实验报告

一、实验目的1. 理解数据传送的基本原理和常用方法。

2. 掌握数据块传送指令的功能和使用方法。

3. 熟悉汇编语言编程,实现数据快速传送。

二、实验原理数据传送是计算机组成原理中的一项基本操作,主要涉及内存与寄存器、寄存器与寄存器之间的数据交换。

数据传送指令包括传送指令、数据块传送指令等。

数据块传送指令能够实现内存与寄存器、寄存器与寄存器之间的一组数据的快速传送。

三、实验设备1. 实验箱2. 电脑3. 汇编语言编程软件(如:MASM、TASM等)四、实验内容1. 编写汇编语言程序,实现数据块传送。

2. 通过程序观察数据传送的结果,分析数据传送指令的执行过程。

五、实验步骤1. 设计实验程序,实现数据块传送。

2. 编译实验程序,生成可执行文件。

3. 在实验箱上运行实验程序,观察数据传送结果。

4. 分析实验结果,验证数据传送指令的正确性。

六、实验程序以下为实验程序示例:```assembly; 数据块传送实验程序DATA SEGMENT; 定义源数据段source DB 1,2,3,4,5,6,7,8DATA ENDSCODE SEGMENTSTART:; 初始化数据段寄存器MOV AX, DATAMOV DS, AX; 初始化数据块传送指令参数MOV CX, 8 ; 传送字节数MOV SI, OFFSET source ; 源数据段偏移地址 MOV DI, OFFSET dest ; 目标数据段偏移地址 ; 执行数据块传送指令CLDMOVSB; 传送结果分析; ...; 程序结束MOV AX, 4C00HINT 21HCODE ENDSEND START```七、实验结果与分析1. 在实验箱上运行实验程序,观察数据传送结果。

2. 分析实验结果,验证数据传送指令的正确性。

3. 比较不同数据传送指令的执行时间,分析数据块传送指令的效率。

八、实验总结通过本次实验,我们了解了数据传送的基本原理和常用方法,掌握了数据块传送指令的功能和使用方法。

单片机 熟悉键盘操作及数传指令 软件实验

单片机 熟悉键盘操作及数传指令 软件实验

实验一 熟悉键盘操作及数传指令编程设计1、 实验目的1. 熟悉软件模拟调试的环境及键盘操作。

2. 掌握汇编语言程序设计的方法,加深对指令的理解。

3. 学会软件模拟调试和察看修改观察项的方法。

2、 实验内容印证数据传送指令的功能、寻址方式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。

三、实验步骤1. 进入调试软件环境,输入源程序;2. 汇编源程序;3. 用单步方式运行程序;4. 检查并记录各寄存器和存储单元内容的变化。

四、程序清单内部RAM 数据传送需要查看的数据有30H,31H,A,R0等。

30H 31H A R0ORG 0000HOOH 00H 00H 00HMOV R0,#30H (R0)=30H 2字节00H 00H 00H 30HMOV 30H,#45H (30H)=45H 3字节45H 00H 00H 30HMOV 31H,#46H (31H)=46H 3字节45H 46H 00H 30HMOV R2,30H (R2)=(30H)=45H 2字节45H 46H OOH 30HMOV 02H,31H (02H)=(31H)=46H (R2)=(31H)=46H 3字节 45H 46H00H 30HMOV A,#87H (A)=87H (0E0H)=87H 2字节45H 46H 87H 30HMOV 0E0H,30H (0E0H)=(30H)=45H (A)=45H (psw)=01H(P)=01H 3字节45H 46H 45H 30HMOV 30H,A (30H)=(A)=45H 2字节5H 46H 45H 30HMOV 31H,@R0 (31H)=((R0))=(30H)=45H 2字节45H 45H 45H 30HSJMP $外部数据传送需要查看的数据有外部数据存储器单元2000H,外部程序存储器单元2001H。

KEIL3软件教程

KEIL3软件教程

MOV @R1, A ;源数据送目的地址单元(调试时观察 R1 的间接寻址的作用)
;执行完上条指令时,观察数据存储区 40H-4FH 单元里数据的变化,并记录在表 1-2 中
INC R0 ;修改源地址指针
INC R1 ;修改目的地址指针
DJNZ R2, Loop2 ;控制循环次数和循环位置(观察 R2 里数据的变化,体会 DJNZ 指令的作用 )
图 1-8 调试工具栏
(5) 调试实验程序,记录实验数据 实验操作 1
单击“视图”菜单打开“反汇编窗口”,可以看到经过编译后各条指令对应的机器码和存储地址,如图 1-9 所示。
存储器地址
机器代码
源程序行
源指令
图 1-9 反汇编窗口
实验操作 2
单击“视图”菜单打开“存储器窗口”, 在地址栏里输入 C:0, 回车,此时“Memory#1”窗口表示的是程序存
数据,并记录于表 1-2 中。
数据存储器地址 30H 数值
数据存储器地址 38H 数值
表 1-2
31H
32H
33H
34H
35H
36H
37H
39H 3A H 3B H 3C H 3D H 3E H 3F H
数据存储器地址 40H
41H
42H
43H
44H
45H
46H
47H
数值
数据存储器地址 48H
49H
了解单片机传送数据的工作过程。并通过数据存储器窗口查看 30H-3FH 地址里的数据,并记录于表 1-2 中。
实验操作 4
连续操作“跟踪” 命令,逐条执行 two 到 SJMP $ 之间的指令,在图 1-12 特殊寄存器窗口观察 R0、R1、R2、

单片机原理与应用实验教案

单片机原理与应用实验教案

《单片机原理及应用》实验教学大纲课程编号:B04611016课程类别:专业课实验学时:16学时学分:2.5适用专业:计算机科学与技术一、实验教学目的和任务本课程是计算机及应用专业一门重要的专业课。

其教学内容直接面向生产。

同时,微机向小型化、超小型化方面发展愈来愈迅猛。

单片机应用已渗透社会各个领域,特别在通信技术中的应用,大大提高了通信技术水平。

学生应具备这方面的知识与技能,为今后参加工作,打下坚实的基础。

二、实验教学基本要求本课程是一门很注重实践的课程。

以研究MCS-51系列单片机入手,掌握其硬件结构、指令系统和程序设计,以及常用接口技术和典型应用实例。

三、实验教学内容实验项目一:清零程序1、实验目的及要求要求学生掌握软件的结构和键盘的调试。

2、实验内容及学时分配(2学时)(1)了解MCS-51软件的构造(2)掌握清零程序的输入方法(3)了解起始伪指令的输入方法实验项目二:拼字和拆字程序1、实验目的及要求要求学生掌握存储器分配和汇编语言的简单应用。

2、实验内容及学时分配(2学时)(1)进一步掌握MCS-51软件的基本使用方法(2)掌握指令的寻址方式(3)掌握数据传送指令和地址内容的分配实验项目三:数据区传送子程序1、实验目的及要求要求学生掌握RAM数据存储器实际操作。

2、实验内容及学时分配(2学时)(1)掌握MCS-51逻辑运算指令和位操作指令(2)进一步掌握数据传送子程序的简单方法(3)掌握查表程序的编写实验项目四:数据排序实验1、实验目的及要求要求学生掌握汇编语言的应用和实际操作。

2、实验内容及学时分配(2学时)(1)掌握MCS51逻辑运算指令和位操作指令(2)进一步掌握简单顺序程序的编写和调试方法(3)掌握查表程序的编写实验项目五:查找相同个数1、实验目的及要求熟悉汇编语言程序,使用环移指令和加1指令。

2、实验内容及学时分配(2学时)(1)掌握赋值指令(2)掌握带进位的环移指令和加1程序的编写实验项目六:双字节无符号数的乘法实验1、实验目的及要求要求学生掌握MCS-51汇编语言设计和调试方法。

单片机实验一片内外清零、数据块的传送

单片机实验一片内外清零、数据块的传送

单片机实验报告专业:电子信息工程班级:姓名:学号:指导教师:单片机实验报告实验项目名称:片内外清零、置位和数据块传送程序实验日期: 2010-10-27 实验成绩:实验评定标准:1)实验内容否完整A()B()C()2)实验结果分析是否正确A()B()C()3)实验报告是否按照规定格式A()B()C()一、实验目的1、掌握汇编语言中对芯片内外存储器的清零,置位。

2、掌握8031 内部RAM 和外部RAM 之间的数据传送方法;掌握这两部分RAM 存贮器的特点与应用,掌握各种数据传送方法。

二、实验内容及要求1、将片内从50H开始的连续30个地址内容清零;将片外7000H_79FFH单元内容清零;将片内从20H开始的连续30个地址内容设置为0FEH。

2、试编写将外部的数据存贮区6030~607FH 的内容写入外部RAM 3030~307H 中。

三、实验步骤1、片内外清零、置位打开Keil程序,执行菜单命令“Project”→“New Project ”创建“片内外清零置位”项目,并选择单片机型号为AT89C51。

执行菜单命令“File”→“New ”创建文件,输入源程序,保存为“片内外清零置位.A51”。

在“Project”栏的File项目管理窗口中右击文件组,选择“Add Files to Group ‘Source Group1’”将源程序“片内外清零置位.A51”添加到项目中。

执行菜单命令“Project”→Options for Target ‘Target 1’”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。

执行菜单命令“Project”→“Build Target 1”,编译源程序。

如果编译成功,则在“Outp ut Window”窗口中显示没有错误,并创建了,“片内外清零置位. HEX”文件。

执行菜单命令“Debug”→“Start/Stop Debug Seesion”,按键F11键,单步运行程序。

试验二 数据传送试验

试验二  数据传送试验

mov r0,#30h mov dptr,#1000h mov r7,#48 loop: mov a,@r0 movx @dptr,a inc r0 inc dptr djnz r7,loop ljmp$ end
移动片内RAM 移动片内 30H—>片外 片外RAM 片外 1000H,48字节长 , 字节长 度。
三、实验内容和步骤 1、启动计算机,打开伟福仿真软件,进入仿真环境。 、启动计算机,打开伟福仿真软件,进入仿真环境。 2、移动片内 片外RAM 1000H,48字 、移动片内RAM 30H—>片外 片外 , 字 节长度。设计程序进行编译,编译无误后, 节长度。设计程序进行编译,编译无误后,打开 数据窗口(DATA,XDATA),观察 数据窗口 , ,观察DATA窗口中地 窗口中地 开始的48个单元 址30H开始的 个单元,XDATA窗口中地址 开始的 个单元, 窗口中地址 1000H起始的 个单元;若各单元内数据对应相 起始的48个单元 起始的 个单元; 则用键盘输入改变其中一块的数据, 同,则用键盘输入改变其中一块的数据,全速运 行程序。点击暂停按钮,观察两个存储块的数据, 行程序。点击暂停按钮,观察两个存储块的数据, 可以看到两块数据已相同, 可以看到两块数据已相同,说明存储块内数据已 传送。 传送。
初始化 循环体 否 循环结 束? 结束
3、移动片外 、 移动片外RAM 1000H-->2000H,256字节 , 字节 长度。设计程序进行编译,编译无误后, 长度 。 设计程序进行编译 , 编译无误后 , 打 开数据窗口(XDATA), 观察地址 开数据窗口 , 观察地址1000H起始 起始 个字节存储块和2000H起始的 起始的256个字 的256个字节存储块和 个字节存储块和 起始的 个字 节存储块,若各单元内数据对应相同, 节存储块 , 若各单元内数据对应相同 , 则用 键盘输入改变其中一块的数据, 键盘输入改变其中一块的数据 , 全速运行程 点击暂停按钮,观察两个存储块的数据, 序 。 点击暂停按钮 , 观察两个存储块的数据 , 可以看到两块数据已相同, 可以看到两块数据已相同 , 说明存储块内数 据已传送。 据已传送。

单片机实验

单片机实验

实验一数据传送指令的使用及编程方法1.片内RAM的数据传送【实验程序】源程序单元内容ORG 0000HLJMP MAINORG 0030HMAIN:MOV R0,#40H R0MOV R1,#41H R1MOV A,R0 AMOV 30H,A 30HMOV 20H,30H 20HMOV A,#30H AMOV @R0,A 40HMOV A,30H AMOV R7, A R7MOV A,@R0 AMOV R7,A R7MOV DPTR,#0A702H DPTRMOV 30H,R7 30HMOV 20H,@R0 20HMOV 21H,#10H 21HMOV @R0,21H 10HMOV @R1,#01H 41HSJMP $END【实验要求】(1)理解源程序中每条数据传送指令的操作含义,将结果填入每个单元的相应“内容”中。

(2)单步运行源程序,逐条检查“内容”是否正确。

2.外部RAM的数据传送。

【实验程序】源程序单元内容ORG 0000HLJMP MAINORG 0030HMAIN:MOV DPTR,#1A33H DPTRMOV A,#80H AMOVX @DPTR,A 1A33HMOV A,#00H AMOV P2,#1AH P2MOV R0,#34H R0MOV R1,#35H R1MOVX @R0,A 1A34HMOVX A,@DPTR AMOVX @R1,A 1A35HMOVX A,@R0 AMOVX A,@R1 ASJMP $END【实验要求】(1)理解源程序指令含义,指出各存储单元的内容,写在右边的“内容”中。

(2)单步运行源程序,逐条验证分析结果。

3.片内特殊功能寄存器(SFR)的数据传送【实验程序】源程序ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP,#60H ;设栈指针MOV R0,#30H ;#30H送R0(0区)MOV P1,#0EFH ;#EFH送P1口(直接地址为90H)MOV @R0,P1 ;将P1内容送R0所指单元MOV C,P1. 1 ;将P1口的D1位内容送CMOV P1. 7,C ;将CY的内容送P1. 7PUSH PSW ;保护0区寄存器MOV PSW,#08H ;选择1区寄存器MOV R0,#40H ;#40H送1区寄存器R0(08H)MOV @R0,P1 ;P1口内容送1区R0所指单元POP PSW ;恢复0区寄存器SJMP $END【实验要求】(1)理解源程序指令含义,并参照注释写出结果。

[课程]单片机数据传送实验报告

[课程]单片机数据传送实验报告

实验三数据传送实验报告㈠实验目的1.进一步掌握程序的编辑、汇编及调试方法;2.掌握单片机内部RAM和外部RAM的数据操作;3.了解单片机系统地址分配概念。

㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台㈢实验内容及要求1.以数据表格形式在ROM中建立一个含有正数和负数的表格,数据长度为16个字节,要求放置八个正数、八个负数,正、负数应离散随机放置,不允许三个以上同类型数据连续放置,数据的具体内容自行确定;2.编制程序,将数据表格中的数据读出并按正、负数归类,正数送入首地址为40H的内部RAM中;负数送入首地址为0B000H的外部RAM中;3.将首地址为0B000H的外部RAM中的数据取出并求其绝对值,然后送入内部RAM的48H~4FH单元。

程序如下:ORG 0000HAJMP MAINORG 0060HMAIN:MOV A,#10H ;数据长度放入了累加器A中MOV R1,#0B0H ;负数所需送入的首地址高位放入R1MOV 20H,#00H ;负数所需送入的首地址低位放入20H单元中MOV R0,#40H ;正数所需送入的首地址40H放到R0中去MOV DPTR,#0A00H ;将表格开始的位置放入DPTR;以上为初始化的全部内容PUSH DPHPUSH DPLPUSH ASTART:POP APOP DPLPOP DPHPUSH A ;将A压栈,保护里面存储的数据长度10HMOV A,#00HMOVC A,@A+DPTR ;读表头地址MOV 20H,AINC DPTR ;DPTR指针加1,以读取表格中下一个数PUSH DPH ;为了保护DPTR中存储的表格地址,压栈以便于放入0B000H,存储负数PUSH DPLJUDGE:MOV A,20HRLC AJC NEGATIVE ;判断语句,标志位为1,转去N(负数);否则往下执行OPPOSITE:MOV A,20HMOV @R0,A ;正数放入到以40H为首地址的单元中去INC R0 ;进入下一个单元以存放下一个正数POP DPLPOP DPHPOP ADEC A ;数据长度减一,代表已经读取了一个数PUSH DPHPUSH DPLPUSH AJNZ START ;如果数据长度不为0,表格还未读取完毕,返回STARTSJMP END1 ;如果数据读取完毕,就跳去NEXT1NEGATIVE:MOV A,20HMOV DPH,R1MOV DPL,20HMOVX @DPTR,AINC DPTR ;0B000H加1,下一个负数存储单元MOV 20H,DPLMOV R1,DPHPOP DPLPOP DPHPOP ADEC APUSH DPHPUSH DPLPUSH AJNZ START ;和正数相同JMP NEXT1NEXT1: MOV A,#08H ;负数的数据长度放入A中MOV DPTR,#0B000H ;负数现在存储位置放入DPTRNEXT2: PUSH A ;将A压栈,保护其中负数的数据长度MOVX A,@DPTR ;读负数存储的首地址CPL A ;取反INC A ;加1MOV @R0,A ;将第一个绝对值入到48H单元(这里其实写的并不是很好,如果正数和负数的绝对值存储位置并不相连,就不可以用了)INC DPTR ;地址加1,下一个负数位置INC R0 ;进入下一个存储单元POP ADEC A ;数据长度减1JNZ NEXT2 ;负数还没读完,继续SJMP $ ;负数全部转成绝对值存储,程序结束ORG 0A00HTABLE:DB 0F0H,10H,80H,25HDB 0B2H,0A4H,30H,08HDB 0D6H,54H,01H,8FHDB 0C0H,27H,0CDH,09H运行结果:40H~47H中内容为10H,25H,30H,08H,54H,01H,27H,09H48H~4FH中内容为10H,80H,5EH,5CH,2AH,71H,50H,44H0B000H~0B007H中内容为0F0H,80H,0B2H,0A4H,0D6H,8FH,0C0H,0CDH硬件部分:A15~A12对应的选中芯片,因为B为1011,所以应该选中A14口连接到芯片CS,低电平有效,这样就成功选中芯片进行了扩展。

实验报告 数据块传送

实验报告 数据块传送

实验报告数据块传送实验报告:数据块传送引言:数据块传送是计算机科学中的一个重要概念,它指的是将大量数据以块的形式从一个地方传输到另一个地方。

在现代计算机系统中,数据块传送在各种应用中得到广泛应用,如文件传输、数据库操作、图像处理等。

本实验旨在通过实际操作和观察,深入了解数据块传送的原理和性能。

一、实验目的本实验的主要目的是研究数据块传送的原理和性能特点。

通过实验操作,我们将探索以下几个方面:1. 数据块传送的基本概念和原理;2. 数据块传送的实际应用场景;3. 数据块传送的性能评估指标。

二、实验方法1. 实验环境搭建在实验开始前,我们需要搭建一个合适的实验环境。

选择一台性能较好的计算机作为实验主机,安装操作系统和相关软件,确保实验环境的稳定性和可靠性。

2. 实验过程(1)数据块传送的基本操作首先,我们需要了解数据块传送的基本操作。

选择一个较大的文件作为实验对象,通过不同的方式进行传输,如使用命令行工具、编程语言或网络传输协议等。

记录传输过程中的时间、速度和传输成功率等数据,并进行分析。

(2)数据块传送的实际应用在实验过程中,我们还可以探索数据块传送的实际应用。

选择一个具体的应用场景,如文件备份、大规模数据处理等,通过实际操作和观察,了解数据块传送在不同应用中的优势和局限性。

(3)数据块传送的性能评估最后,我们需要对数据块传送的性能进行评估。

选择不同大小的数据块,分别进行传输,并记录传输时间和速度等数据。

通过对比分析,找出最佳的数据块大小,并评估传输过程中的性能瓶颈和改进方法。

三、实验结果与分析通过实验操作和观察,我们得到了以下结论:1. 数据块传送的基本操作相对简单,但在实际应用中需要考虑数据的完整性和安全性等因素。

2. 数据块传送在不同应用场景中具有不同的优势和局限性,需要根据具体需求进行选择和优化。

3. 数据块大小对传输性能有明显影响,过小的数据块会增加传输开销,过大的数据块会降低传输效率。

实验三数据传送子程序

实验三数据传送子程序

数据传送子程序一、实验目的1, 熟悉MCS51单片机的使用方法,掌握RAM中的数据操作,掌握机器语言程序的输入,运行和调试方法。

2.掌握89C51外部RAM的数据操作,了解这两部分RAM存储器的特点和应用。

二、实验仪器计算机一台,单片机实验箱一台,MCS51 仿真开发系统。

三、实验基本原理1,51单片机具有既丰富的数据传送指令,能够实现多种数据传送操作,给程序设计带来了极大方便。

2,外部RAM的数据传送把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。

该程序流程图如下四、实验内容、步骤内容:在R2、R3中输入源首址(例如0000H),R4、R5中输入目的地址(例如2000H),R6、R7中输入字节数(例如1FFFH),运行程序,检查0000-1FFFH中内容是否和2000-3FFFH中内容完全—致。

步骤:1·、在单片机仿真实验系统下输入源程序并存盘;2、对源程序进行编译、链接形成目标代码,同时排除源程序中的错误;3、利用单步、连续运行或运行到光标所在行等方式进行程序调试;4、检查程序运行结果、打开并观察寄存器窗口数据,并进行析。

1.程序原代码如下:ORG 07B0HSE22: MOV DPL,R3MOV DPH,R2 ;建立源程序首址MOVX A,@DPTR ;取数MOV DPL,R5MOV DPH,R4 ;目的地首址MOVX @DPTR,A ;传送CJNE R3,#0FFH,LO42INC R2LO42: INC R3 ;源地址加1CJNE R5,#0FFH,LO43INC R4LO43: INC R5 ;目地址加1CJNE R7,#00H,LO44CJNE R6,#00H,LO45 ;字节数减1SJMP $NOPLO44: DEC R7SJMP SE22LO45: DEC R7DEC R6SJMP SE22END五、实验结果及处理运行程序前地址0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 数据12H 23H 0FFH 0ACH 0DH 09H 99H 87H 67H 12H 80H运行程序后地址2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 200A 数据12H 23H 0FFH 0ACH 0DH 09H 99H 87H 67H 12H 80H六、实验结果、分析和结论本次实验要求用MCS51 仿真开发系统做正确的数据传送指令,并验证结果。

单片机数据区传送子程序数据排序实验

单片机数据区传送子程序数据排序实验

程序五:罔送目的眦i目地址册0123454567 8 9 111-111路D2D3D4D5需KCSA1Sr^~]I申瞬(R0)癥~AgX 阿)?〉¥—|长度减1=0?>〈标志位 》忖《单片机原理及应用》实验报告实验名称:数据区传送子程序 数据排序实验一、 实验目的:程序四:掌握 RAM 中的数据操作。

程序五:熟悉 MCS-51指令系统,掌握程序设计方法。

二、 实验内容:程序四:把 R2、R3源RAM 区首址内的 R6 R7字节数据传送到 R4、R5目的RAM 区。

程序五:编写并调试一个排序子程序,其功能为用冒泡法将内容 RAM 中几个单元字节无符号的正整数,按从小到大的次序重新排列。

三、 程序框图及电路连接图 程序四:四、源程序清单(注释部分请手写) 程序四:数据区传送子程序ORG 07B0H MOV R2,#00H MOV R3,#00H地址总线OEU E数据总线MOV R4,#10HMOV R5,#00HMOV R6,#00HMOV R7,#08HSE22: MOV DPL,R3MOV DPH,R2MOVX A,@DPTRMOV DPL,R5MOV DPH,R4MOVX@DPTR,ACJNE R3,#0FFH,LO42INC R2LO42:INC R3CJNE R5,#0FFH,LO43INC R4LO43:INC R5CJNE R7,#00H,LO44CJNE R6,#00H,LO45SJMP$NOPLO44:DEC R7SJMP SE22LO45:DEC R7DEC R6SJMP SE22END程序五:数据排序实验ORG 09B0H QUE: MOV R3,#50H QUE1: MOV A,R3MOV R0,AMOV R7,#0AH CLR 00HMOV A,@R0QL2: INC R0MOV R2,ACLR CMOV 22H,@R0 CJNE A,22H,QL3 SETB CQL3: MOV A,R2JC QL1SETB 00HXCH A,@R0 DEC R0XCH A,@R0INC R0QL1: MOV A,@R0五、地址◎l 2 13456T a9A E—D E r亠PC^07D&ADE AA 0000 AA d4AA AA AA AA AA AA AA AA AA AA M——PSW DQ DPTR IffiB 0010 AA AA AA AA 心kA心J L A AA AA AA AA AA JUL AA z5F□7RO FF AA.M.Aft AA Aft AA Aft AA AA AA AA AA AA AA AA Fl00B200□030AA AJ L AA AA AA 独AA AA AA AA AA AA AA AA AA AA R4-10 AA AA AA AA AA AA AA AA AA kA AA AA AA AA AA AA IR5□9化&00 MEO AA AA AA AA AA AA.AA AA AA AA JU AA AA AJ L AA00A700P0翱0000 00C&池3g FF 7F 04 伽凶FD8 D?00Pl FF P2 FF POTO 00FF QO FF QQ FF QO FF QC D2LI FP 06 EF 14 仃F3FF B□0 0080 00 FF00FF00FF 00FF FF00FF00FF00FF01FTON20TC0N1OG 0090 OD FF 00FF00FF 00FF FF00FF00FF00FF00TMQD QQ TIMEQ□000 60 AO do FF 00FF do FF00FF FF GO FP 00FP 00FF OD TIME10000IE00 DO QO FF00FF OO FF00FF FF00FF 00FF 00FF00IF3CO SCON□0 OOOT QO FF 00訂QO FF 00FF 1C C6 1277 10 67 41 TF SBUF OD T2CON tn OOK 00FF 00FF00FF 00FF ED OB F446 A.7 00BF 7F RCAP2mm TIMES0»Q谆.CFU内部有fit区匚地址0.1123 4 1 $ 1& 8g A B C D B Q1■A., 0QW 5A 00FD5010 OT 0000w FF00FF00 FF00FF1 0010FF 00 FF 00FF DO FF 0000FF 00肝FF 00FT0020 FE 00FE14 99 C2 69 Al F3 6C CE AF T6 74F5 25g刃13 EF FS 54 酉FP 9C es9R 14C-4 7S 16 12404F00<1069 42FF9S BE AS EB 9D D704 54 迪 A.7ED EGoo&o BE M DF EE EE EE EE EE EF FD FE EF FF FF FF FF0050 FF FF FB EE W縮銅49施69435S7545EFOOTO EB AC FE&F BA FC CC4F HZ 4B E5 15典44制FT00&)闻C4 13oc C7 1C 9? AF帥AD75S202 85 3E FA0050 K SB EF RE W AB 55 7F P5C572 AO 3A 8& 5700 AO 3D 36S4BE ES 94 9E 口51 DF 45 阳®59 70□OOBt) BB 50 37 CE US CF09 so EF6fi F?D7 EC PA 95 2C0QB 42 AH归C57B M Cl so肉IS 3& 78 4E雷OA FAD0K) 阳03 9E 机QD LEI 14 AI>Qd 429B 毋托B2吃羽PC0®1A£C FE PSW91DPTR QOQQ SF a?HO5AR100R2FDR350P4ID RS09H6□□R700PO3BR1FF P2FFP3FF B□□PCON20TOOM00T胡皿CD TIMED OODO TIME1□DOO IE40IF CO SCOM00SBUF QO TXON00 ftEAFZ□ODO TIME2(fiDDDJNZ R7,QL2 JB 00H,QUE1 SJMP $END程序运行结果程序4结果:J nt* — 1 _ •——•L-l_!■"@7數直存何国■II.口.X、地址01 2 | 3 4| 5 e T B g A B C E F -F「Q7D6A£C AA 1OT0 AA AA z AA AA Aft M.Aft Aft BD QA DE QD QB DO JU PSW 00DPT冋1DO0 101& OB DO ED OD OA po>ED o OB PB EB ED EG DB ED 屮賦RD FF 102& EKJ BE DB OE M BB00BF FF00FF 00FF 00FF oo —Fl00R2 oa 103&00FF 00FF 00FF 00FF FF 00FF 00FF 00FF 00R3 09H4 ia 1040 OO FF 00FF M FP 00FP FP00FP 00FF 00FF00R509R61Q5& OO FF 00-FF 00FF 00FF FF 00FF 00FF 00FF 00F7口。

MCS-51单片机实验4-3数据区传送

MCS-51单片机实验4-3数据区传送
LSOJMOPP $ END
如此反复,第一次将20H内容 送A至CC30H,R000FF,FEDHHR1R各0 加1,222变012HHH 成第R2二11次H,将312H331,012HHH内R7容减R送71,至变31100成HF0E,1HHH5, R200,H R1各0加FFH1,变30成H 0FFH 2将222H12H,H32内H容,R0F送7E变H至成3213H14H,, R第0,三0FR次E1H 各2加2H1,变0成FD2H3H,3323HH ,R7变 成…1..3….
第21FH6次,将0F20HFH内3容FH送至3FH,
R0,R1变成30,40, R7=0H,
执行判断后,结束。
实验三、数据区传送子程序
【思考题1】
修改程序,把片内RAM的20H起始的10连续单元的数 据传送到30H地址开始的空间。
答:修改判断次数,将MOV R7,#16修改为 MOV R7,#10即可
实验三、数据区传送子程序
【实验目的】
掌握循环指令的使用 掌握间接寻址的用途
【接线方式】
本实验无需连接仿真机,点击“取消”进入仿真软件 界面即可。
实验三、数据区传送子程序
【实验内容及要求】
编写程序,实现以下功能 将片内RAM的20H起始的16个连续单元的数据传 送到30H地址开始的空间。
【实验流程图】
【思考题2】
编写程序,绘制流程图,把片内RAM的20H起始的20 个连续单元的数据传送到2000H地址开始的外部数据空 间。
答:修改指令,R1赋初值00H,并将P2赋值20H,则片 外首地址为2000H 将MOV @R1,A 修改为 MOVX @R1,A 即可 也可用DPTR做地址指针,程序如下
ORG 0M0O00VHR0,#20H MOV DPTR,#2000H LOOP: MMOOVV R7,#20 A,@R0MOVX INC R@0DPTR ,A INC DPTR DJNZ R7, LOOP END

单片机 数据块传送 软件实验1

单片机 数据块传送 软件实验1

实验2:数据块传送程序:1.数据块传送程序 :ORG 0000HMAIN: MOV R0,#40HMOV R2,#10HMOV A,#0A0HA1: MOV @R0, AINC R0INC ADJNZ R2, A1注:此时R2=10h,通过djnz之后,r2=09h≠0,则跳转到A1段开始重复A1段中之前的语句。

R0从40h依次增加至4fh,R2则依次从10h 减少至01h,此时,在运行至djnz之后r0=00h,然后顺序执行语句。

从而完成了给40h~4fh赋值的目的。

MOV R0, #40HMOV DPTR, #9800HMOV R2, #10H注:此处重新给r0 ,dptr,r2.赋初值A2: MOV A, @R0MOVX @DPTR, AINC R0INC DPTRDJNZ R2, A2MOV R0, #50HMOV DPTR, #9800HMOV R2, #10HA2: MOV A, @R0 注:(40h)=a0hMOVX @DPTR, AINC R0INC DPTRDJNZ R2, A2注:此时r2=10h,经过djnz语句之后,r2=0fh≠0h,则语句跳转至A2处,依次执行之后,r2最后变为00h然后顺序执行。

此时,实现数据由片内传至片外的目的MOV R0, #50HMOV DPTR, #9800HMOV R2, #10HA3: MOVX A, @DPTRMOV @R0, AINC DPTRINC R0DJNZ R2, A3注:此时r2=10h,经过djnz语句之后,r2=0fh≠0h,则语句跳转至A3处,依次执行之后,r2最后变为00h然后顺序执行。

此时,实现数据由片内外回传至片内的目的2.多字节十进制加法:注:赋初值(30h)=23h,(20h)=41h,(31h)=27h,(21h)=25h,(32h)=13h,(22h)=50,(23h)=12h,(33h)=24h,(24h)=40h,(34h)=37h ORG 0000HMAIN: MOV R0, #30HMOV R1, #20HMOV 2FH,#04HCLR CDA1: MOV A,@R0ADDC A, @R1 注:此时a=23h,(20h)=41h,经过addc之后,a=64hDA A 进行2进制到十进制调整MOV @R1, AINC R0INC R1DJNZ 2FH, DA1 注:(2fh)=04h,经过djnz指令之后,(2fh)=03h≠0,则程序跳转至da1,直到(2fh)=0h后,顺序执行MOV 7FH, C 从而实现分别将(3ih)与(2ih)(其中i=0~4)的和经过da调整后,存放到2i中SJMP $END一、思考题1.若两个数据块都在外部数据存储器中,如何实现数据块的传送?答:选择R0和DPTR两个指针,用MOVX命令经过A累加器进行数据块传输。

单片机实验报告

单片机实验报告

单片机与嵌入式系统实验报告一、软件模拟调试实验:本部分实验内容主要为指令系统和汇编语言程序设计。

采用软件模拟调试的方法,目的在于通过这些实验使学生巩固所学知识,加深对MCS-51单片机内部结构、指令系统的理解,更进一步掌握汇编语言程序设计的方法和技巧。

实验一数据传送实验实验目的1、熟悉软件模拟调试环境。

2、掌握汇编语言程序设计的方法,加深对指令的理解。

3、学会软件模拟调试和察看、验证结果方法。

4、印证数据传送指令的功能、寻址方式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。

实验步骤1、进入调试软件环境,输入源程序;2、汇编源程序;3、用单步方式运行程序;4、检查并记录各寄存器和存储单元内容的变化。

实验内容:将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。

将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。

源程序清单:ORG 0000HRESET:AJMP MAINORG 003FHMAIN:MOV R0,#40HMOV R2,#10HMOV A,#0A0HA1:MOV @R0,AINC R0INC ADJNZ R2, A1MOV R1,#10HMOV R0, #50HMOV R2, #10HA3: MOV A, @R1MOV @R0, AINC R1INC R2DJNZ R2, A3SJMP $END实验结果与分析:1、按照实验内容补全程序。

2、对源程序进行编译并查看相应程序存储器的内容,将源程序对应的机器码记录入下表,掌握ORG伪指令及汇编的过程。

ORG的作用及相关注意事项:ORG表示之后的语句从哪里开始,有的单片机里面的固定区域是用来做堆栈或者是子程序跳转地址的入口。

PC表示:下一条要执行的指令PSW表示:程序状态字,其各位的含义为:cy进位标志位AC辅助进位标志位Ov溢出标志位p校验位SP表示:堆栈指针R0~R7的物理位置:0000H-0007H3、运行机器码,查看片内数据区、CPU内寄存器的变化情况,按要求将结果记录入下表。

单片机 数据块传送 软件实验1

单片机 数据块传送 软件实验1

单片机数据块传送软件实验1实验目的:实验原理:数据块传送是指将一段连续的数据从一个位置传送到另一个位置的操作。

在单片机中,可以通过中断、DMA、软件等方式实现数据块传送。

本实验中使用软件实现数据块传送。

数据块传送一般需要两个指针,一个指向源地址,一个指向目的地址。

每次传送一个数据,源地址指针和目的地址指针都要加上一个数据的长度,直到传送数据结束。

软件实现数据块传送的步骤如下:1. 定义源地址和目的地址2. 定义数据长度5. 重复步骤4,直到传送数据结束实验器材:STM32单片机开发板实验程序:```c#include "stm32f10x.h"#define SRC_ADDRESS ((uint32_t)0x08000000) // 源地址#define DST_ADDRESS ((uint32_t)0x20002000) // 目的地址#define BLOCK_SIZE 128 // 数据块长度void TransferData(uint32_t srcAddr, uint32_t dstAddr, uint32_t size){uint32_t *srcPtr = (uint32_t *)srcAddr;uint32_t *dstPtr = (uint32_t *)dstAddr;for (int i = 0; i < size; i++){*dstPtr++ = *srcPtr++;}}实验说明:本实验中,定义源地址为0x08000000,目的地址为0x20002000,数据块长度为128字节。

使用指针将源地址和目的地址分别指向所定义的地址,循环传送数据块,每次传送一个数据,源地址和目的地址指针都加上一个数据的长度,直到传送数据结束。

实验结果:将实验程序下载到STM32单片机开发板中,按下复位键,观察LCD屏幕,发现数据块传送成功。

2009112020336 殷建辉 数据块传送实验

2009112020336 殷建辉 数据块传送实验

实验名称:数据块传送实验学院:物电学院专业:电信班级:0903 姓名:殷建辉学号:2009112020336一:实验任务掌握各种数据块传送操作指令二:实验工具计算机、CCS软件三:实验内容1、开启计算机,然后运行CCS 软件。

2、新建一个项目:点击Project-New,将项目命名为pro_kuai,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS 软件不能识别以中文命名的文件夹。

3、新建一个源文件:点击File-New-Source File 可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面(pro_kuai),保存类型选择*.ASM(如果源文件是C 语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM为保存类型),我们在这里将保存名字命名为kuai.asm 。

4、在项目中添加源文件:在新建立了一个源文件以后,要想使用CCS 编译器对该源文件进行编译还需要将源文件添加到项目中去。

添加方法是在工程管理器中右键单击pro_kuai.pjt,在弹出的菜单中选择Add Files,然后将刚才建立的kuai.asm 文件添加到该项目中去。

5、编写源程序:在工程管理器中双击kuai.asm ,将出现文本编辑窗口,在该文本编辑窗口中输入如下内容:.title "kuai.asm".mmregsSTACK .usect "STACK",30H.bss x,20.bss y,20.datatable: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20.def _c_int00.text_c_int00: STM #x,AR1RPT #19MVPD table,*AR1+ ;程序存储器传送到数据存储器STM #x,AR2STM #y,AR3RPT #19MVDD *AR2+,*AR3+ ;数据存储器传送到数据存储器end: B end.end6、编写链接配置文件:只有汇编源程序是不够的,一个完整的DSP 程序至少包含三个部分:主程序、中断向量表、链接配置文件(*.cmd)。

实验报告_数据块传送

实验报告_数据块传送

一、实验目的1. 理解数据块传送的概念和原理。

2. 掌握数据块传送的方法和步骤。

3. 分析数据块传送过程中的问题及解决方案。

二、实验原理数据块传送是指将一组数据以块为单位进行传输,而不是单个数据。

数据块传送可以提高传输效率,减少传输过程中的延迟。

本实验主要采用串口通信来实现数据块传送。

三、实验设备与工具1. 电脑一台2. 串口通信设备(如串口模块、USB转串口线等)3. 串口通信软件(如PuTTY、串口调试助手等)四、实验步骤1. 连接设备将串口通信设备与电脑连接,确保通信正常。

2. 设置串口参数在串口通信软件中设置串口参数,包括波特率、数据位、停止位、校验位等。

根据实际设备要求设置相应的参数。

3. 编写数据块发送程序使用编程语言编写数据块发送程序。

以下以C语言为例:```c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>#include <termios.h>int main() {int fd = open("/dev/ttyUSB0", O_RDWR); // 打开串口设备if (fd < 0) {perror("Open serial port error");return -1;}struct termios tty;memset(&tty, 0, sizeof(tty));if (tcgetattr(fd, &tty) != 0) {perror("SetupSerial 1");return -1;}tty.c_cflag &= ~PARENB; // Clear parity bit, disabling parity (most common)tty.c_cflag &= ~CSTOPB; // Clear stop field, only one stop bit used in communication (most common)tty.c_cflag &= ~CSIZE; // Clear all the size bits, then use one of the statements belowtty.c_cflag |= CS8; // 8 bits per byte (most common)tty.c_cflag &= ~CRTSCTS; // Disable RTS/CTS hardware flow control (most common)tty.c_cflag |= CREAD | CLOCAL; // Turn on READ & ignore ctrl lines (CLOCAL = 1)tty.c_lflag &= ~ICANON; // Disable canonical modetty.c_lflag &= ~ECHO; // Disable echotty.c_lflag &= ~ECHOE; // Disable erasuretty.c_lflag &= ~ECHONL; // Disable new-line echotty.c_lflag &= ~ISIG; // Disable interpretation of INTR, QUIT and SUSPtty.c_iflag &= ~(IXON | IXOFF | IXANY); // Turn off s/w flow ctrltty.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL); // Disable any special handling of received bytestty.c_oflag &= ~OPOST; // Prevent special interpretation of output bytes (e.g. newline chars)tty.c_oflag &= ~ONLCR; // Prevent conversion of newline to carriage return/line feedtty.c_cc[VTIME] = 10; // Wait for up to 1s (10 deciseconds), returning as soon as any data is received.tty.c_cc[VMIN] = 0;if (tcsetattr(fd, TCSANOW, &tty) != 0) {perror("SetupSerial 3");return -1;}char buffer[1024];int len;while (1) {len = read(0, buffer, sizeof(buffer)); // Read input from stdinif (len > 0) {write(fd, buffer, len); // Write to serial port }}close(fd);return 0;}```4. 编写数据块接收程序使用编程语言编写数据块接收程序。

数据块传送实验报告

数据块传送实验报告

数据块传送实验报告数据块传送实验报告一、引言数据块传送是一种常见的数据传输方式,通过将数据分成一组组数据块进行传输,能够提高传输效率和数据完整性。

本实验旨在探究数据块传送的原理、应用及其在实际场景中的性能表现。

二、实验目的1. 了解数据块传送的原理和工作机制;2. 掌握数据块传送的应用方法;3. 分析数据块传送在不同场景下的性能表现。

三、实验过程1. 实验环境的搭建在实验开始前,我们搭建了一套实验环境,包括发送端和接收端。

发送端负责将数据分块并发送,接收端负责接收并组装数据块。

2. 数据块传送的原理数据块传送是将较大的数据划分为多个数据块进行传输,每个数据块都包含一部分数据以及校验和等信息。

发送端将数据块按照一定的顺序发送给接收端,接收端根据数据块的序号和校验和进行数据重组和校验。

3. 数据块传送的应用数据块传送广泛应用于文件传输、网络通信等领域。

在文件传输中,将文件划分为多个数据块进行传输可以提高传输速度,同时也能够在传输过程中进行校验,确保数据的完整性。

4. 实验结果分析通过对数据块传送在不同场景下的性能表现进行实验,我们得到了以下结果:- 在网络传输中,数据块传送能够有效减少传输的延迟,提高传输速度;- 在文件传输中,数据块传送能够提高文件传输的稳定性和可靠性,减少传输错误;- 在大数据传输中,数据块传送能够将数据划分为多个块进行传输,减少传输失败的风险。

四、实验总结数据块传送作为一种常见的数据传输方式,具有较高的传输效率和数据完整性。

通过本次实验,我们深入了解了数据块传送的原理和应用,并通过实验结果分析了其在不同场景下的性能表现。

数据块传送在网络通信、文件传输等领域中具有广泛的应用前景,对于提高数据传输的速度和可靠性都具有重要意义。

五、改进方向尽管数据块传送在实验中表现出了较好的性能,但仍可以进一步改进。

例如,可以通过引入差错检测和纠错机制来提高数据块传输的可靠性;同时,可以优化数据块的大小和传输顺序,以进一步提高传输效率。

数据块传送实验报告

数据块传送实验报告

一、实验目的1. 理解数据块传送的基本原理和操作方法。

2. 掌握数据块传送指令的运用。

3. 熟悉汇编语言编程环境,提高编程能力。

二、实验原理数据块传送是指将一段内存区域中的数据复制到另一段内存区域的过程。

在计算机系统中,数据块传送广泛应用于各种场景,如文件复制、数据备份等。

数据块传送指令是汇编语言中的一种基本指令,可以实现对内存中数据的快速传送。

数据块传送指令主要有以下几种:1. MOVS(Move String):将源字符串中的数据复制到目的字符串中。

2. CMPS(Compare String):比较源字符串和目的字符串,判断它们是否相等。

3. SCAS(Scan String):将源字符串中的数据与AL寄存器中的值进行比较。

三、实验设备1. 实验平台:PC微机一台2. 实验软件:汇编语言编程环境(如MASM、TASM等)3. 实验数据:一段待传送的数据块四、实验内容1. 数据块初始化2. 数据块传送3. 数据块传送结果分析五、实验步骤1. 数据块初始化(1)在数据段中定义两个数据块,分别命名为source和destination。

source DB 'Hello, World!', 0destination DB 12 DUP(0)(2)设置数据段寄存器DS指向数据段。

MOV AX, @DATAMOV DS, AX2. 数据块传送(1)设置源数据块偏移地址SI指向source数据块的起始地址。

MOV SI, OFFSET source(2)设置目的数据块偏移地址DI指向destination数据块的起始地址。

MOV DI, OFFSET destination(3)设置CX寄存器为数据块长度,即source数据块的长度。

MOV CX, 12(4)使用MOVS指令将source数据块中的数据复制到destination数据块中。

MOVS destination, source(5)数据块传送完成后,判断CX寄存器的值,如果为0,则传送完成。

实验3 数据块传送实验程序设计实验

实验3  数据块传送实验程序设计实验

实验3 数据块传送实验程序设计实验一、实验目的㈠学习和掌握DSP汇编语言程序的基本结构。

㈡熟悉和掌握常用的数据传送类指令。

熟练掌握数据块传送的方法。

二、实验原理数据传送的常用指令数据存储器←→数据存储器: MVDK Smem,dmadMVKD dmad,SmemMVDD Xmem,Ymem数据存储器←→MMR: MVDM dmad,MMRMVMD MMR,dmadMVMM mmr,mmr程序存储器←→数据存储器 MVPD Pmad,SmemMVDP Smem,PmadREADA SmemWRITA SmemSmem——数据存储器的地址;Pmad——16位立即数程序存储器地址;MMR——任何一个存储映象寄存器;Xmem,Ymem——双操作数数据存储器地址;dmad——16位立即数数据存储器地址;数据传送指令是最常用的一类指令,与RPT指令相结合,可以实现数据块传送。

例如,在系统初始化过程中,可以将数据表格与文本一道驻留在程序存储器中,复位后通过程序存储器到数据存储器的数据块传送将数据表格传送到数据存储器,从而不需要配制数据ROM,使系统的成本降低。

另外,在数字信号处理(如FFT)时,经常需要将数据存储器中的一批数据传送到数据存储器的另一个地址空间等等。

三、实验内容阅读实验程序example,上机运行程序后,查看:㈠检查程序存储器(PM)E000H~E01DH空间中的内容,检查程序存储器(PM)FF80H~FF83H空间中的内容。

㈡数据存储器(DM)60H~69H(.bss)空间中的内容是什么?㈢数据存储器(DM)80H~90H(STACK)空间中的内容是什么?㈣确定a[4]、x[4]、y在数据存储器中的位置。

检查这些位置中的数据否是所设置的初始化数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二数传指令和算数运算指令编程设计
一、实验目的
1.掌握数据块的传送操作和算术运算指令的应用。

2.进一步掌握汇编语言设计和调试方法。

3.掌握观察窗口的使用方法。

4.学会给存储单元赋初值的方法。

二、实验内容
1.数据区传送
(1)把内部RAM 40H~4FH置初值0A0H~0AFH;
(2)而后把40H~4FH内容传送到外部RAM 9800H~980FH中;
(3)再把 9800H~980FH内容传送到 50H~5FH中。

2.多字节十进制加法
加数放在30H开始的单元中(最低位放在30H,按从小到大的顺序存放),被加数和结果存放在20H 开始的单元(最低位在20H中),字节数放在2FH中,最高进位位放在位地址7FH单元中。

三、实验步骤
1.分别用单步和连续运行方式,调试上述两个程序;
2.在执行第二个程序之前,给被加数和加数单元赋初值;
3.在观察窗口中观察结果。

四、实验程序清单
1.数据块传送程序:
命令行命令结果备注
MAIN MOV R0,
#40H
MOV R2,
#10H
MOV A,
#0A0H
MOV @R0, A A1
INC R0
INC A
DJNZ R2,
A1
循环判定命令,重复执行A1共R2次,,DPTR指针递增,PC指针循

0x0006---0x0
009
MOV R0, #40H
MOV DPTR, #9800H
MOV R2,
#10H
MOV A, @R0 A2
MOVX @DPTR,
A
INC R0 INC DPTR
循环判定命
令,重复执行
A2共R2次,
DPTR指针递
增, PC指针循

0x0012---0x0
016 DJNZ R2, A2
MOV R0,
#50H
MOV DPTR, #9800H
MOV R2, #10H
A3 MOVX A, @DPTR
MOV @R0, A INC DPTR
INC R0
DJNZ R2, A3
循环判定命令,重复执行A3共R2次,DPTR指针递增, PC指针循

0x001F---0x0
023
2.多字节十进制加法:
初始赋值:
20H 21H 22H 23H 24H 41 25 50 24 37 30H 31H 32H 33H 34H 23 27 13 12 40
命令行命令结果
MAIN MOV R0, #30H
MOV R1, #20H
MOV
2FH,#04H
CLR C
DA1
MOV A,@R0
ADDC
A, @R1
DA A 没有进位,因此调整命令没有引起变化
MOV
@R1, A
INC R0 INC R1
DJNZ
循环判定命令,PC指针循环0x0008---0x0011 2FH, DA1
MOV 7FH,
C
五、思考题
1若两个数据块都在外部数据存储器中,如何实现数据块的传送?
答:选择R0和DPTR两个指针,用MOVX命令经过A累加器进行数据块传输。

2在调试第一个程序时,若不用程序给40H~4FH赋初值,而用键盘在CPU DATA区给40H~4FH单元预赋初值,如何做?
答:在存储器窗口d:0x00处键入d:0x40然后键入所需要的初值。

3若把第二个程序改为无符号数的减法,怎样修改程序?
答:将ADDC命令改为SUBB命令,去掉DA命令行
4在第二个程序中,若两数的和存放到从40H开始的单元,如何修改程序?
答:ORG 0000H
MAIN: MOV R0,#30H
MOV R1,#20H
MOV R3,#40H
MOV 2FH,#04H
CLR C
DA1: MOV A,@R0
ADDC A,@R1
DA A
MOV @R3,A
INC R0
INC R1
INC R3
DJNZ 2FH,DA1 MOV 7FH,C
SJMP $
END
程序修改处如绿字v。

相关文档
最新文档