华中科技大学 单片微型计算机第四章习题答案Word格式文档下载.docx

上传人:b****7 文档编号:22674615 上传时间:2023-02-05 格式:DOCX 页数:14 大小:19.57KB
下载 相关 举报
华中科技大学 单片微型计算机第四章习题答案Word格式文档下载.docx_第1页
第1页 / 共14页
华中科技大学 单片微型计算机第四章习题答案Word格式文档下载.docx_第2页
第2页 / 共14页
华中科技大学 单片微型计算机第四章习题答案Word格式文档下载.docx_第3页
第3页 / 共14页
华中科技大学 单片微型计算机第四章习题答案Word格式文档下载.docx_第4页
第4页 / 共14页
华中科技大学 单片微型计算机第四章习题答案Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

华中科技大学 单片微型计算机第四章习题答案Word格式文档下载.docx

《华中科技大学 单片微型计算机第四章习题答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《华中科技大学 单片微型计算机第四章习题答案Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

华中科技大学 单片微型计算机第四章习题答案Word格式文档下载.docx

INCR0;

修改地址指针

INCDPTR

DJNZR2,LOOP

4.8完成(a+b)2的计算

ORG0000H

LJMPMAIN

MOVDPTR,#3000H

MOVXA,@DPTR;

取数a

MOVR2,A;

暂存a

取数b

ADDA,R2;

a+b

MOVB,A

MULAB;

(a+b)2->

A

;

分支,方法一:

CJNEA,#0AH,L1

SJMPL3

L1:

JCL2

SUBBA,#0AH

L2:

ADDA,#0AH

L3:

MOVDPTR,#3002H

SJMP$

分支,方法二:

MOVR7,A

CLRC

SUBBA,#10

JNZL1

MOVA,R7;

A=10,恢复A中的值

SJMPDONE

JNCDONE

ADDA,#20;

A<

10,由于此前A中减去了10,所以此处加上20

DONE:

MOVDPTR,#3002H;

A>

10

MOVX@DPTR,A

SJMP$

4.9方法一:

说明:

每一轮循环的大数存入累加器A中

ORG0030H

MOVDPTR,#1000H;

置地址指针初值

数据长度初值

MOVR4,#0;

暂存结果单元清零

MOVXA,@DPTR;

取数

MOVR3,A;

暂存

MOVA,R4;

CLRC;

比较

SUBBA,R3

JNCNEXT

MOVA,R3;

大数存入累加器A

SJMPNEXT1

NEXT:

ADDA,R3;

恢复累加器A中的值

NEXT1:

INCDPTR;

MOVR4,A

MOVDPTR,#1100H

MOVX@DPTR,A;

存结果

方法二:

ORG0000H

MOVR2,#99;

INCDPTR

MOVXA,@DPTR

DJNZR2,LOOP

方法三:

大数存入R3

ORG0000H

MOVR3,#0;

JCNEXT

MOVR3,A;

DJNZR2,LOOP

MOVA,R3

MOVDPTR,#1100H

4.10判断带符号数为正数或负数的指令组合有:

(1)JNZ+JBACC.7

(2)CJNEA,#7FH,L1+JC(JNC)(3)CJNEA,#0,L1+JBACC.7

错误的指令组合有:

(1)CJNEA,#0,L1+JC(JNC)

(2)SUBBA,#0+JC(JNC)

方法一:

;

one-存放大于零的数的个数;

two-存放等于零的

数的个数;

three-存放小于零的数的个数

ONEEQU30H

TWOEQU31H

THREEEQU32H

LJMPSTART

ORG0040H

START:

MOVONE,#0

MOVTWO,#0

MOVTHREE,#0

MOVDPTR,#2100H

MOVR5,#100

MOVXA,@DPTR

JNZL1

INCTWO;

零的个数加1

SJMPDONE

JBAcc.7,L2;

若用JC指令,则错误

INCONE;

正数的个数加1

INCTHREE;

负数的个数加1

DJNZR5,LOOP

SJMP$

方法二:

CJNEA,#80H,L1

JNCL2

JZL3

INCONE;

JZL1

ANLA,#80H

JZL2

4.12;

负数求补,需保持符号位不变,方法有:

XRLA,#7FH

INCA

CPLA

ADDA,#81H

ADDA,#1

SETBACC.7

MOVR1,#30H;

首地址

MOVR7,#100;

数据长度

LP1:

MOVA,@R1

JNBACC.7,LP2

XRLA,#7FH;

负数求补

INCA

LP2:

MOV@R1,A

INCR1;

DJNZR7,LP1

4-15方法一:

压缩BCD码转换为ASCII码

入口参数-压缩BCD码在A中,出口参数-高4为BCD码转化后的ASCII码在R6中,低4位BCD码转换后的ASCII码在R5中

数据逆序存放,即低字节存入低地址,高字节存入高地址

BCDASC:

PUSHR7

MOVR7,A

ANLA,#0FH;

低4位转换

ADDA,#30H

MOVR5,A

MOVA,R7

ANLA,#0F0H;

高4位转换

SWAPA

MOVR6,A

POPR7

RET

MOVR4,#5

MOVDPTR,#2000H;

源地址

MOVR3,#05H;

目的首地址低8位

PUSHDPL;

源地址保护

LCALLBCDASC

MOVDPL,R3

MOVA,R5

INCDPL

MOVA,R6

MOVR3,DPL

POPDPL

INCR3

DJNZR4,LOOP

MOVDPTR,#2000H

MOVR7,#5;

MOVR6,#05H;

目标地址低8位

MOVR5,#00H;

源地址低8位

MOVDPL,R5

INCR5

MOVR4,A;

数据送入R4保护

MOVDPL,R6

INCR6

LCALLBCDASC;

低4位转换成ASCII码

MOVA,R4

SWAPA

MOVDPL,R6

高4位转换成ASCII码

DJNZR7,LOOP

ANLA,#0FH;

屏蔽高4位,保留低4位

MOVX@DPTR,A;

存数据

RET

4.17参照教材P103例4.2.23

ORG1000H

SUBMB:

CLRC

MOVA,@R0;

取被减数

SUBBA,@R1;

相减

MOV@R0,A;

INCR1

JNCDONE

SETBF0;

若有借位,置位标志位

RET

4.26两个两位BCD码

BCDBIN:

MOVR0,#20H;

BCD码首地址

MOVR1,#30H;

二进制数首地址

MOVR3,#02H;

取BCD码

取高4位,屏蔽低4位

MOVB,#10

MULAB;

高4位×

MOVR2,A

MOVA,@R0

ANLA,#0FH;

取低4位,屏蔽高4位

ADDA,R2;

10+低4位

MOV@R1,A

修改地址指针

INCR0

DJNZR3,LOOP

两位BCD码转换为二进制数子程序,R1为二进制数地址指针,R0为BCD码地址指针

MOV@R1,#0

XCHDA,@R1

MOVB,#10

MULAB

ADDA,@R1

MOV@R1,A

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

当前位置:首页 > 高中教育 > 理化生

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

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