实验一 数据传送类指令的使用 (1)

合集下载

数据传送类指令

数据传送类指令

05
06
不允许直接向段寄存器传送立即数。
该指令不影响标志位。
06
数据传送类指令
例3-12
指出下列指令中的错误 (1)MOV [DI], [SI] (2)MOV DS, 1000H (3)MOV 2000H, AX
(1)两个操作数不能同时为存 储器操作数。
(2)不能直接向段寄存器传送 立即数,正确的指令应为:
(1)在CPU内部寄存器之间 进行数据传送。
例如,MOV BL, AL MOV BX, AX MOV DS, AX
(2)在CPU内部寄存器与存 储器之间进行数据传送。
例如,MOV AX, [1000H] MOV BX, [SI][BX] MOV DATA[BP], ES
(3)将立即数传送给寄存器。 例如,MOV AX, 1234H MOV SI, 1000H
例3-14
数据传送类指令
已知:(BX)=1122H,(DS)=3000H,(31000H)=1234H。执行指令: XCHG BX, [1000H] 源操作数的物理地址为:(DS)×16+1000H=31000H。 指令执行的结果为:(BX)=1234H,(31000H)=1122H。
要实现两个存储单元X与Y之间的数据交换, 可以执行如下指令:
数据传送类指令
例3-15 已知:(DS)=3000H,(32000H)=12H,(32001H)
=34H,(32002H)=56H,(32003H)=78H。执行指令: LDS SI, [2000H]
地址传送指令
1.5 输入输出指令
数据传送类指令
输入输出指令用于在I/O端口与CPU之间传送数据。
MOV AX, 1000H MOV DS, AX (3)立即数不能作为目的操 作数。

单片机数据传送指令c语言

单片机数据传送指令c语言

单片机数据传送指令c语言单片机是一种集成电路,也称为微控制器。

它内部集成了处理器、存储器和各种外围设备接口,并且可以通过程序来控制其工作。

在单片机编程过程中,数据传送指令是常用的指令之一。

数据传送指令用于在单片机中传输数据,可以实现寄存器之间的数据传递、数据移动和数据保存等功能。

下面我将详细介绍单片机数据传送指令的使用方法。

首先,我们需要了解数据传送指令的基本格式。

数据传送指令通常以下面的形式出现:MOV destination, source。

其中,destination表示目标操作数,source表示源操作数。

要执行一条数据传送指令,首先需要确定传输数据的源和目标,然后根据具体需求选择合适的寻址方式来指定源和目标的地址。

下面我将介绍几种常用的寻址方式。

第一种寻址方式是立即寻址(Immediate Addressing)。

在立即寻址中,source指定了一个立即数,表示需要传送的数据。

立即数是在指令中给出的常数值,可以直接传送到目标寄存器或内存地址中。

例如,MOV A, #15表示将立即数15传送到A寄存器中。

第二种寻址方式是直接寻址(Direct Addressing)。

直接寻址中,source 指定了一个源寄存器或内存地址,将该寄存器或内存地址中的内容传送到目标寄存器或内存地址中。

例如,MOV A, B表示将B寄存器中的内容传送到A寄存器中。

第三种寻址方式是寄存器间接寻址(Register Indirect Addressing)。

在寄存器间接寻址中,source指定了一个寄存器的地址,将该寄存器中的内容传送到目标寄存器或内存地址中。

例如,MOVX @DPTR, A表示将A 寄存器中的内容传送到DPTR寄存器指向的内存地址中。

第四种寻址方式是间接偏移寻址(Indirect Offset Addressing)。

在间接偏移寻址中,source指定了一个源寄存器和一个偏移量,将源寄存器地址加上偏移量得到的地址中的内容传送到目标寄存器或内存地址中。

单片机实验

单片机实验

实验一数据传送指令的使用及编程方法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)理解源程序指令含义,并参照注释写出结果。

[信息与通信]MCS-51单片机指令系统-数据传送类指令

[信息与通信]MCS-51单片机指令系统-数据传送类指令

<P1>=0CAH,分析以下程序执行后各单元及寄存
器、P2口的内容.
• MOV R0,#30H
;R0=30H
• MOV A,R0
;A=40H
• MOV R1,A
;R1=40H
• MOV B,R1
;B=10H
• MOV R1,P1
;<40H>
• MOV P2,P1
=0CAH
• MOV

•执行上述指10令H后,#的20结H果为:<R0>=3<0PH2,<>R=10>C=A<HA>=40H,
3.3 MCS-51指令系统
3.3.1 数据传送类指令〔29条〕 传送类指令分成两大类
1. MOV,一般传送 2.Байду номын сангаас非MOV,特殊传送, 如:MOVC、MOVX、PUSH、
POP、 对PSW的X影C响H、XCHD及SWAP.
• 1. 访问片内数据存储器的一般数据传送指令
• 该类指令的功能是实现数在片内RAM单元之间、 寄存器之间、寄存器与RAM单元之间的传送.所 有指令具有统一的格式,其格式如下:
MOV Rn,
A direct
#data
例:若〔60H〕= 30H 执行 MOV R6,60H
结果:〔R6〕= 30H.
3> 以direct 为目的操作数的指令
MOV direct,
A Rn direct1 Ri
#data
例:若〔R0〕=30H,〔30H〕=25H 执行MOV 40H,R0 指令
结果:〔40H〕=25H.
RAM20H单元 • 外部ROM 2000H单元中的内容送到外部

实验一.数据传送实验

实验一.数据传送实验

实验一数据传送实验一、实验目的1、熟悉keilc的使用方法,掌握项目的创建、程序的输入,运行和调试方法。

2、掌握8031内部RAM和外部RAM的数据传送操作,了解这两部分RAM 存贮器的特点和应用。

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

1、内部RAM数据传送8031内部RAM低128字节(00H~7FH)包含四个工作寄存器区(00H~1FH)、位地址空间(20H~2FH)、堆栈区,可用的传送指令多达16条。

因此,数据在内部128字节里传送就显得灵活方便。

内部RAM0~31个单元可作通用工作寄存器RO~R7,被划分为四个寄存器块,由程序状态字PSW中的RSI、RSO选择,其对应关系是:RSI RSO0 0 选0区,OOH~O7H被看是RO~R70 1 选1区,08H~0FH被看是RO~R71 0 选2区,00H~17H被看是RO~R71 1 选3区,18H~1FH被看是RO~R7MCS—51单片机上电复位后自动选0区,此后可通过修改PSW中的RSW中的RSI和RSO来选择其它寄存器区。

数据在内部RAM低128字节内传送指令共16条,它们是:MOV A,RnMOV A,directMOV A,@RiMOV A,”dataMOV Rn,AMOV Rn,directMOV Rn,dataMOV direct, AMOV direct,RnMOV direct1,direct2MOV direct,@RiMOV direct,#dataMOV Ri,AMOV Ri,directMOV Ri,#data2、外部RAM的数据传输MCS-51单片机采用当前工作寄存器的R0和R1作间接寻址寄存器。

可寻址256个单元,8位的地址和数据均由P0口分时输入/输出。

采用16位数据指针DPTR间址,最多可寻址片外64K字节的RAM或I/O,低8位地址(DPL)由P0口进行分时使用,P2口输出高8位地址,当P2口输出高8位地址时,P2口专用寄存器保存其原内容不变。

单片机及其接口技术实验报告

单片机及其接口技术实验报告

单片机及接口技术实验报告实验一数据传送程序一、实验目的1、掌握汇编语言设计和调试方法。

2、掌握DVCC实验系统的操作步骤。

二、实验内容1、编程实现,把7000H~70FFH单元的内容清零。

2、编程实现,把源地址为6000H开始的单元内容,传送到目的地址7000H开始的单元中,传送个数为0FFFH个。

三、DVCC实验系统操作说明1、接通DVCC实验系统电源,在DVCC实验箱上应显示闪动的“P”,否则按Reset键。

2、运行DVCC软件。

(程序DVCC598H实验系统DVCC实验系统)3、单击工具栏上“新建”或“打开”按钮,编写源程序。

单击“编译”按钮,使其形成可执行文件。

4、单击工具栏上“联接”按钮,同时按下DVCC实验箱上PCDBG键(键盘上最右边第2个),实现PC机和实验箱的联接。

联机成功,屏幕上出现:.反汇编窗口、寄存器标示位窗口。

5、在成功联机后,单击工具栏上“调试”按钮,把最终目标文件装载到实验系统RAM区;或者通过单击菜单栏中的“动态调试”,选择“传送(.EXE)文件”来实现。

6、单击工具栏上“运行”或“单步”按钮,运行实验程序。

7、单击工具栏上“窗口”,选择“显示内部数据窗口”或“显示外部数据窗口”可显示数据窗口。

鼠标右击数据窗口的数据,可设置数据块新地址;鼠标左键单击数据,可修改数据数值。

8、运行完毕,先按实验箱上的复位按钮Reset键,再按PCDBG键,并且点击屏幕上OK,即可退出运行状态。

四、实验程序代码1、把7000H~70FFH单元的内容清零。

程序代码:ORG 0000HAJMP STARTORG 70HSTART: MOV P2, #70H ;送地址高8位到P2端口MOV R0, #00H ;R0=00H,表地址低8位CLR A ;将累加器A清0LOOP: MOVX @R0, A ;将A送入以R0内容为地址的外部RAM.INC R0 ;R0+1-->R0CJNE R0,#00H,LOOP;比较条件转移指令,若R0不等于0,则跳转到LOOPAJMP $ ;暂停END2、编程实现,将源地址为6000H开始的单元,传送到目的地址7000H开始的单元,传送个数为0FFFH个。

数据传送指令


3.访问外部RAM的指令
MOVX A, @Ri ;A←外部RAM(读) MOVX @Ri,A ; 外部RAM←A(写)
256个单元的范围,即:0000H—00FFH
MOVX A, @DPTR;A←外部RAM(读) MOVX @DPTR,A ; 外部RAM←A(写)
64KB范围,即:0000H—FFFFH 也作为外部扩展I/O口的操作!
XCH A,Rn
;A
XCH A,DIR ; A
XCH A,@Ri ; A
Rn (DIR) (Ri)
2.半字节交换指令 XCHD XCHD A,@Ri ;A0-3
(Ri)0-3
请看下一节:算术运算指令
4.3.3 堆栈操作指令
1. 进栈 PUSH PUSH DIR
如:PUSH ACC
; ①SP←SP+1 ; ②(SP)←(DIR) ;
2.出栈 POP
POP DIR
; ①(DIR)←(SP),
; ②SP←SP-1
如:POP ACC ;
主要用于保护现场(子程序中)
4.3.4 数据交换指令
1. 字节交换指令 XCH
2. 直接寻址:
MOV A , DIR
;A←(DIR)
MOV DIR, A
;(DIR)←A
MOV Rn, DIR
;Rn←(DIR)
MOV @Ri, DIR
;(Ri)←(DIR)
MOV dir2,DIR1 ;(dir2)←(DIR1)
n: 0,1,2,3,4,5,6,7
i: 0,1
Hale Waihona Puke 3. 间接寻址 MOV A , @Ri MOV @Ri, A MOV dir, @Ri

实验一 数据传送指令

实验一数据传送指令(一)实验的目的要求和注意事项MCS-51单片机具有极丰富的数据传送指令,能够实现多种数据的传送。

本实验的目的是着重练习这些指令的使用和编程方法,并通过本实验熟悉仿真软件的使用方法。

(二)实验主要内容1、熟悉仿真软件的操作方法,理解数据传送指令的使用。

实验参考程序如下:地址机器码源程序单元内容ORG 0000HMOV SP,#60H ; SPMOV A,#12H ; AMOV R0,#50H ; R0MOV 30H,#03H ; 30HMOV DPTR,#2200H ; DPTRMOVX @DPTR,A ; 2200HMOV @R0,A ; 50HXCH A,30H ; A、30HPUSH DPH ; 61H、SPPUSH DPL ; 62H、SPMOV DPTR,#2400H ; DPTRMOVX A,@ DPTR ; APOP DPL ; SPPOP DPH ; SP、DPTRMOV 30H,A ; 30HXCHD A,@R0 ; A、50HMOVX A,@DPTR ; AXCH A,@R0 ; A、50H(三)实验准备1、了解仿真软件的界面。

2、复习传送指令。

(四)实验步骤1、新建文件,输入参考程序并以.ASM为扩展名存盘。

2、理解源程序,将你判断的结果填入“内容”中。

3、单步运行源程序,验证你的分析结果是否正确。

(五)思考题结合自己的体会,说明单步运行在程序过程中的作用(六)实验报告整理好执行正确程序和数据,回答思考题。

5、80C51数据传送指令 101101

16位常数装入数据指针DPTR,即数据高8位送入DPH 寄存器,数据低8位送入DPL寄存器。
例:执行指令 MOV DPTR,#1234H 执行结果∶(DPH)=12H,(DPL)=34H
心不可不虚,虚则义理来居;
(3) 内部RAM单元之间的数据传送指令
MOV direct,Rn
;(direct)←(Rn)
心不可不虚,虚则义理来居;
例3:求平方数(远程查表法) MOV DPTR, #TABLE MOVC A,@A+DPTR MOV 20H,A
HERE:SJMP HERE
;指向表首址 ;查表得到平方数 ;存平方数
TABLE∶DB 00H,01H,04H,09H DB 16H,25H,36H DB 49H,64H,81H
M OV A, Rn ; (A) ←(Rn)
MOV A, direct ; (A)←(direct)
MOV A, @Ri M OV Rn, A MOV direct, A MOV @Ri, A
; (A)←((Ri)) ; (Rn) ← (A) ; (direct) ←(A) ; ((Ri)) ← (A)
POP SP ;(SP)-1=2FH→SP ((SP))=(30H)=20H→SP
第三条指令为特殊情况,先执行(SP)-1=2FH,后 装入由栈顶退出的值,所以执行后(SP)=20H。
心不可不虚,虚则义理来居;
例5:检查传送结果 已知内部RAM (10H)=00H, (30H)=40H,(40H)=10H, P1口为11001010B,分析指令执行后各单元内容。
MOV R0,#30H MOV A,@R0 MOV R1,A MOV B,@R1
MOV @R1,P1 MOV P2,P1 MOV 10H,#20H 执行结果: (10H)=20H, (30H)=40H, (40H)=CAH, P1=P2=CAH, A=40H, B=10H, R0=30H, R1=40H

单片机实验报告

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

采用软件模拟调试的方法,目的在于通过这些实验使学生巩固所学知识,加深对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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验题目
实验一数据传送类指令的使用
实验类型
验证型
实验目的
1.学习如何建立keil工程;
2.掌握数据传送指令的使用方法;
3.正确区分片内RAM、片外RAM及ROM不同存储单元的数据传送指令的使用。
实验仪器
1 TKSCM-1型单片机开发综合实验装置;
2 PC机;
3 keil软件。
实验原理及内容
1、keil工程的建立
2在RAM30H单元给定一个数值,正确运行后REG窗口中观察累加器的内容,在PDATA窗口观察片外RAM30H单元的内容。
3在RAM30H单元中给定一个数值,在DATA窗口观察40H单元的内容。
4在实验成功的基础上,可对实验源程序中的指令作尝试性修改,观察修改后的程序运行结果,总结体会。
实验报告要求
SJMP $
3外部RAM2000H单元中的数据传送到外部RAM2030H单元中。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:MOV DPTR,#2000H
MOVX A,@DPTR
MOV DPTR,#2030H
MOVX @DPTR,A
SJMP $
实验方法及步骤
1按照题目要求输入源程序,在编译程序过程中,对输入程序中出现的错误进行修改,直到程序输入完全正确。
MOV A,30H
MOVX @R0,A
SJMP $
在输出窗口查看:D:30H X:30H的存储结果。
2外部RAM2000H单元内的数据传送到内部RAM30H单元中。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:MOV DPTR,#2000H
MOVX A,@DPTR
MOV 30H,A
建立新工程→选择芯片→编写程序(*.ASM)→工程加入程序文件→保存、编译→调试
输入一个完整的练习程序,从建立文件、编译文件、观察和修改进行练习。
源程序:ORG 0000H
MOV A,#0
MOV P1,#0
LOOP:INC P1
CALL DELAY
SJMP LOOP
DELAY:MOV R2,#03H
MOV R1,#20H
MOV R0,#50H
DLP:DJNZ R0,DLP
DJNZ R1,DLP
DJNZ R2,DLP
RET
END
2、数据传送类指令
1内部RAM30H单元的数据传送到外部RAM30H单元中。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:MOV R0,#30H
MOV 30H,#0EFH
1对源程序进行文字注释;
2写出观察数据具体的目
单片机原理与实践指导
学时
3
相关文档
最新文档