微处理器实验报告1
微处理器实验报告

《微处理器实验》实验报告一、实验目的与任务1、掌握80C51单片机程序的调试与下载方法。
2、掌握80C51单片机并口的工作原理及输入输出控制方法。
3、理解和学会单片机外部中断的使用;4、学习单片机定时器/计数器的应用。
二、实验原理介绍80C51单片机包括P0~P3共4个并口,除可作为普通I/O口使用外,P0口还可用作8位数据总线口和低8位地址口,P2可用作高8位地址口,P3.6、P3.7可用作外部RAM或I/O接口的读、写控制引脚,P3.0~P3.5可用作串口、外部中断、计数器的功能引脚。
ZSC-1实验箱包括4个单片机,其中1#单片机(MCU1)和2#单片机(MCU2)的型号都是STC12C5A60S2,只是封装不同。
STC12C5A60S2采用80C51内核,片内资源和性能较标准80C51单片机增强了许多。
本课程的全部实验只用到MCU1。
图3-1为本实验对应的硬件电路。
P0口用于控制发光管L101~L108,口线输出0(低电平)时,对应的发光管点亮,口线输出1(高电平)时,对应的发光管熄灭。
P3口的4根口线连接独立按键KX0~KX3,由于P3口内部上拉电阻的作用,按键松开时,对应的口线表现为1状态(高电平),按键按下时,对应的口线表现为0状态(低电平)。
中断是指在突发事件到来时先中止当前正在进行的工作,转而去处理突发事件。
待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。
引起突发事件的来源称为中断源,中断源要求服务的请求称为中断请求,对中断请求提供的服务称为中断服务,中断管理系统处理事件的过程称为中断响应过程。
51类单片机至少包括5个中断源:INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。
(本实验用)INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。
T0:定时器/计数器0中断,由T0计满回零引起。
(本实验用)T1:定时器/计数器l中断,由T1计满回零引起。
微处理器实验报告

微处理器实验报告摘要:本文旨在介绍微处理器实验及其结果,内容包括实验目的、实验器材与方法、实验过程、实验结果和分析以及实验结论等。
通过本次实验,我们对微处理器的工作原理和应用有了更深刻的理解,并能够熟练地进行一些简单的微处理器操作。
1. 引言微处理器是现代计算机的核心组成部分,其作用是负责指令的执行和数据的处理。
在这个实验中,我们将通过操作微处理器,深入了解其内部构造和工作原理。
同时,我们也将学习如何正确地使用微处理器进行一些简单的计算和控制任务。
2. 实验目的本次实验的目的是:- 了解微处理器的基本工作原理;- 掌握微处理器的基本操作方法;- 理解不同指令的功能和使用方法;- 实现一些简单的计算和控制任务。
3. 实验器材与方法3.1 实验器材:- 微处理器实验箱- 示波器- PC机3.2 实验方法:首先,根据实验指导书上给出的实验电路图,按照电路图连接实验器材。
然后,将微处理器与PC机通过串口或者并口连接起来。
接下来,根据实验指导书上给出的指令,编写相应的程序代码并将其烧录到微处理器中。
最后,通过操作微处理器,观察实验结果并进行实验数据的采集和分析。
4. 实验过程4.1 硬件连接:根据实验指导书上的电路图,连接实验箱和示波器,保证电路的正常工作。
4.2 软件编程:根据实验指导书上的指令,使用相应的软件工具或编程语言编写程序代码,并将其烧录到微处理器中。
4.3 实验操作:按照实验指导书上的要求,操作微处理器进行各种指令的执行,观察实验结果并记录相关数据。
5. 实验结果与分析通过本次实验,我们成功地完成了一些简单的微处理器操作,并观察到了相应的实验结果。
在实验中,我们使用了一些常见的指令,如加法指令、乘法指令和逻辑指令等,并实现了一些简单的计算和控制任务。
同时,我们还观察到了微处理器的运行速度以及实验过程中的一些注意事项。
通过对实验数据的分析,我们发现微处理器在执行指令时的速度非常快,能够实时处理大量的数据,并及时给出相应的计算结果。
单片机实验报告1

单片机实验报告1单片机实验报告1一、实验目的本实验的目的是通过学习单片机的基本知识和原理,了解单片机的工作原理,熟悉编写单片机程序并进行实验验证。
二、实验器材和软件实验器材:单片机开发板、USB数据线、LCD液晶屏、面包板、电缆线、电阻、LED等。
实验软件:KEIL C51开发软件、Proteus电路仿真软件。
三、实验原理单片机是一种集成度很高的微处理器芯片,本实验使用的单片机开发板中集成了一款8051系列的单片机。
这款单片机具有强大的数据处理能力和丰富的接口资源,可以用来实现各种功能。
四、实验内容本实验主要分为两个部分:第一部分是通过LED灯的亮灭来实现二进制数的计数;第二部分是通过LCD液晶屏显示温度和湿度数值。
1.二进制数计数利用单片机的IO口,将LED灯连接到P2口,通过对P2口的输出信号进行控制,实现二进制数的计数。
2.温湿度显示利用单片机的ADC(模数转换)功能,将温湿度传感器与单片机相连,通过ADC模块将温湿度信号转换成数字信号,并通过LCD屏幕显示出来。
五、实验步骤1.硬件连接将开发板与电脑连接,使用数据线将开发板上的USB接口与电脑的USB接口相连。
然后将LCD液晶屏和温湿度传感器连接到开发板上的相应接口,并将LED灯连接到P2口。
2.编写程序使用KEILC51软件编写程序,通过编写相应的代码,实现LED灯计数和温湿度显示功能。
4.运行实验将开发板上的拨码开关打开,开启单片机的电源。
LED灯开始计数并显示在开发板上,LCD屏幕同时显示温度和湿度的数值。
六、实验结果经过实验,LED灯能够正常进行二进制数的计数,LCD屏幕也能够准确地显示温度和湿度的数值。
七、实验总结通过本实验,我对单片机的工作原理和编程有了更深入的了解。
实验中遇到的问题,我通过查找资料、请教老师和同学进行了解决,提高了我的解决问题的能力。
通过实验,我进一步认识了单片机在各个领域中的重要性和应用价值,对未来的学习和工作有了更加明确的方向。
简单微处理器设计实验报告

目录目录 (1)表目录 (2)图目录 (3)1文档说明(Introduction) (4)2描述习惯(Conventions) (5)3微处理器各功能模块 (6)3.1概述 (6)3.2结构框图 (6)3.2.1ALUpart (6)3.2.2controlpart (9)3.2.3CPU (11)3.3功能列表 (12)3.3.1ALUpart (12)3.3.2controlpart (13)3.3.2.1状态转移图 (13)3.4工作环境介绍 (14)3.4.1设计代码 (14)3.4.2测试平台 (14)3.4.3电路综合环境 (16)3.4.4后仿真环境 (16)3.5功能验证结果 (17)3.5.1前仿真结果 (17)3.5.2后仿真结果 (19)3.6综合结果 (20)表1 ALU8模块I/O接口表2 通用寄存器堆模块I/O接口表3 alupart输入输出I/O口列表表4 控制器模块I/O接口表5 IRRAM模块I/O接口表6 Control-part结构整体I/O接口表7 CPU整体模块I/O接口表8 ALU 指令集表9 添加的JUMP指令图1 ALU8模块框图图2 通用寄存器RAM模块框图图3 ALUpart模块框图图4 控制器模块框图图5 IRRAM模块框图图6 Control-part结构框图图7 CPU结构框图图8 ALUpart状态转移图图9 controlpart状态转移图图10 CPU计算5!的全图图11 controllpart执行一条指令的波形图图12 control 执行非跳转指令的状态机波形图13 control 执行跳转指令的状态机波形图14 ALUpart执行一条指令的波形图图15 ALUpart执行指令状态机的波形图16 综合的Timing report图17 综合的Area report图18 门级仿真5!的波形结果图19 门级仿真产生的延时1文档说明(Introduction)本文档描述了简单微处理器的总体设计,如功能、模块结构、关键时序等等。
微处理器实验报告

《微处理器实验》实验报告一、实验目的与任务1、掌握80C51单片机程序的调试与下载方法。
2、掌握80C51单片机并口的工作原理及输入输出控制方法。
3、理解和学会单片机外部中断的使用;4、学习单片机定时器/计数器的应用。
二、实验原理介绍80C51单片机包括P0~P3共4个并口,除可作为普通I/O口使用外,P0口还可用作8位数据总线口和低8位地址口,P2可用作高8位地址口,P3.6、P3.7可用作外部RAM或I/O接口的读、写控制引脚,P3.0~P3.5可用作串口、外部中断、计数器的功能引脚。
ZSC-1实验箱包括4个单片机,其中1#单片机(MCU1)和2#单片机(MCU2)的型号都是STC12C5A60S2,只是封装不同。
STC12C5A60S2采用80C51内核,片内资源和性能较标准80C51单片机增强了许多。
本课程的全部实验只用到MCU1。
图3-1为本实验对应的硬件电路。
P0口用于控制发光管L101~L108,口线输出0(低电平)时,对应的发光管点亮,口线输出1(高电平)时,对应的发光管熄灭。
P3口的4根口线连接独立按键KX0~KX3,由于P3口内部上拉电阻的作用,按键松开时,对应的口线表现为1状态(高电平),按键按下时,对应的口线表现为0状态(低电平)。
中断是指在突发事件到来时先中止当前正在进行的工作,转而去处理突发事件。
待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。
引起突发事件的来源称为中断源,中断源要求服务的请求称为中断请求,对中断请求提供的服务称为中断服务,中断管理系统处理事件的过程称为中断响应过程。
51类单片机至少包括5个中断源:INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。
(本实验用)INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。
T0:定时器/计数器0中断,由T0计满回零引起。
(本实验用)T1:定时器/计数器l中断,由T1计满回零引起。
嵌入式微处理器结构_实验报告1

:
模块:
串口:
网络接口:
New(新建)工程
保存位置为D:\shb;
成功创建工程
5、思考题
(1)写出嵌入式系统的定义和应用,嵌入式有哪些开发工具?
硬件部分可以分成嵌入式处理器和外部设备。
处理器是整个系统的核心,负责处理所有的软件程序以及外部设备的信号。
外部设备在不同的系统中有不同的选择。
比如在汽车上,外部设备主要是传感器,用于采集数据;而在一部手机上,外部设备可以是键盘、液晶屏幕等。
软件部分可以分成两层,最靠近硬件的是嵌入式操作系统。
操作系统是软硬件的接口,负责管理系统的所有软件和硬件资源。
操作系统还可以通过驱动程序与外部设备打交道。
最上层的是应用软件,应用软件利用操作系统提供的功能开发出针对某个需求的程序,供用户使用。
用户最终是和应用软件打交道,例如在手机上编写一条短信,用户看到的是短信编写软件的界面,而看不到里面的操作系统以及嵌入式处理器等硬件。
微处理器设计实验报告

微处理器设计实验任务&目标利用Verilog HDL语言,基于Xilinx FPGA nexys4实验平台,设计一个能够执行以下MIPS指令集的单周期类MIPS处理器,要求完成所有支持指令的功能仿真,验证指令执行的正确性,要求编写汇编程序将本人学号的ASCII码存入RAM的连续内存区域微处理器各个模块硬件设计原理、Verilog代码顶层模块ROM块采用异步输出,RAM同步输出,异步写入。
该方案有三个部分用到了时钟信号:指令指针赋值,寄存器文件写入数据,数据存储器输出数据。
指令指针赋值与始终上升沿同步,而寄存器文件数据写入以及数据存储器数据输出、输入与时钟下降沿同步Verilog代码module top(input reset);reg [31:0] PC;wire J,B,Bzero,zero,M2R,memwr,Imm,regwr,RtDst;wire [1:0] ALUop;wire [3:0] ALUctr;wire [31:0] NewPC,JMPPC,BranPC,Imm32L2,Imm32,NotJMPPC,TempPC;wire [31:0] Instr,WriteData,DataOut,Res,RsData,RtData,in2;wire [4:0] WriteAddr;assign Imm32={{16{Instr[15]}},Instr[15:0]};assign WriteAddr=RtDst?Instr[15:11]:Instr[20:16];assign in2=Imm?Imm32:RtData;assign WriteData=M2R?DataOut:Res;assign NotJMPPC=Bzero?BranPC:NewPC;assign TempPC=J?JMPPC:NotJMPPC;assign Bzero=B&zero;assign Imm32L2=Imm32<<2;assign JMPPC={NewPC[31:28],Instr[25:0],2'b00};assign BranPC=NewPC+Imm32L2;assign NewPC=PC+4;always@(posedge clk)if(!reset)PC=TempPC;elsePC=32'b0;mainctr mainctr1(Instr[31:26],ALUop,RtDst,regwr,Imm,memwr,B,J,M2R);ALU alu(RsData,in2,ALUctr,Res,zero);aluctr_gzt aluctr1(ALUop,Instr[5:0],ALUctr);DataRAM dram(Res[7:2],RtData,!clk,memwr,DataOut);InstrROM irom(PC[8:2],Instr);regFile regfile(clk,reset,regwr,Instr[25:21],Instr[20:16],WriteAddr,WriteData,RsData,RtData); endmodule主控制器module mainctr(input [5:0] opCode,output [1:0] ALUop,output RtDst,output regwr,output Imm,output memwr,output J,output M2R);reg [8:0] outputtemp;assign RtDst=outputtemp[8];assign Imm=outputtemp[7];assign M2R=outputtemp[6];assign regwr=outputtemp[5];assign memwr=outputtemp[4];assign B=outputtemp[3];assign J=outputtemp[2];assign ALUop=outputtemp[1:0];always@(opCode)case(opCode)6'b000010:outputtemp =9'bxxx0_001_xx; //imp6'b000000:outputtemp =9'b1001_000_10; //R6'b100011:outputtemp =9'b0111_000_00; //lw6'b101011:outputtemp =9'bx1x0_100_00; //sw6'b000100:outputtemp =9'bx0x0_010_01; //beq6'b001000:outputtemp =9'b0101_000_11;default:outputtemp =9'b000000000;endcaseendmoduleALU运算模块module ALU(input [31:0] in1,input [31:0] in2,input [3:0] ALUctr,output reg [31:0] Res,output reg zero);always @(in1 or in2 or ALUctr)begincase(ALUctr)4'b0000: //andRes = in1&in2;4'b0001: //orRes = in1 | in2;4'b0010: //addRes = in1 + in2;4'b0110: //subbeginRes = in1 - in2;zero = (Res == 0)?1:0;end4'b0111:Res=(in1<in2)?1:0;default: //othersRes = 0;endcaseendendmoduleALU控制器module aluctr_gzt(input [1:0] ALUop,input [5:0] func,output reg [3:0] ALUctr);always @(ALUop or func)casex({ALUop,func})8'b00xxxxxx: ALUctr=4'b0010; //lw,sw8'b01xxxxxx: ALUctr=4'b0110; //beq8'b10xx0000: ALUctr=4'b0010; //add8'b11xxxxxx: ALUctr=4'b0010;8'b10xx0010: ALUctr=4'b0110; //sub8'b10xx0100: ALUctr=4'b0000; //and8'b10xx0101: ALUctr=4'b0001; //or8'b10xx1010: ALUctr=4'b0111; //sltdefault : ALUctr=4'b0000;endcaseendmodule寄存器文件module regFile(input clk,input reset,input regwr,input [4:0] RsAddr,input [4:0] RtAddr,input [4:0] WriteAddr,input [31:0] WriteData,output [31:0] RsData,output [31:0] RtData);reg [31:0] regs [0:31];assign RsData = (RsAddr == 5'h0)?32'h0:regs[RsAddr];assign RtData = (RsAddr == 5'h0)?32'h0:regs[RtAddr];integer i;always@(negedge clk or posedge reset)if (reset)for(i=0;i<32;i=i+1)regs[i]<=0;else if(regwr)regs[WriteAddr] <= WriteData;endmoduleROM汇编程序设计代码main:add $14,$12,$13addi $11,$0,200addi $12,$0,85 #Usw $12,36($11)addi $13,$0,50 #2sw $13,32($11)addi $14,$0,48 #0sw $14,28($11)addi $15,$0,49 #1sw $15,24($11)addi $16,$0,55 #7sw $16,20($11)addi $17,$0,49 #1sw $17,16($11)addi $18,$0,51 #3sw $18,12($11)addi $19,$0,53 #5sw $19,8($11)addi $14,$0,53 #5sw $14,4($11)addi $18,$0,55 #7sw $18,0($11)add $4,$2,$3lw $4,4($2)sw $2,8($2)sub $2,$4,$3or $2,$4,$3and $2,$4,$3slt $2,$4,$3beq $4,$3,exitj mainexit: lw,$2,0($3)j mainRegfile模块仿真激励代码module regSim();reg clk ;reg reset;reg regwr;reg [4:0] RsAddr;reg [4:0] RtAddr;reg [4:0] WriteAddr;reg [31:0] WriteData;wire [31:0] RsData;wire [31:0] RtData;regFile uut(clk,reset,regwr,RsAddr,RtAddr,WriteAddr,WriteData,RsData,RtData);parameter PERIOD = 10; //clk period 10nsalways beginclk = 1'b0;#(PERIOD/2) clk = 1'b1; //rising edge#(PERIOD/2); //falling edgeendinitial beginreset=1; //reset 14 nsRsAddr=3;RtAddr=0;WriteAddr=5;WriteData=8;regwr=1;#14 reset=0; //20ns writedata stored in writeaddr $5=8#20 RsAddr=5; //34ns RsData=8;endendmodule仿真截图验证Regfile模块正确性首先将光标移到14ns处,reset一直为有效电平,故regs值一直为0,符合复位功能要求。
电子科技大学中山学院微处理器实验报告 (1)

Keil C51集成开发环境是80C51内核单片机的重要软件开发平台,内嵌多种符合工业标准的开发工具,可完成从工程建立到管理、编译(汇编)、连接、调试等完整的开发流程。Keil C51允许使用汇编或C语言编程,并提供软件模拟和硬件仿真两种调试方式。
本次实验通过几个汇编语言程序熟悉Keil C51集成开发环境的使用,掌握单片机程序设计与调试的一般流程。
三、实验内容和步骤
1(1)
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV SP,#60H;SP=60H
MOV R0,#30H ; R0=30H
MOV R1,#40H ; R1=40H
MOV @R0,#55H ;(30H)=55
MOV @R1,#0AAH ;(40H)=AA
MOV A,@R1 ;A=AA
电子科技大学中山学院学生实验报告
院别:电子信息学院课程名称:微处理器实验
班级
13电科A
姓名
张益航
学号
2012010201070
实验名称
集成开发环境的熟悉与指令练习
实验时间
2015年9月29日
成绩
教师签名
批改时间
报告内容
一、实验目的和任务
1、熟悉Keil C51集成开发环境的使用。
2、掌握80C51单片机程序创建、汇编、连接与调试方法。
END
2
(1)ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV R0,#45H
MOV R2,#16
NEXT1: MOV @R0,#'1'
INC R0
DJNZ R2,NEXT1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV@R1,A;(40H)=33H
NOP
SJMP$
END
3)选择Project下的Rebuild all target files对工程文件进行汇编和连接,如果出错,系统会提示出错并指出出错地方和出错类型,请按照提示返回程序进行修改,直到系统提示0 warnings,0 errors,表明程序没有语法错误,成功完成了汇编过程,就可以进行动态调试了。
4)选择Project下的Options for target ‘Target1’进行动态调试的参数设置,点击debug,再点击Use Simulator,最后点击完成。
5)对程序进行动态调试,学会查看和修改相关寄存器(左边的register窗)、内部和外部存储器的内容。常用的工具条上的命令有开始/暂停动态调试 ,单步执行 或 ,执行到光标处 等。查看存储器内容的方式是在存储区(View/memory窗)的地址栏内写上要查看的初始地址就可以了。比如看内部存储器用D:0000H,程序存储器用C:0000H,外部存储器用X:0000H。将每行程序执行后的结果写到该行程序的注释部分。
2、编写一个数据填充和数据块搬移程序。仿照实验内容和步骤1的过程,建立、编辑、汇编、连接和动态调试程序,查看和验证数据区的内容是否正确。
ORG0000H
LJMPMAIN
ORG0100H
MAIN:MOVR0,#30H; R0指向30H单元
MOVR2,#16; R2作循环计数器
NEXT1:MOV@R0,#'*';填充当前单元
MOVA,@R0;A=33H
PUSHACC;SP=61H(61H)=33H;PUSH为SP→(SP)+1,(SP)←MOVA,@R1;A=44H ACC
PUSHACC;SP=62H(62H)=44H
NOP
POPACC;SP=61HA=44H;把44H送进SP=62中,然后再把SP减1
MOV@R0,A;(30H)=44H
二、实验仪器
PC机一台
三、实验内容与分析
1、编写程序,完成内存中两个字节内容的交换。
1)建立工程文件。双击桌面的Keil快捷图标,进入Keil集成开发环境。点击工具栏的Project选项,在弹出的下拉菜单中选择New Project命令,建立一个新的µVision2工程,为工程取一个名字,并选择将要使用的器件的型号(Philips公司的P80/P87C52X2 CPU)。
MOVX@DPTR,A
INCR1
INCDPTR
DJNZR3,NEXT2
SJMP$
END
3、编写一个多字节的算术运算程序。仿照实验内容和步骤1的过程,建立、编辑、汇编、连接和动态调试程序,将运行结果写到程序的注释部分。
ORG0000H
LJMPMAIN
ORG0100H
MAIN:MOVSP,#60H
MOVR1,#12H
电子科技大学中山学院学生实验报告
院别:电子信息学院课程名称:微处理器实验
班级:10电信A姓名:陈水船学号:2010010302042
实验名称:集成开发环境的熟悉与程序设计练习实验时间:
成绩:教师签名:石建国批改时间:
一、实验原理与目的
目的:
1熟悉Keil C51集成开发环境的使用方法;
2熟悉Keil C51集成开发环境仿真条件下调试功能的使用;
ADDCA,R3;高8位相加R1和R3两个高字节相加,并加上来自低字节
MOVR5,A的进位CY,并存入R5
MOVA,#0
ADDCA,#0
MOVR6,A
NOP
;下面是乘法运算
NOP
MOVAOVR4,A
MOVR5,B
MOVA,R1
MOVB,R2
MULAB
ADDA,R5
MOVR5,A
ORG0000H
LJMPMAIN
ORG0100H
MAIN:MOVSP,#60H;SP=60H
MOVR0,#30H;R0=30H
MOVR1,#40H;R1=40H;SP,R0,R1为立即寻址,由程序可直接得出
MOV@R0,#55H;(30H)=55H;指令MOV @Ri,#data为data值赋值给Ri
INCR0;指针下移一个单元
DJNZR2,NEXT1;未填完16个单元,继续
;把30H赋给R0,R2作为计数器,循环赋值把30H到3FH上的值填充‘*’。
;以下程序将30H开始的16个字节内容送到100H开始的外部存储器中
MOVR1,#30H
MOVDPTR,#0100H
MOVR3,#10H
NEXT2:MOVA,@R1
MOVR0,#34H;R1R0=1234H;指令MOV Rn,#data,实现(data)→Rn
MOVR2,#21H
MOVR3,#0EFH;R3R2=EF21H;分别把各地址送入R1,R0,R2,R3中
MOVA,R0
ADDA,R2;低8位相加R0和R2两个低字节相加,并存到R4
MOVR4,A;
MOVA,R1
MOV@R1,#0AAH;(40H)=AAH
MOVA,@R1;A=AAH;指令MOV A,@Ri,即Ri→A
XCHA,@R0;A=55H(30H)=AAH;引入中间变量,实现R0,R1互换
XCHA,@R1;A=AAH(40H)=55H
;下面是另一种方法
MOV@R0,#33H;(30H)=33H
MOV@R1,#44H;(40H)=44H
3学会程序存储器、寄存器、片上存储器、片外存储器内容的查看和修改。
原理:
Keil集成开发环境为我们提供了强大的学习、调试和开发工具。我们可以利用这套工具在计算机上直接进行汇编语言的编辑、连接和调试。
在程序调试时,可以通过查看相关寄存器和存储器内容来判断程序的执行是否正确,通过修改相关寄存器和存储器的内容来改变程序,再执行,来修改和验证程序。
2)编写程序,加入到刚才建立工程文件中。在File下采用New命令,建立新文件,送入程序内容,并保存为ASM类型文件。在Project Windos窗口内,选中Source Group1后点击鼠标右键,在弹出的快捷菜单中选择Add files to Group “Source Group1”(向工程中添加源程序文件)命令,选择刚才创建单击Add命令即可把源程序文件添加到项目中。
MOVA,B
ADDCA,#00H ;将高位字节与进位相加,送到R6中,实现了数据的低位字节
MOVR6,A乘于两字节数据
NOP
MOVA,R0
MOVB,R3
MULAB
ADDA,R5
MOVR5,A
MOVA,B
ADDCA,R6
MOVR6,A
MOVA,R1
MOVB,R3
MULAB
ADDA,R6
MOVR6,A
MOVA,B
ADDCA,#00H
MOVR7,A;R7R6R5R4=1100E4B4H
SJMP$
END
四、实验心得