单片机第三章作业正确答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章作业

1、什么是指令系统、机器语言和汇编语言?

答:指令系统:指令系统是机器提供给用户编写程序的一组指令集,指令系统描述了单片机所有运算和控制的逻辑功能,不同的机器指令系统是不同的。

机器语言:机器语言是计算机执行命令时直接读取的代表一定功能的二进制码。是由汇编语言经过编译后形成的具有特定规范的二进制数字序列。

汇编语言:采用助记符形式编写的程序,汇编语言一般来说面对的对象是用户,是容易读容易记的,是单片机支持的能完成指定功能的指令系列,构成汇编语言程序的是汇编语句。

2、在单片机应用中广泛使用何种语言?它们能直接执行吗?为什么?

答:在单片机应用中广泛使用的是汇编语言。它们不能直接执行,得先转换成机器语言,再执行。

原因:汇编语言(Assembly Language)是面向机器的程序设计语言.汇编语言是一种助记符形式的设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。用汇编语言编写的程序,要由一种程序将汇编语言翻译成机器语言,机器才能执行,汇编语言把汇编程序翻译成机器语言的过程称为汇编。这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。

5、说明十进制调整的原因和方法。

答:为了方便十进制数的计算,指令系统中提供了一组专门用于十进制数的调整指令。通常表示十进制数使用的BCD码有两种格式即组合的BCD码(Packed BCD Format)和非组合的BCD码(Unpacked BCD Format),也可以称作压缩BCD码和非压缩BCD码。

组合的BCD码用4位二进制数表示一个十进制数位,整个十进制数形式为一个顺序的以4位为一组的数串。而非组合BCD码则以8位为一组表示一个十进制数位,8位中的低4位表示BCD码,高4位没有意义。

在进行BCD码的加减法运算时,如果有进位,会影响PSW的Cy和AC位,根据这两个标志位的情况,调整加减运算的结果,使之变成正确的BCD码结果,调整的具体做法是:

Cy AC 结果+

0 0 00000000

0 1 00000110

1 0 01100000

1 1 01100110

如果没有进位,而相加的结果超过9,则在各位上也要加上相应的06H

8、试分析执行以下程序段后各寄存器的值。

MOV SP,#3AH

MOV A,#20H

MOV B,#90H

PUSH A

PUSH B

POP A

POP B

答: (1) MOV SP,#3AH (SP)=3AH

(2) MOV A,#20H (A)=20H

(3) MOV B,#90H (B)=90H

(4) PUSH A (3BH)=20H,(SP)=3BH

(5) PUSH B (3CH)=90H,(SP)=3CH

(6) POP A (A)=90H,(SP)=3BH

(7) P0P B (B)=20H,(SP)=3AH

9、已知(A)=7AH,(R0)=30H,(30H)=A5H,(PSW)=80H,请填写各条指令的执行结果。

(1) XCH A,RO (2)XCH A,30H

(3) XCH A,@RO (4) SWAP A

(5) ADD A,RO (6) ADD A,30H

(7) ADD A,#30H (8) SUBB A,#30H

答:(1) XCH A,R0 (A)=30H,(R0)=7AH

(2)XCH A,30H (A)=A5H,(30H)=7AH

(3) XCH A,@R0 (A)=A5H,((R0))=7AH

(4) SWAP A (A)=A7H

(5) ADD A,R0 (A)=AAH

(6) ADD A,30H (A)= 1FH------Cy=1

(7) ADD A,#30H (A)=AAH

(8) SUBB A,#30H (A)=4AH

11、已知(A)=83H,(R0)=17H,(17H)=34H,请写出执行完下列程序段后A的内容。

ANL A,#17H

ORL 17H,A

XRL A,@R0

CPL A

答:(1)、 ANL A,#17H ; (A)=03H

(2)、 ORL 17H,A ; (17H)=37H

(3) XRL A,@R0; (A)=37H

(4)、 CPL A; (A)=C8H

12、阅读些列程序说明其功能

MOV R0,#dam

MOV A,@R0

RL A

MOV R1,A

RL A

RL A

ADD A,R1

MOV R0,A

程序的功能:限定地址dam中的数据小于十进制的25,则程序的功能是将该地址中的数据乘以10,并送回该地址。

13、已知两个十进制数分别在内部RAM的40H单元和50H单元开始存放(低位在前),其字节长度存放在内部RAM的30H单元中。编程实现两个十进制数求和,并把结果存放在40H 开始的单元中。

答:(1)设两个十进制数均为压缩BCD码的形式。存储时为每字节:高位BCD低位BCD.

ORG 2000H

START:MOV R0,#40H

MOV R1,#50H

MOV R2,30H

CLR C

MING:MOV A,@R0

ADDC A,@R1

DAA

MOV @R0,A

INC R0

INC R1

DJNZ R2,MING

MOV 20H,C

SJMP $

END

执行结果,压缩BCD码格式,C为最高位1或者0,其余顺序从40H开始的数据存放:(40H):十位个位,(41H):千位百位,……

(2)设十进制数为非压缩BCD码,则其码制为[0000(四位BCD)]

ORG 2000H

START:MOV R0,#40H

MOV R1,#50H

MOV R2,30H

CLR C

MING:MOV A,@R1

ANL A,#0FH

MOV @R1,A

MOV A,@R0

ANL A,#0FH

ADDC A,@R1

DAA

JB PSW6,INCS0;如果相加D3向D4有进位则说明有溢出

CLR C

SJMP MING1

INCS0:SETB C

MING1:ANL A,#0FH

MOV @R0,A

INC R0

INC R1

DINZ R2,MING

SJMP $

END

程序执行的结果:非压缩BCD码格式,C为最高位,(40H):个位;(41H):十位,……

相关文档
最新文档