3-2访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。
答:访问外部数据存储器可以用ramx指令来实现。
例如:movx a,@ri ;寄存器ri指向的片外ram单元中的内容送到累加器a中。
访问程序存储器可以用ramc指令来实现。
例如:movc a,@a+dptr ;rom中**地址单元中的内容送到累加器a中。
3-3试用下列3种寻址方式编程,将立即数ofh送入内部的30h单元中。
1) 立即寻址方式;(2)寄存器寻址方式;(3)寄存器间接寻址方式。
答:(1) 立即寻址方式:
mov 30h ,#0fh ;立即数0fh送30h
2) 寄存器寻址方式:
mov r5,#0fh ;立即数送工作寄存器(r0~r7都可以)
mov 30h,r5
3) 寄存器间接寻址方式:
mov r1,#30h ;数据地址指针30h送r1 (只能用r0、r1)
mov @r1, #0fh ;立即数送30h
注意:很多同学这样做:
mov @r0,#0fh
mov 30h,@r0
结果是将0fh单元的内容(什么数据不知道)送30h
3-4写出实现下列要求的指令式程序片断。
1) 将r0的内容传送到r1;
2) 内部的20h单元内容传送到寄存器r1;
3) 内部的20h单元的dy和d3位清零,其他位保持不变;
4) 外部ram的1000h单元内容传送到内部ram的60h单元中;
5) 外部ram的1000h单元内容传送到寄存器r2中;
6) 累加器高4位清零。
答:以下为各指令或程序片断:
1) mov a,r0
mov r1,a
注意:r0与r1不能直接送,要通过a转送。没有mov r1,r0这样的指令。
2) mov r1, 20h
3) 方法一:anl 20h ,#77h
方法二:clr 20h.3
clr 20h.7
有些同学用两条指令完成:
mov a,20h
anl a, #77h
这样做不仅比较麻烦,数据还没有送回20h!
4) mov dptr,#1000h
movx a,@dptr
mov 60h , a
(5) mov dptr, #1000h
mov a, @dptr
mov r2 , a
(6) anl a, #0fh
3-5试编写一段程序,将内部数据存储器的30h和31h单元内容传送到外部数据存储器的1000h和1001h单元中。
答:程序如下:
movx dptr,#1000h
mov a,30h
movx @dptr,a
inc dptr
mov a,31h
movx @dptr,a
3-6试编写一段程序,将外部数据存储器的40h单元中的内容传送到0100h单元中。
答:程序如下:
mov dptr ,#0040h
movx a ,@dptr
mov dptr ,#0100h
movx @dptr,a
3-11若(a)=e8h (ro)=40h ,(r1)=20h (r4)=3ah (40h)=2ch (20h)=ofh,试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指出cy,ac和ov的值。
1)mov a,@r0
2)anl 40h ,#0fh
3)add a,r4
4)swap a
5)dec @r1
6)xchd a,@r1
答:(1) (a)=2ch
2) (40h)=0ch
3) (a)=2ch cy=1 ac=1 ov=1
4) (a)=8eh
5) (r1)=0eh
6) (a)=efh
单片机作业
单片机测试一。第一部分选择题。一 单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的,请将其 填写在题前的括号内。错选 多选或未选均无分。1.下列关于单片机说法错误的是。单片机的cpu能处理8位二进制数据或 以及布尔运算。b.8051总共有256个ram单元,内部数据存储器为前128单元。...
单片机作业
单片机原理及应用 作业。1 叫原码 反码和补码?答 正数的反码和补码都是和原码相同。负数。在计算机中,负数以其正值的补码形式表达。什么叫补码呢?这得从原码,反码说起。原码 一个整数,按照绝对值大小转换成的二进制数,称为原码。比如 是5的原码。反码 将二进制数按位取反,所得的新二进制数称为原二进制数的...
单片机作业
作业21 eeprom e2prom 存储器与数据存储器 ram 相比较,有哪些相同点和不同点?eeprom e2prom 存储器与flash存储器 flash rom 相比较,又有哪些相同点和不同点?2 简述程序状态字 psw 程序计数器 pc 堆栈指针 sp 和数据指针寄存器 dptr 的主要功...