思考题与习题4及答案赵晓安.docx

上传人:b****1 文档编号:2959349 上传时间:2023-05-05 格式:DOCX 页数:14 大小:23.25KB
下载 相关 举报
思考题与习题4及答案赵晓安.docx_第1页
第1页 / 共14页
思考题与习题4及答案赵晓安.docx_第2页
第2页 / 共14页
思考题与习题4及答案赵晓安.docx_第3页
第3页 / 共14页
思考题与习题4及答案赵晓安.docx_第4页
第4页 / 共14页
思考题与习题4及答案赵晓安.docx_第5页
第5页 / 共14页
思考题与习题4及答案赵晓安.docx_第6页
第6页 / 共14页
思考题与习题4及答案赵晓安.docx_第7页
第7页 / 共14页
思考题与习题4及答案赵晓安.docx_第8页
第8页 / 共14页
思考题与习题4及答案赵晓安.docx_第9页
第9页 / 共14页
思考题与习题4及答案赵晓安.docx_第10页
第10页 / 共14页
思考题与习题4及答案赵晓安.docx_第11页
第11页 / 共14页
思考题与习题4及答案赵晓安.docx_第12页
第12页 / 共14页
思考题与习题4及答案赵晓安.docx_第13页
第13页 / 共14页
思考题与习题4及答案赵晓安.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

思考题与习题4及答案赵晓安.docx

《思考题与习题4及答案赵晓安.docx》由会员分享,可在线阅读,更多相关《思考题与习题4及答案赵晓安.docx(14页珍藏版)》请在冰点文库上搜索。

思考题与习题4及答案赵晓安.docx

思考题与习题4及答案赵晓安

思考题与习题4及答案

4-1试编程实现将20H单元的两位BCD数相乘,结果以BCD码的形式存于21H单元当中。

4-1-1ORG0000H

MOV20H,#56H

MOVA,20H

ANLA,#0FH

MOVB,A

MOVA,20H

ANLA,#0F0H

SWAPA

MOVR2,A

DECB

LOOP:

ADDA,R2

DAA

DJNZB,LOOP

MOV21H,A

SJMP$

END

4-1-2

ORG0000H

MOV20H,#56H

MOVA,20H

MOVR0,#21H

MOV21H,#0

XCHDA,@R0

MOVB,@R0

SWAPA

MOVR2,A

DECB

LOOP:

ADDA,R2

DAA

DJNZB,LOOP

MOV21H,A

SJMP$

END

4-1-3错误做法

ORG0000H

MOV20H,#56H

MOVA,20H

ANLA,#0FH

MOVB,A

MOVA,20H

ANLA,#0F0H

SWAPA

MOVR2,A

MULAB;(A)=1EH

DAA;(A)=24HERROR

MOV21H,A

SJMP$

END

4-2设一个加数在50H~52H单元中,另一个加数在53H~55H中,进位存放在位地址00中,

试编程实现两数求和。

ORG000H

ONEDATA50H

TWODATA53H

WEIBIT00H

MOVR0,#ONE

MOVR1,#TWO

;MOVC,WEI

CLRC

MOVR2,#3

LOOP:

MOVA,@R0

ADDCA,@R1

MOV@R0,A

INCR0

INCR1

DJNZR2,LOOP

MOVWEI,C

SJMP$

END

4-2-2

ORG0000H

ONEDATA50H

TWODATA53H

WEIBIT00H

MOVR0,#ONE

MOVR1,#TWO

CLRC

MOVR2,#3

SETBRS0

MOVR0,#58H

CLRRS0

LOOP:

MOVA,@R0

ADDCA,@R1

INCR0

INCR1

SETBRS0

MOV@R0,A

INCR0

CLRRS0

DJNZR2,LOOP

MOVWEI,C

SJMP$

END

4-3试用除法指令将20H单元的两位BCD码变成ASCII码后存入21H和22H单元。

4-3

ORG0000H

MOV20H,#67H

MOVA,20H

MOVB,#10H

DIVAB

ADDA,#30H

MOV21H,A

ORLB,#30H

MOV22H,B

SJMP$

END

4-4从20H单元开始存放一组带符号数,其数目已存在1FH单元。

要求统计出大于0、小于0和等于0的个数并存于ONE、TWO、THREE三个单元。

4-4

ORG0000H

ONEEQU30H

TWOEQU31H

THREEEQU32H

NUMEQU1FH

MOVNUM,#0FH

MOVR0,#20H;-1,2,34,0A0H,0....

MOVR1,#ONE

LOOP:

MOV@R1,#0

INCR1

CJNER1,#34H,LOOP

LOOP1:

MOVA,@R0

JZMTHREE

JBACC.7,MTWO

INCONE

SJMPDJNZZ

MTHREE:

INCTHREE

SJMPDJNZZ

MTWO:

INCTWO

DJNZZ:

INCR0

DJNZNUM,LOOP1;NUM=0FH

SJMP$

END

4-5在用JMP指令实现128分支的程序中,试用LJMP代替AJMP指令。

修改后的程序有何特点?

最多能实现多少分支?

4-5

AJMP指令表128分支占128*2=256字节MEMORY

LJMP指令表可以实现256/3=85个分支

特点:

各分支可在64KB存储器中转移。

4-6设自变量X为一无符号数,存放在内部RAM的VAX单元,函数Y存放在FUNC单元,请编出满足如下关系的程序:

XX≥50

Y=5X50>X≥20

2XX<20

4-6

ORG0000H

VAXEQU30H

FUNCEQU31H

MOVVAX,#55;15;20;25;50;55

MOVA,VAX

CJNEA,#20,DO1

DO1:

JNCDO2

MOVB,#2

MULAB

SJMPMEM

DO2:

CJNEA,#50,DO3

DO3:

JNCMEM

MOVB,#5

MULAB

MEM:

MOVFUNC,A

SJMP$

END

X

Y

X

Y

15

2X=30=14H

50

X=50=32H

20

5X=100=64H

55

X=55=37H

25

5X=125=7DH

4-7外部RAM从2000H到2100H有一数据块,请编出将它们传送到外部RAM3000H到3100H区域的程序。

4-7ORG0000H

MOVDPTR,#2000H

MOVP2,#30H

MOVR0,#00H

MOVR2,#0

LOOP:

MOVXA,@DPTR

MOVX@R0,A

INCDPTR

INCR0

DJNZR2,LOOP;0—FF--0

MOVXA,@DPTR;(DPTR)=2100H

INCP2;31H

MOVX@R0,A

SJMP$

END

4-8在内部RAM中,有一个以BLOCK为始址的数据块,块长在LEN单元。

请用查表指令编一程序,先检查它们若是16进制中的A~F,则把它们变为ASCⅡ码;若不是,则把它们变为00H。

4-8

BLOCKEQU31H

LENEQU30H

NEQU30

ORG0000H

MOVR0,#BLOCK

MOVLEN,#N

MOVR2,LEN

LOOP:

MOVA,@R0

CJNEA,#0AH,DO1

DO1:

JNCDO2

SJMPDO5

DO2:

CJNEA,#0FH,DO3

SJMPDO4

DO3:

JCDO4

DO5:

MOVA,#0

SJMPNEXT

DO4:

MOVDPTR,#TAB

CLRC

SUBBA,#0AH

MOVCA,@A+DPTR

NEXT:

MOV@R0,A

INCR0

DJNZR2,LOOP

SJMP$

TAB:

DB'A','B','C','D','E','F'

END

4-9试编写一个子程序将字符串:

“MCS-51Microcntrol”装入外部RAM8000H开始的显示缓冲区。

4-9

ORG0000H

MOVDPTR,#TAB

MOVP2,#80H

MOVR0,#00H

MOVR2,#19

LOOP:

MOVA,#0

MOVCA,@A+DPTR

MOVX@R0,A

INCR0

INCDPTR

DJNZR2,LOOP

SJMP$

tab:

DB'MCS-51Microcontrol'

END

4-10将内部RAM的AAA单元中8位无符号二进制数转换成用BCD码表示的十进制数。

(要求用连续除10的方法实现)

4-10

ORG0000HORG1000H

AAADATA0FFHAAAEQU0FFH

MOVA,#AAAMOVA,#AAA

MOVB,#0AHMOVR0,#30H

DIVABMOVB,#0AH

MOV30H,BDIVAB

MOVB,#0AHMOV@R0,B

DIVABINCR0

MOV31H,BJNZLOOP

MOV32H,ASJMP$

SJMP$END

END

4-12求8个数的算数平均值Y=(∑Xi)/8(i=0,…7)

ORG0000H

MOVSP,#6FH

CALLZHISHU

MOVR2,#0

;QIUHEA

MOVR3,#0

;QIUHEB

MOVR0,#30H

MOVR4,#08

LOOP:

MOVA,@R0

JZNEXT

MOVB,#08H

DIVAB

ADDA,R2

MOVR2,A

MOVA,B

ADDA,R3

MOVR3,A

NEXT:

INCR0

DJNZR4,LOOP

MOVA,R3

MOVB,#08H

DIVAB

ADDA,R2

MOVR2,A

MOVR3,B

SJMP$

ZHISHU:

MOV30H,#0FFH

MOV31H,#0FFH

MOV32H,#0FFH

MOV33H,#0FFH

MOV34H,#0FFH

MOV35H,#0FFH

MOV36H,#0FFH

MOV37H,#0FFH

MOV38H,#0FEH;FH

MOV39H,#0FFH

RET

END

4-14设逻辑运算表达式为

原式为上式,印书成下式:

其中变量A、B、C分别为P1.0、P1.4、定时器溢出标志TF1,D、E、F分别为22H.2、22H.3的位地址、外部中断标志IF1,输出变量Y为P1.5,请编写程序用软件方法实现上述逻辑功能。

4-14-1

A1BITP1.0

B1BITP1.4

C1BITTF1

DBIT22H.2

EBIT22H.3

FBITIE1

YBITP1.5

ORG0000H

SETBA1

;SETBB1

;SETBC1

;SETBD

;SETBE

;SETBF

;CLRA1

CLRB1

CLRC1

CLRD

CLRE

CLRF

MOVC,B1

ORLC,C1

CPLC

ANLC,A1

MOVF0,C

MOVC,E

ORLC,F

CPLC

ANLC,D

ORLC,F0

MOVY,C

SJMP$

END

4-14-2

A1BITP1.0

B1BITP1.4

C1BITTF1

DBIT22H.2

EBIT22H.3

FBITIE1

YBITP1.5

ORG0000H

SETBA1

;SETBB1

SETBC1

;SETBD

;SETBE

;SETBF

;CLRA1

CLRB1

;CLRC1

CLRD

CLRE

CLRF

MOVC,A1

ANLC,/C1

ANLC,/B1

MOVF0,C

MOVC,D

ANLC,/F

ANLC,/E

ORLC,F0

MOVY,C

SJMP$

END

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2