文档详情

第3章8051指令与汇编程序设计.doc

发布:2017-08-30约2.57千字共4页下载文档
文本预览下载声明
第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的数据传
显示全部
相似文档