习题三答案单片机汇编程序设计基础Word文档格式.doc
- 文档编号:14176146
- 上传时间:2022-10-19
- 格式:DOC
- 页数:6
- 大小:49KB
习题三答案单片机汇编程序设计基础Word文档格式.doc
《习题三答案单片机汇编程序设计基础Word文档格式.doc》由会员分享,可在线阅读,更多相关《习题三答案单片机汇编程序设计基础Word文档格式.doc(6页珍藏版)》请在冰豆网上搜索。
、源操作数
和
注释等部分。
7、MCS-51汇编语言源程序的扩展名为
.asm
。
二、程序设计题
1、求50H与40H单元内容之和,结果存入20H,进位位存入2lH。
解答:
MOV
A。
50H
ADD
A,40H
20H.A
CLR
A
ADDCA.#00H
21H,A
SJMP
$
2、编程实现双字节加法运算(R1)(R0)+(R7)(R6)一(31H)(30H)。
MOV
A.R0
A,R6
30H.A
A,R1
ADDC
A.R7
31H,A
SJMP
3、试编写程序,求出内部RAM20H单元中的数据含“1”的数,并将结果存入21H单元。
解答
21H,#00H
A,20H
CLR
C
R7,#08H
LOOP:
RLC
JNC
NEXT
INC
21H
NEXT:
DJNZ
R7,LOOP
4、试编写程序,将内部RAM的20H~2FH共16个连续单元清零。
R0,#20H
R7,#10H
A
@R0,A
R0
DJNZ
R7,NEXT
5、编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。
STRAT:
R0,#30H
R7,#0FH
DPTR,#3000H
LOOP:
A,@R0
MOVX
@DPTR,A
INC
DPTR
RET
6、片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和<256).
解答:
ADDIO:
R0,30H
R7,#9
ADD
30H,A
7、试编写程序,查找在内部RAM的30H~50H单元中出现FFH的次数,并将查找的结果存入51H单元。
51H,#00H
MOVR1,#30H
MOVR7,#21H
CJNE
@R1,#0FFH,NEXT
INC51H
R1
8、设单片机的fosc=6MHz,编写实现100ms延时的子程序。
DELAY:
R7,#64H
A0:
R6,#0FAH
R6,$
R7,A0
RET
9、从内部RAM的30H单元开始存放一组用补码表示的带符号数,其数目以存放在20H单元。
编写程序统计出其中的正数、0和负数的数目,并奖结果分别存入21H、22H、23H单元。
MOV22H,#00H
MOV23H,#00H
JZ
NEXT1
JB
ACC.7,NEXT2
INC23H
NEXT3
NEXT2:
NEXT1:
22H
NEXT3:
INCR0
DJNZ20H,LOOP
SJMP$
10、在程序存储器中从tab开始的16个单元连续存放0-15的平方值,设计程序,任意给一个数x(0≤x≤15),查表求出z的平方值,并把结果存入y单元。
设x单元为30H,Y单元为31H。
文件名:
a.asm,查表求x的平方值,X的值在0~15之间。
ORG
3000H
DPTR,#tab
A,X
MOVCA,@A+DPTR
y,A
tab:
DB00H,01H,04H,09H,10H,19H,24H,31H
DB40H,51H,64H,79H,90H,0A9H,0C4H,0E1H
X
DATA30H
Y
DATA
31H
END
11、从XX单元开始,连续存放10个无符号数,设计程序,从中找出最大值送入yy单元。
设XX单元为40H,YY单元为30H。
ORG0020H
R0.#xx
B,@R0
R7.#09H
LOOP:
A,B
C
SUBB
A,@R0
JNC
NEXT:
R7,LOOP
YY,B
XXDATA
40H
YYDAIA
30H
END
12、从x单元开始,连续存放30个无符号数,统计奇数和偶数的个数,并分别存入y和z单元。
设x单元为30H,Y单元为50H,z单元为51H。
ORG
2000H
START:
R1,#00H
R2,#00H
R7,#1EH
R0,#X
JNB
ACC.0,NEXT
A1
INCR2
Al:
y,R1
Z,R2
x
y
DATA50H
z
5lH
13、从x单元开始,连续存放30个带符号数,求出各个数的绝对值,将结果存入原单元。
设x单元为30H
START:
R7,#1EH
R0,#X
MOVA,@R0
ACC.7,NEXT
CPL
X
DATA
14、用查表法编一子程序,将R3中的BCD码转换成ASCII码.
解:
MAIN:
A,R3
;
待转换的数送A
DPTR,#TAR
表首地址送DPTR
MOVC
A,@A+DPTR
查ASCII码表
R3,A
查表结果送R3
TAR
DB
30H,31H,32H,33H,34H
DB
35H,36H,37H,38H,39H
15、片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中.
R0,#40H
数据块首地址送R0
R7,#09H
比较次数送R7
MOV
A,@R0
取数送A
R0
30H,@R0
取数送30H
CJNE
A,30H,NEHT
(A)与(30H)相比
BIE1
(A)≥(30H)转BIR1
A,30H
(A)<(30H),大数送A
BIE1:
R7,LOOP
比较次数减1,不为0,继续比较
50H,A
比较结束,大数送50H
RET
16、利用调子程序的方法,进行两个无符号数相加。
请编主程序及子程序。
解
用R0和R1作数据指针,R0指向第一个加数,并兼作“和”的指针,R1指向另一个加数,字节存放到R2中作计数初值。
主程序:
JAFA:
R0,#20H
指向加数最低字节
MOV
R1,#29H
指向另一加数最低字节
R2,#04H
字节数作计数值
ACALL
JASUB
调用加法子程序
AJMP
RTE
多字节加法子程序:
JASUB:
JASUB1:
取出加数的一个字节(4B无符号数加数)
ADDC
A,@R1
加上另一数的一个字节
MOV
@R0,A
保存和数
INC
指向加数的高位
R1
指向另一加数的高位
DJNZ
R2,JASUB1
全部加完了吗?
RET
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 答案 单片机 汇编程序 设计 基础