《微机原理及应用》练习册答案 下载本文

(2)变址寻址只能对移定存储器寻址,其指令只有三条: MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR

前二条为查表指令,后一条为无条件转移指令

3.简述中断响应的主要内容。

由硬件自动生成一条调用指令LCALL转去中断服务,具体操作为: (1)将程序计数器PC的内容(断点)压栈

(2)将中断入口地址装入PC,转去执行中断服务程序

4.简述汇编语言中的标号有什么规定?

(1)标号由1—8字符组成,头一个字符必须是字母。 (2)不能使用汇编语言已定义的符号。 (3)标号后必须跟冒号:

(4)同一标号在一个程序中只能定义一次。

三、读程题:

1.执行下列程序段中第一条指令后,(1)(P1.7)=____ (P1.3)=_____, (P1.2)=_________;执行第二条指令后,(2)(P1.5)=_________,(P1.4)=_________,(P1.3)=_________。 ANL P1,#73H ORL P1,#38H

(1)(P1,7)=0,,(P1.3)=0,(P1.2)=0 (2)(P1.5)=1,(P1.4)=1,(P1.3)=1

2.下列程序段执行后,(A)=_________,(B)=_________。 MOV A,#0FBH MOV B,#12H DIV AB

(A)=0DH(或13) (B)=11H(或17)

25

3. 下列程序段执行后,(R0)=________,(7EH)=________,(7FH)=_________。 MOV R0,#7FH MOV 7EH,#0 MOV 7FH,#40H DEC @R0 DEC R0 DEC @R0

(R0)=7EH,(7EH)=FFH,(7FH)=3FH

4.已知(SP)=09H,(DPTR)=4567H,在执行下列指令后,(SP)=_________,内部RAM(0AH)=_________,(0BH)=_________ PUSH DPL PUSH DPH

(SP)=0BH (0AH)=67H (0BH)=45H

五、编程题:

1.请使用位操作指令,实现下列逻辑操作: P1.5=ACC.2∧P2.7∨ACC.1∧P2.0

先进行与操作,再进行或操作程序如下: MOV C,ACC.1 ANL C,P2,0 MOV 12H,C

MOV,C,A CC.2 ANL C,P2.7 ORL C,12H MOV P1.5,C RET

2.在外部RAM首地址为TABLE的数据表中有10个字节数据,请编程将每个字节的最高 位无条件地置1。

26

MOV R2,#10

MOV DPRT,#TABLE

LOOP: MOV X A,@DPRT;取一数 ORL A,#80H;最高位置1

MOV X @DPTR,A;写回原地址 1NC DPTR;处理下一单元 DJNZ R2,LOOP RET

3.已知内部RAM 30H单元开始存放20H个数据,将其传送到外部RAM的0000H单元开 始的存储区,请编程实现。

MOV R0,#30H

MOV R1,#00H MOV R2,#20H

LOOP: MOV A,@R0;取数 MOV X @R1,A;存数 1NC R0 1NC R1

DJNZ R2,LOOP RET

4.已知8个无符号数之和存于R3R4,求其平均值,结果仍存于R3R4中,请编程实现(R3 为高字节)。

利用移位指令作除8操作,程序如下: MOV R2,#3 LOOP:CLR C MOV A,R3

RRC A ;高字节除以2,末位移入C,高位补0 MOV R3,A ;暂存高字节 MOV A,R4

RRC A ;低字节除以2,高字节末位移入低字节高位 MOV R3,A DJNZ R2,LOOP RET

27

5.两个字符串分别存放在首地址为42H和52H的内部RAM中,字符串长度放在41H单元, 请编程比较两个字符串。若相等,则把数字00H送40H单元,否则把0FFH送40H单元。

有一个字节不等,整个字符串不相等,所有字节相等,两字串才相等 MOV R0,#42H MOV R1,#52H LOOP:MOV A,@R0

CLR C ;不相等,FFH→40H SUBB A,@R1

JNZ LOOP1 ;相等时,比较下一字节 INC R0 INC R1

DJNZ 41H,LOOP

MOV 40H,#0 ;所有字符均相等,则两字串相等。 RET

LOOP1:MOV 40H,#0FFH RET

28