当前位置:首页 > 单片机作业答案
第三章第7题:
指出下列指令中哪些是非法的?如果非法请改正。 INC DPTR ;对 DEC DPTR ;错 MOV A,@R1 ;对 MOV A,@R2 ;错 MOV 30H,@R3 ;错 MOV 30,@R0 ;错 RL B ;错 JNZ A,NEXT ;错 JNB 08H,NEXT ;错 答:参考附录A。
第三章第九题:
试编写一段程序,其功能为:将33H~38H中6个单字节BCD码拼成3个压缩的BCD码存放在32H开始的单元中。 答案:
org 0000h ljmp start org 0100h start:
mov r0,#33h ;R0记录起始地址 mov r1,#32h ;R1记录转换后的存储单元起始地址 mov a,@r0 ;将33H中的数放到A中 mov r6,a inc r0 ;指向34H mov a,@r0 inc r0 ;指向35H swap a add a,r6 mov @r1,a ;33H和34H单元中的数据组合后放到32H当中 inc r1 ;指向33H mov a,@r0 ;将35H中的数据放到A中 inc r0 ;指向36H mov r6,a mov a,@r0 ;将36H当中的数据放到A中 inc r0 ;指向37H swap a add a,r6 mov @r1,a ;将35H和36H中的数据组合后放到34H当中 inc r1 ;指向34H mov a,@r0 ;将37H中的数据放到A中
inc mov mov swap add mov end
r0 r6,a a,@r0 a a,r6 @r1,a
;指向38H
;将38H中的数据放到A中
;将37H和38H的数据组合后放到34H当中
第四章第七题:
设有一个起始地址为FIRST+1的数据块,存放在内部RAM单元,数据块长度在FIRST单元而且不为0,要求统计该数据块中正偶数和负奇数个数,并将他们分别存放在PAPE单元和NAOE单元。试画出能实现上述要求的程序流程图和编出相应程序。 答案:
FIRST equ 55h PAPE equ 40h NAOE equ 41h ;这三个值可随意选取,这里选取以便能在软件中验证 org 0000h ljmp 0100h org 0100h
start: mov r0,#FIRST
mov r7,@r0 ;将数据块长度放到R7中 inc r0 ;r0中保存了数据起始地址 mov PAPE,#0 mov NAOE,#0
next: mov a,@r0
jb acc.7,negative ;如果为负数则跳到negative处进行处理,为正数则接着执行下面的语句 jb acc.0,kk ;为正数,若不为偶数则跳到kk处 inc PAPE ;为正偶数,则PAPE加1 sjmp kk
negative: jnb acc.0,kk ;为负偶数,跳到kk处进行处理
inc NAOE ;为负奇数,则NAOE加1
kk: djnz r7,next ;如果数据未检测完,继续检测
end
第四章第九题:
在内部RAM中,有一个以BLOCK为起始地址的数据块,块长在LEN单元,请用查表指令编写一个程序,先检查它们是否是16进制数中的A~F,若是16进制数中的A~F则把它们变为ASCII码;若不是,则把它们变为00H。 答案:
BLOCK equ 40h
LEN equ 10h org 0000h ljmp start org 0100h
ASCIIMAP:
db 00h,00h,00h,00h,00h,00h,00h,00h db 00h,00h,41h,42h,43h,44h,45h,46h start: mov r0,#BLOCK
mov r7,#LEN
next:
mov a,@r0 cjne a, #0Ah, nl1
nl1: jnc kk
cjne a,#0Fh,nl2 nl2: jc dispose
sjmp kk
dispose:
mov a,@r0 mov dptr,#ASCIIMAP movc a,@a+dptr mov @r0,a
kk:
inc r0 djnz r7,next end
第四章第十一题:
已知内部RAM的MA(被减数)和MB(减数)中分别有两个带符号数。请编一个减法程序,并把差存入RESULT和RESULT+1(低8位在RESULT单元)中。 答案:
MA equ 30h MA1 equ 31h MB equ 32h MB1 equ 33h RESULT equ 34h RESULT1 equ 35h org 0000h ljmp start org 0100h
start:
mov r3,#MA mov r4,#MA1 mov r6,#MB
mov mov mov acall
dsub:
mov cpl mov lcall ret
dadd:
mov mov mov xrl mov mov clr mov mov clr mov jc lcall mov jb dab1:
mov mov mov clr ret dabe: setb ret dab2:
lcall mov jnb lcall cpl sjmp nsub:
mov clr c subb mov mov
r7,#MB1 r4,#RESULT r3,#RESULT1 dsub a,r6 acc.7 r6,a dadd
a,r3 c,acc.7 20h,c a,r6 c,acc.7 a,r3 acc.7 r3,a a,r6 acc.7 r6,a dab2 nadd a,r3
acc.7,dabe a,20h acc.7,c r3,a ov ov nsub a,r3
acc.7,dab1 cmpt 20h dab1 a,r4 a,r7 r4,a a,r3
共分享92篇相关文档