微机实验报告--KEIL的使用与汇编语言上机操作
实验一 汇编语言的应用及Keil C编译环境

实验一汇编语言的应用及Keil C编译环境一、实验目的熟悉51指令系统,掌握程序设计方法。
二、实验内容1、通过执行程序中的相关指令,将有关数据写入工作寄存器区、位寻址区、数据缓冲区和特殊功能寄存器区各存储单元2、编写并调试一个排序子程序,其功能为用冒泡法将内存RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。
三、实验步骤及参考程序:1、编写程序,将有关数据写入工作寄存器区、位寻址区、数据缓冲区和特殊功能寄存器区各存储单元,并参考预备知识中有关内容对程序的执行结果进行检查。
参考程序A:工作寄存器区的数据传送地址机器码源程序注释检查数据ORG 0000H ;表示程序从地址0000H存放0000H 78 11 MOV R0,#11H ;将立即数11H送到寄存器R0中( H)=11H 0002H 79 22 MOV R1,#22H ;将立即数22H送到寄存器R1中( H)=22H 0004H 7A 33 MOV R2,#33H ;将立即数33H送到寄存器R2中( H)=33H 0006H 7B 44 MOV R3,#44H ;将立即数44H送到寄存器R3中( H)=44H0008H75 D010MOV PSW,#10H ;使工作寄存器工作于2区( H)=10H000BH 78 55 MOV R0,#55H ;将立即数55H送到寄存器R0中( H)=55H 000DH 79 66 MOV R1,#66H ;将立即数66H送到寄存器R1中( H)=66H 000FH 7A 77 MOV R2,#77H ;将立即数77H送到寄存器R2中( H)=77H 0011H 7B 88 MOV R3,#88H ;将立即数88H送到寄存器R3中( H)=88HEND ;程序结束参考程序B:位寻址区的数据传送地址机器码源程序注释检查数据ORG 0100H ;表示程序从地址0100H存放0100H 75 20F0 MOV 20H,#0F0H ;将字节地址20H单元中的内容置F0H(20H)=0103H D2 00 SETB 00H ;将位地址00H单元中的内容置1 ( H)=1 0105H D2 01 SETB 01H ;将位地址01H单元中的内容置1 ( H)=1 0107H D2 02 SETB 02H ;将位地址02H单元中的内容置1 ( H)=1 0109H D2 03 SETB 03H ;将位地址03H单元中的内容置1 ( H)=1 010BH C2 04 CLR 04H ;将位地址04H单元中的内容置0 ( H)=0 010DH C2 05 CLR 05H ;将位地址05H单元中的内容置0 ( H)=0 010FH C2 06 CLR 06H ;将位地址06H单元中的内容置0 ( H)=0 0111H C2 07 CLR 07H ;将位地址07H单元中的内容置0 ( H)=0(20H)= 0113H 75 90 FF MOV P1,#0FFH ;将字节地址90H单元中的内容置FFH (90H)= 0116H C2 90 CLR 90H ;将P1.0置0 ( H)=0 0118H D2 90 SETB 90H ;将P1.0置1 ( H)=1 011AH C2 91 CLR 91H ;将P1.1置0 ( H)=0 011CH D2 91 SETB 91H ;将P1.1置1 ( H)=1END ;程序结束参考程序C:数据缓冲区和特殊功能寄存器区的数据传送地址机器码源程序注释检查数据ORG 0200H ;表示程序从地址0200H存放0200H 75 30 99 MOV 30H,#99H ;将立即数99H送到30H中(30H)=(PC)=0203H75 45 AA MOV 45H,#0AAH ;将立即数AAH送到45H中(45H)=(PC)=0206H 75 81 50 MOV SP,#50H ;将立即数50H送到堆栈指针SP中( H)=50H(PC)=0209H 74 60 MOV A,#60H ;将立即数60H送到累加器A中( H)=60H(PC)=020BH 75 90 55 MOV P1,#55H ;将立即数55H送到P1口中( H)=55H(PC)=020EH 75 D0 90 MOV PSW,#90H ;使工作寄存器工作于2区、进位位CY置1( H)=90H(PC)=0211H 90 12 34 MOV DPTR,#1234H ;将立即数1234H送到数据指针DPTR中( H)=12H( H)=34H END ;程序结束2、参照预备知识中“观测和修改存储器内容”中方法6,利用鼠标右键修改存储单元的数据,将内部RAM 50H到5AH中放入不等的数据,运行参考程序,检查50H到5AH单元是否按从小到大的次序排列,自己修改程序将50H到5AH单元内容改为从大到小排列。
keil实习报告

Keil实习报告介绍本文是关于我的Keil实习经历的报告。
在这个实习中,我通过对Keil软件的学习和实践,获得了许多宝贵的经验和技能。
以下是我在这个实习过程中的所思所想。
实习目标首先,我在实习开始之前制定了自己的目标。
我希望通过这个实习,能够熟悉Keil软件的使用方法,并学习嵌入式系统的开发和调试技巧。
同时,我也想提升自己的问题解决能力和团队合作能力。
学习过程在实习的第一阶段,我花了一些时间学习Keil软件的基本知识和功能。
我阅读了官方文档,学习了如何创建项目、编写代码、编译和调试程序等基本操作。
我还通过上机实践来巩固所学知识,并解决了一些常见的问题。
在这个过程中,我发现了Keil软件的一些优点和不足之处。
优点是它提供了丰富的开发工具和调试功能,能够帮助开发人员更高效地进行嵌入式系统的开发和调试。
不足之处则是在使用过程中可能会遇到一些问题,例如编译错误、调试失败等。
但通过查阅资料和请教同事,我成功地解决了这些问题,并逐渐熟悉了Keil软件的使用方法。
实践项目在学习了Keil软件的基本知识后,我参与了一个实践项目。
这个项目的目标是设计和实现一个基于嵌入式系统的智能家居控制系统。
我在这个项目中负责编写设备控制模块的代码,并进行系统的集成和调试。
在实践项目中,我遇到了许多挑战和困难。
首先是与团队成员的沟通和合作。
由于每个人都负责不同的模块和任务,我们需要相互协调和配合,才能顺利完成整个系统的开发。
其次是软件的调试和优化。
由于嵌入式系统的特殊性,我们需要处理一些底层硬件和软件的交互问题,并保证系统的稳定和可靠性。
通过不断的尝试和调试,我成功地解决了这些问题,并最终完成了项目的目标。
实习总结通过这次Keil实习,我学到了许多知识和技能。
首先,我熟悉了Keil软件的使用方法,并学会了如何编写、编译和调试嵌入式系统的代码。
其次,我提升了自己的问题解决能力和团队合作能力。
在实践项目中,我学会了如何与团队成员进行有效的沟通和合作,并解决了许多实际问题。
Keil 的使用与汇编语言上机操作 实验报告

实验名称 Keil 的使用与汇编语言上机操作指导教师罗志祥专业班级光电1406 姓名段昳晖学号 U2014***** 联系电话 137******一、任务要求1.掌握Keil环境的使用1)字节拆分、合并:调试e421.asm程序,观察相关寄存器和单元的内容。
2)数据块填充:调试fill.asm程序,观察相关寄存器和单元的内容。
2. 编写多个十六位数的加法程序有4个十六位无符号数,连续存放在20H开始的片上数据区中,低八位先存,高八位在后。
要求:和存于R3(高八位)和R2(低八位),进位位存于R4.二、设计思路1.掌握Keil环境的使用1)字节拆分、合并利用汇编语言中的XCHD和SWAP两个语句来实现将八位二进制数拆分为两个四位二进制数并分别存储于不同的存储空间的功能,BCD码与30H相或(加上30H)得到ASCII 码。
将两个ASCII码和0FH相与(高四位清零)得到BCD码,利用SWAP语句将高位数放至高四位,将高位数和低位数相或可实现字节的合并。
2)数据块填充将R0用作计数器,DPTR用作片外数据指针,A作为原始数据来源,依顺序在片外的存储单元内容填充数据。
利用循环语句来减少程序长度,并控制填充单元个数为片外100H个。
利用RO的进位实现,当且仅当RO=00H时,结束循环赋值过程,此时R0已经经历了从00H-0FFH的过程,即计数周期为100。
同时赋值循环也历经了一百次,完成了将片外RAM 7000H-70FFH单元按数据依次递增规律的填充。
2.多个十六位数的加法程序以2个十六位无符号数相加为基础,将输入的4个无符号数(以a、b、c、d代表),两两相加,所得的2个和,再作为加数,求和,得到4个数的和。
其中需要注意的是进位的处理。
四数求和进位,不仅有两和数相加产出的进位还要加上产生两和数时的进位。
其中2个十六位无符号数相加的原理为,先对两数低位求和,提取出其进位,加到两数高位和中,并将高位求和进位,即两数求和进位保存下来。
实验一 Keil C51软件使用

实验一Keil软件使用
一、实验目的
1、熟悉Keil软件的工作界面及其基本使用方法;
2、初步掌握程序的调试方法,能够查询指令的执行效果;
3、熟悉汇编语言程序和C语言程序的编译方法,能够生成目标代码HEX文档。
二、实验仪器
1、PC机;
2、Keil软件。
三、实验内容
1、熟悉Keil C51软件界面及使用。
2、简单程序及汇编指令调试,编译。
(1) 传送指令
设置内部RAM的值,(30H)=40H, (40H)=10H,单步执行下列程序,检查结果。
MOV R0,#30H
MOV A,@R0
MOV R1, A
MOV B, @R1
执行后:(R0)= ,(R1)= ,(A)= ,(B)= ,(30H)= ,(40H)= 。
(2) 运算指令
3、编译LED灯闪烁程序,生成HEX文档。
(1) PROTEUS电路图
(2) 汇编程序
ORG 0000H
CLR P1.0 ; LED点亮
SJMP $
END
(3) C语言程序
#include <reg51.h>
sbit LED = P1^0;
void main()
{
while(1)
{
LED =0;
}
}
四、预习要求
1、读懂各程序;
2、预先给出运算结果,以便和实验结果比较;
3、能够读懂,并能编写点亮LED灯程序。
五、思考题
1、如何才能使上述电路图的LED灯闪烁?
2、何为汇编语言伪指令?程序中“ORG 0000H”和“END”分别具有什么作用?。
单片机实验报告——KeilC的使用与汇编语言上机操作

《微机实验》报告实验名称 KeilC的使用与汇编语言上机操作指导教师专业班级姓名学号序号联系方式一、任务要求实验目的:熟悉KeilC环境,通过在KeilC环境下调试字节拆分、合并程序、数据块清零程序、加法程序,掌握汇编语言程序的调试方法,加深对BCD码、ASCII码、堆栈、寄存器、数据指针、汇编语言指令、机器码等基本概念的理解,为后续程序编制和调试打下基础。
实验内容:1.掌握KeilC环境的使用1)字节拆分、合并:调试e421.asm程序,观察相关寄存器和单元的内容。
2)数据块填充:调试fill.asm程序,观察相关寄存器和单元的内容。
2. 编写两个十六位数的加法程序。
有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。
二、设计思路1.掌握KeilC环境的使用1)字节拆分、合并:字节拆分要将BCD码转换为2字节ASCII,需将BCD码拆为两部分,分别加30H。
具体先用XCHD语句将BCD码与00H交换低位,“高位”需先用SWAP语句将高低位交换,再加30H;“低位”直接加30H。
字节合并同理,需减30H再合并。
2)数据块填充:指针在7000H,利于循环语句递增填充,A寄存器中存放要填充的数据,DPTR数据指针指向片外,R0计数。
用CJNE构成循环,循环中A、DPTR、R0都加12.编写两个十六位数的加法程序两数低位分别存于20H、30H,高位存于21H、31H。
用ADD语句将低位相加,存于R4;用ADDC语句将高位和进位Cy相加,存于R3;存进位需先将A寄存器清零,再用ADDC语句将A、00H和Cy相加,存于R2。
三、资源分配本程序数据均存于片内RAM中,有两个十六位无符号数,低位分别存于20H、30H中,高位分别存于21H、31H中。
高八位和存于R3中,低八位和存于R4中,进位位存于R2中。
四、流程图五、源代码ORG 0000HMAIN: MOV R0,#20H ;设置第一个数地址指针 MOV R1,#30H ;设置第二个数地址指针MOV A,@R0 ;取低位ADD A,@R1 ;两数低位相加MOV R4,A ;存“和”低位INC R0INC R1MOV A,@R0 ;取高位ADDC A,@R1 ;两数高位相加MOV R3,A ;存“和”高位CLR AADDC A,#0MOV R2,A ;存进位HERE: SJMP HERE ;踏步END ;结束Program Size: data=8.0 xdata=0 code=18精简后ORG 0000HMAIN:MOV A,20H ; 取低位ADD A,30H ; 两数低位相加MOV R4,A ; 存“和”低位MOV A,21H ; 取高位ADDC A,31H ; 两数高位相加MOV R3,A ;´存“和”高位CLR AADDC A,#0MOV R2,A ; 存进位HERE: SJMP HERE ; 踏步ENDProgram Size: data=8.0 xdata=0 code=16六、程序测试方法与结果、软件性能分析1.1字节拆分、合并调试拆分时,如图31H、32H中内容为34和39,正常合并时,如图33H中内容又变为了491.2数据块填充调试执行完改程序后片外7000H到70FFH中的数据如下图3.两个十六位数的加法程序测试方法:修改片上RAM中20H、21H、30H、31H数据,查看R2、R3、R4数据。
KEILC51中C语言加入汇编语言的使用方法

KEILC51中C语言加入汇编语言的使用方法一、为什么使用汇编语言?汇编语言是一种底层的编程语言,其主要目的是实现对硬件的直接控制,具有高度灵活性和效率。
在开发单片机程序时,通常使用高级语言来编写大部分的代码,但是在一些特定的情况下,使用汇编语言能够更好地满足需求,例如对一些硬件寄存器的操作、实现高速计算等。
二、C语言与汇编语言相结合的方法在KEILC51中,可以通过使用内联汇编或者使用汇编模块的方式将C 语言与汇编语言相结合。
1.内联汇编内联汇编是将汇编代码直接嵌入到C语言代码中。
使用内联汇编可以获得更高的性能和灵活性,但也增加了代码的可读性和可维护性。
在C语言中使用内联汇编需要使用__asm关键字,并在括号中编写要嵌入的汇编代码。
以下是一个示例:```void delay(unsigned int count)__asmMOVR1,loop:INCR1CJNE R1, count, loop}```在上述示例中,使用了__asm关键字将一段简单的汇编代码嵌入到了C函数delay中,以实现一个延时功能。
2.汇编模块另一种将C语言与汇编语言相结合的方法是使用汇编模块。
汇编模块是一个独立的文件,其中包含了汇编语言代码。
可以通过使用extern关键字将C语言代码与汇编模块连接起来。
首先,需要创建一个汇编模块的文件,例如delay.asm,其中包含了要实现的汇编代码:```; delay.asmPUBLIC delaydelay PROCMOVR1,loop:INCR1CJNE R1, R2, loopRETdelay ENDP```在上述示例中,创建了一个名为delay的汇编函数,该函数实现了一个简单的延时功能。
接下来,在C语言代码中使用extern关键字声明要调用的汇编函数:```// main.cextern void delay(unsigned int count);void maindelay(1000);```在上述示例中,使用extern关键字声明了一个名为delay的汇编函数。
2019实验1 Keil软件学习与及操作实践

实验1 Keil软件学习与操作实践一、实验目的:熟悉Keil C51 集成开发环境的使用方法,初步掌握Keil C51基本的操作和使用,能够输入、编译和仿真调试简单的程序。
二、实验内容:在Keil C51 集成开发环境编写程序,实现P1.0口单灯闪烁的功能(假设P1.0口所接发光二极管低电平点亮),编写程序后在Keil C51 集成开发环境完成编译和仿真,实现全速运行、单步运行、并学会设置断点、查看相关寄存器等操作。
三、实验设备:安装Keil C51的计算机一台。
四、实验步骤:(参考教材第11章)1)建立一个工程项目选择芯片确定选项。
执行Keil C51软件的菜单“Project | New Project…”,弹出一个名为“Create New Project”的对话框。
先选择一个合适的文件夹准备来存放工程文件,最后,为工程取名,并保存。
如图1-1所示,紧接着,Keil C51提示您选择CPU器件。
在这里可以选择Atmel公司的AT89S52。
图1-1 Keil C51 工程的建立2)编写(或加入)汇编源文件或C 源文件,并添加到工程中。
执行菜单“File | New…”,出现一个名为“Text n”(其中n 表示序号)的文档。
如图1-2所示。
执行菜单“File | Save”,弹出一个名为“Save As”的对话框。
将文件名改为你事先起好的名称,如:led.asm然后保存。
注意:扩展名“.ASM或.c”不可省略。
单击Keil C51软件左边项目工作窗口“Target 1”上的“+”,将其展开。
然后右击“Source Group 1”文件夹,会弹出如图 1.7所示的选择菜单。
单击其中的“Add Files to Group 'Source Group 1'”项,将源程序文件添加到工程中。
然后编写如下程序源文件,并再次保存。
ORG 0000HMAIN: CLR P1.0 ;(1)点亮LEDMOV 30H,#255LCALL DELAY ;(2)调用延时子程序SETB P1.0 ;(3)熄灭LEDMOV 30H,#200LCALL DELAY ;(4)调用延时子程序AJMP MAIN ;(5)返回MAIN处执行DELAY:MOV R7,30H ;(6)延时程序D1:MOV R6,#250 ;(7)D2:DJNZ R6,D2 ;(8)R6存放内循环次数DJNZ R7,D1 ;(9)R7存放外循环次数RET ;(10)END3)设置参数单击“Project”菜单“Option…”选项(可能需要选择两次),在“Output”标签页,选中“Create HEX File”项,然后“确定”。
(完整word版)keilC语言与汇编语言混合编程

(完整word版)keilC语⾔与汇编语⾔混合编程keil C语⾔与汇编语⾔混合编程1. C语⾔中嵌⼊汇编1、在C ⽂件中要嵌⼊汇编代码⽚以如下⽅式加⼊汇编代码:#pragma ASM;Assembler Code Here#pragma ENDASM2、在Project 窗⼝中包含汇编代码的C ⽂件上右键,选择“Options for ...”,点击右边的“Generate Assem bler SRCFile”和“Assemble SRC File”,使检查框由灰⾊变成⿊⾊(有效)状态;3、根据选择的编译模式,把相应的库⽂件(如Small 模式时,是Keil\C51\Lib\C51S.Lib)加⼊⼯程中, 该⽂件必须作为⼯程的最后⽂件;4、编译,即可⽣成⽬标代码。
来个实例吧:#i ncludevoid main(void){P2=1;#pragma asmMOV R7,#10DEL:MOV R6,#20DJNZ R6,$DJNZ R7,DEL#pragma endasmP2=0;}2 . ⽆参数传递的函数调⽤C51调⽤汇编函数1.⽆参数传递的函数调⽤先来个例⼦:其中example.c和example.a51为项⽬中的两个⽂件***********************example.c***********************************************extern void delay100();main(){delay100;}***********************example.a51***********************************************PRDELAY100 SEGMENT CODE; // 在程序存储区中定义段PUBLIC DELAY100; //声明函数RSEG ?PR?DELAY100; //函数可被连接器放置在任何地⽅DELAY100:MOV R7,#10DEL:MOV R6,#20DJNZ R6,$DJNZ R7,DELRETEND在example.c⽂件中,先声明外部函数,然后直接在main中调⽤即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称 Keil的使用与汇编语言上机操作成绩
指导教师
专业班级姓名学号
联系电话
一、任务要求
二、设计思路
三、资源分配
四、流程图
五、源代码(含文件头说明、语句行注释)
六、程序测试方法与结果
思考题
本人承诺:
本报告内容真实,无伪造数据,无抄袭他人成果。
本人完全了解学校相关规定,如若违反,愿意承担其后果。
签字:
2016 年 10 月 11 日
Keil的使用与汇编语言上机操作
一、任务要求
编写多个十六位数的加法程序,有4个十六位无符号数,连续存放在20H开始的片上数据区中,低八位先存,高八位在后。
要求:和存于R3(高八位)和R2(低八位),进位位存于R4。
二、设计思路
1.先将20H21H和22H23H的两个16位数相加。
用R0,R1存储被加的两个数的地址,低位相加之后,结果保存在R2,将R0,R1存储的地址自加1,进行高位相加,结果保存在R3。
完成一次两个16位数的相加之后,低位相加结果存储在18H,高位结果存储在19H,进位保存在R4
2.R0改为18H,R1改为24H,将第一次的结果再和第三个数相加,若有进位,R4加1
3.R0改为18H,R1改为26H,将第二次的结果再和第四个数相加,若有进位,R4加1
4.最后R2储存的是低八位,R3保存的高八位,R4保存的总进位
三、资源分配
20H--27H 保存四个16位数
R2 保存每次加法的低8位
R3 保存每次加法的高8位
R0 R1每次加法运算的两个数的地址
R4 保存进位结果
19H 18H 两个16位数之后的数高低位的保存地址
A 中间运算
四、流程图
ORG 0000H
20H 22H 相加
21H 23H C Y 相
加
19H 18H 保存高低位结果
19H 18H 和25H 24H 相加
C Y >0
进位位加1
19H 18H 保存高低位结果19H 18H 和27H 26H 相加
C Y >0
进位位加1
R2保存低8位R3保存高8位C Y >0进位位加1R4保存进位位
结束
五、源代码
File name: jiafa.asm
ORG 0000H
MOV 27H,#25H
MOV 26H,#25H MOV 25H,#25H MOV 24H,#0E5H MOV 23H,#0F5H MOV 22H,#25H MOV 21H,#25H
MOV 20H,#0F5H ;赋值
CLR C
MOV R2,#00H ;暂存每次加法的低位结果
MOV R3,#00H ;暂存每次加法的高位结果
MOV R4,#00H ;记录4个16位数相加的进位
MOV R0,#20H ;第一次相加
MOV R1,#22H
MOV A,@R0
ADD A,@R1
MOV R2,A ;低位相加和保存到R2
INC R0
INC R1 ;地址加1,进行高位相加
MOV A,@R0
ADDC A,@R1
MOV R3,A ;高位相加和保存到R3
JNC JINW1 ;如果有进位,R4加1
MOV A,R4
ADD A,#01H
MOV R4,A
JINW1: CLR C ;将第一次相加的结果与第三个数相加MOV 18H,R2 ;保存每次运算后的低位结果在18H
MOV 19H,R3 ;保存每次运算后的高位结果在19H MOV R0,#18H ;将结果和新的数相加
MOV R1,#24H ;新数的地址
MOV A,@R0
ADD A,@R1
MOV R2,A
INC R0
INC R1
MOV A,@R0
ADDC A,@R1
MOV R3,A
JNC JINW2
MOV A,R4
ADD A,#01H
MOV R4,A
JINW2:
CLR C ;将第二次相加的结果与第四个数相加
MOV 18H,R2
MOV 19H,R3
MOV R0,#18H
MOV R1,#26H
MOV A,@R0
ADD A,@R1
MOV R2,A
INC R0
INC R1
MOV A,@R0
ADDC A,@R1
MOV R3,A
JNC JINW3
MOV A,R4
ADD A,#01H
MOV R4,A
JINW3:
SJMP $
END
六、程序测试方法与结果
1.字节拆分、合并程序的调试:
第一步:拆分为两个数
第二步:转换为ASCII码
第三步:取出两个ASCII码并合并
2.数据块填充程序调试:
第一步:从7000H开始赋值,每赋值一次,R0加1记录次数,A也加1 第二步:R0加到00H,结束循环赋值
总共运行256次
3.四个16位数的相加
四个数分别为25F5H,F525H,25E5H,2525H
观察每次相加之后各个寄存器的值,进位的值,25F5H与F525H相加,应该是11B1AH
19H18H处分别是1B 1A ,R4保存的进位为1
11B1AH与25E5相加,结果应该是140FFH
140FFH与2525H相加,结果应该是16624H
测试之后的结果为16624H,R4保存进位位,高低8位分别保存在R3,R2
七、思考题
1.在调试时,Registers窗口中可以查看Regs和Sys,分别是工作寄存器和SFR
VIEW-MEMORY WINDOWS-MEMORY 1/2/3/4,查看片内RAM,输入D:18H格式的语句,查看片外RAM,输入X:3000H格式的语句,查看程序代码,输入C:0100H格式的语句Disassembly窗口可查看各程序指令存放的程序地址,在运用PC查表时可以用到,也可以查看指令的长度
2.字节拆分、合并:(使用ADD指令)
MOV 30H,#49H
MOV A,30H
ANL A,#0FH ;取出低位
ADD A,#30H ;变成ASCII码
MOV 31H,A ;结果存于31H
MOV A,30H
ANL A,#0F0H
SWAP A ;取出高位
ADD A,#30H ;变成ASCII码
MOV 32H,A ;结果存于32H
MOV A,31H ;取出低位的ASCII码
ANL A,#0FH ;转为BCD
MOV 33H,A ;存于33H
MOV A,32H ;取出高位的ASCII码
ANL A,#0FH ;转为BCD
SWAP A
ADD A,33H ;高位低位相加,合并在一起
MOV 33H,A ;把合并的数存在33H
3.CLR A 改为MOV A,#FFH
INC A 改为DEC A
4.MOV DPTR,#7000H 改为MOV DPTR,#7010H
CJNE R0,#00H,FILL1 改为CJNE R0,#14,FILL1 5.在每条ADD或ADDC指令的后面加上一条DA A指令。