第3章8051指令与汇编程序设计.doc
文本预览下载声明
第3章 8051指令与汇编程序设计
1)作业题
8051系列微控制器有哪些寻址方式?简述每种寻址方式的寻址范围。
已知(R0)=32H,(A)=48H,(32H)=80H,(40H)=08H。指出执行下列程序段后,上述各单元内容的变化。
MOV A, @R0
MOV @R0, 40H
MOV 40H, A
MOV R0, #35H
已知(SP)=60H,子程序SUBTRN的首地址为0345H,现执行位于0123H的LCALL SUBTRN三字节指令后,(PC)=__ _,(61H)=_______,(62H)= ______。
编写程序,查找在内部RAM的20H~50H单元中出现00H的次数,并将查找的次数存入51H单元中。
若有两个无符号数x、y分别存放在内部存储器的50H、51H单元中,试编写一个程序实现x*10+y,结果送入52H、53H两个单元。
试编一采用查表法求1~20的平方数的子程序,已知x的值为1到20之间,存放在累加器A中,查得平方数高位存入R6、低位存入R7。
下列指令执行后,求(A)=?;PSW中的CY、OV、AC为何值。
当(A)=6BH,ADD A, #8CH
当(A)=6BH、CY =1,ADDC A, #79H
当(A)=6BH、CY =1,SUBB A, #0F9H
当(A)=6BH、CY =0,SUBB A, #8CH
2)思考题
简述子程序的作用,子程序调用的过程。子程序调用时为什么要进行保护现场和恢复现场?有几种方法?
简答:MOV、MOVX、MOVC指令有什么区别,分别用于哪些场合?
访问特殊功能寄存器SFR,可使用哪些寻址方式?
访问外部RAM单元,可使用哪些寻址方式?
读下面程序,指出执行各伪指令后相关单元对应的内容是什么?未知内容用“XX”表示。
ORG 0F00H
DS 05H
DB 0, 1, 4, 9
DW 1625H
DB ‘0’, ‘1’, ‘4’, ‘9’
END
6. 根据下面的各种条件,分别编写满足条件时,转到LABEL处的程序。
(1)A=10 (2)A10 (3)A=10 (4)A10
解答:
1)作业题
1.
有立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址共7种寻址方式。
寻址方式 寻址范围 立即寻址 片内RAM低128字节和SFR 寄存器寻址 R0~R7、A、DPTR、CY 寄存器间接寻址 片内外RAM 立即寻址 ROM 变址寻址 ROM 相对寻址 ROM 位寻址 位寻址区
2.
MOV A, @R0 ; A=80H
MOV @R0, 40H ;(32H)= 40H
MOV 40H, A ;(40H)= 80H
MOV R0, #35H ; R0=35H
3.
(PC)= 0345H (61H)=26 H (62H)= 01H
4.
MOV R0,#20H ; address
MOV R1,#31H ; counter
MOV 51H,#00H
COMP:
CJNE @R0,00H,NEXT
INC 51H
NEXT:
INC R0
DJNZ R1,COMP
END:
SJMP END
5.
MOV A,50H ;(A)= x
MOV B,0AH ;(B)= 10
MUL AB
ADD A,51H
MOV 53H,A ;(53H)为运算结果的低8位
MOV A,B
ADDC A,#00H
MOV 52H,A ;(53H)为运算结果的高8位
6.
SQUARE:
MOV DPTR,#TABLE
MOVC A,@A+DPTR
``````
ORG 0300H
TABLE:
DB 0,1,4,9,16,25,36,49,64,81,100,121,144,169,225,256,289,324,361,400
7.
a)(A)= 0F7H CY= 1 OV= 1 AC= 1
b)(A)= 0EBH CY= 0 OV= 1 AC= 1
c)(A)= 91H CY= 1 OV= 1 AC= 0
d)(A)= 0EFH CY= 1 OV= 1 AC= 1
2)思考题
1.
a)使用子程序可以避免书写同样的代码,还可以简化程序结构,节约存储单元;
b)子程序通过指令ACALL或LCALL加上子程序的符号地址进行调用,通过RET返回原程序;
c)子程序调用时可能会改变各工作寄存器、SFR等内存单元中的内容,所以要进行现场保护和恢复;
d)有三种方法进行现成保护:
切换工作寄存器组;2)堆栈暂存;3)存储器暂存。
2.
MOV是内部RAM的数据传
显示全部