《单片机原理及应用》实验一 Keil的使用与汇编语言上机操作.docVIP

  • 0
  • 0
  • 约1.99千字
  • 约 3页
  • 2026-02-11 发布于天津
  • 举报

《单片机原理及应用》实验一 Keil的使用与汇编语言上机操作.doc

实验一Keil的使用与汇编语言上机操作

实验目的:熟悉Keil环境,通过在Keil环境下调试字节拆分、合并程序、数据块清零程序、加法程序,掌握汇编语言程序的调试方法,加深对BCD码、ASCII码、堆栈、寄存器、数据指针、汇编语言指令、机器码等基本概念的理解,为后续程序编制和调试打下基础。

实验内容:

1.掌握Keil环境的使用

1)字节拆分、合并:调试e421.asm程序,观察相关寄存器和单元的内容。

2)数据块填充:调试fill.asm程序,观察相关寄存器和单元的内容。

2.编写两个十六位数的加法程序。

有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。

思考题:

怎样查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容?Disassembly窗口有何作用?

字节拆分、合并还有哪些方法,举一例说明。

3.若按递减1规律填充数据块,应如何修改程序?

4.若从7010H单元开始,连续填充20个字节,应该如何修改程序?

5.若完成双字节BCD码加法,应如何修改程序?

字节拆分、合并程序

Filename:e421.asm

Description:1字节BCD码转换为2字节ASCII

2字节ASCII码转化为1字节BCD码

Date:

Designedby:

Sourceused:30H:BCDdata

31H,32H:ASCIIdata

31H,32H-33H

ORG0000H

LJMPMAIN

ORG0100H

MAIN: MOVSP,#40H;赋堆栈指针

MOV30H,#49H;30H单元赋值

MOVR0,#32H;R0指针赋值

MOV@R0,#0;32H单元清零

MOVA,30H

XCHDA,@R0;拆分字节

ORL32H,#30H;转换为ASCII

SWAPA

ORLA,#30H;转换为ASCII

MOV31H,A;结果存于31H单元

MOVA,31H ;从31H单元取值

ANLA,#0FH ;转换为BCD

SWAPA

MOV33H,A ;结果存于33H单元

MOVA,32H ;从32H单元取值

ANLA,#0FH ;转换为BCD

ORL33H,A ;合并字节

HERE: SJMPHERE;踏步

END

数据块填充程序:将片外RAM7000H-70FFH单元按一定规律填充

Filename:fill.asm

Date:2011.8.20

Designedby:CDH

Sourceused:R0:计数器

DPTR:片外数据指针

ORG0000H

LJMPMAIN

ORG 0100H

MAIN: MOVSP,#40H

FILL: CLRA;A寄存器清零

MOVR0,#00H ;设循环计数器

MOVDPTR,#7000H ;设数据指针

FILL1: MOVX@DPTR,A ;传送到片外RAM

INCA ;A内容加1

INC DPTR ;修改数据指针

INCR0 ;修改循环计数器

CJNER0,#00H,FILL1 ;判断是否结束

HERE: SJMPHERE ;原地踏步

END

文档评论(0)

1亿VIP精品文档

相关文档