微机实验报告KEIL的使用与汇编语言上机操作Word文档格式.docx

上传人:b****2 文档编号:13473240 上传时间:2022-10-11 格式:DOCX 页数:11 大小:456.79KB
下载 相关 举报
微机实验报告KEIL的使用与汇编语言上机操作Word文档格式.docx_第1页
第1页 / 共11页
微机实验报告KEIL的使用与汇编语言上机操作Word文档格式.docx_第2页
第2页 / 共11页
微机实验报告KEIL的使用与汇编语言上机操作Word文档格式.docx_第3页
第3页 / 共11页
微机实验报告KEIL的使用与汇编语言上机操作Word文档格式.docx_第4页
第4页 / 共11页
微机实验报告KEIL的使用与汇编语言上机操作Word文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

微机实验报告KEIL的使用与汇编语言上机操作Word文档格式.docx

《微机实验报告KEIL的使用与汇编语言上机操作Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机实验报告KEIL的使用与汇编语言上机操作Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

微机实验报告KEIL的使用与汇编语言上机操作Word文档格式.docx

签字:

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

改为18H,R1改为26H,将第二次的结果再和第四个数相加,假如有进位,R4加1

4.最后R2储存的是低八位,R3保存的高八位,R4保存的总进位

20H--27H保存四个16位数

R2保存每次加法的低8位

R3保存每次加法的高8位

R0R1每次加法运算的两个数的地址

R4保存进位结果

19H18H两个16位数之后的数上下位的保存地址

A中间运算

四、流程图

五、源代码

Filename:

jiafa.asm

ORG0000H

MOV27H,#25H

MOV26H,#25H

MOV25H,#25H

MOV24H,#0E5H

MOV23H,#0F5H

MOV22H,#25H

MOV21H,#25H

MOV20H,#0F5H;

赋值

CLRC

MOVR2,#00H;

暂存每次加法的低位结果

MOVR3,#00H;

暂存每次加法的高位结果

MOVR4,#00H;

记录4个16位数相加的进位

MOVR0,#20H;

第一次相加

MOVR1,#22H

MOVA,R0

ADDA,R1

MOVR2,A;

低位相加和保存到R2

INCR0

INCR1;

地址加1,进展高位相加

ADDCA,R1

MOVR3,A;

高位相加和保存到R3

JNCJINW1;

如果有进位,R4加1

MOVA,R4

ADDA,#01H

MOVR4,A

JINW1:

CLRC;

将第一次相加的结果与第三个数相加

MOV18H,R2;

保存每次运算后的低位结果在18H

MOV19H,R3;

保存每次运算后的高位结果在19H

MOVR0,#18H;

将结果和新的数相加

MOVR1,#24H;

新数的地址

MOVR2,A

INCR1

MOVR3,A

JNCJINW2

JINW2:

CLRC;

将第二次相加的结果与第四个数相加

MOV18H,R2

MOV19H,R3

MOVR0,#18H

MOVR1,#26H

JNCJINW3

JINW3:

SJMP$

END

1.字节拆分、合并程序的调试:

第一步:

拆分为两个数

第二步:

转换为ASCII码

第三步:

取出两个ASCII码并合并

2.数据块填充程序调试:

从7000H开始赋值,每赋值一次,R0加1记录次数,A也加1

R0加到00H,完毕循环赋值

总共运行256次

四个数分别为25F5H,F525H,25E5H,2525H

观察每次相加之后各个存放器的值,进位的值,

25F5H与F525H相加,应该是11B1AH

19H18H处分别是1B1A,R4保存的进位为1

11B1AH与25E5相加,结果应该是140FFH

140FFH与2525H相加,结果应该是16624H

测试之后的结果为16624H,R4保存进位位,上下8位分别保存在R3,R2

七、思考题

1.在调试时,Registers窗口中可以查看Regs和Sys,分别是工作存放器和SFR

VIEW-MEMORYWINDOWS-MEMORY1/2/3/4,查看片RAM,输入D:

18H格式的语句,查看片外RAM,输入X:

3000H格式的语句,查看程序代码,输入C:

0100H格式的语句

Disassembly窗口可查看各程序指令存放的程序地址,在运用PC查表时可以用到,也可以查看指令的长度

2.字节拆分、合并:

(使用ADD指令)

MOV30H,#49H

MOVA,30H

ANLA,#0FH;

取出低位

ADDA,#30H;

变成ASCII码

MOV31H,A;

结果存于31H

ANLA,#0F0H

SWAPA;

取出高位

MOV32H,A;

结果存于32H

MOVA,31H;

取出低位的ASCII码

转为BCD

MOV33H,A;

存于33H

MOVA,32H;

取出高位的ASCII码

SWAPA

ADDA,33H;

高位低位相加,合并在一起

MOV33H,A;

把合并的数存在33H

3.CLRA改为MOVA,#FFH

INCA改为DECA

4.MOVDPTR,#7000H改为MOVDPTR,#7010H

CJNER0,#00H,FILL1改为CJNER0,#14,FILL1

5.在每条ADD或ADDC指令的后面加上一条DAA指令

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1