单片机尝试编译一个程序到外部数据存储器2100h 单元中高4,位置1,剩余位...MOVPTR,编写如何实现一个以1000H 单元开头的程序?将A放入2100H 单元,即2100h 单元中高位4,其余位清零。
2、单片机题(求详细解答
movp2,# 20h movr0的高位地址,# 00h movxa的低位地址,@ r0取80H的地址内容。执行前两条指令是将地址放入寄存器;P2是高8位地址,R0是低8位地址。@R0用R0中的地址表示内存单元的内容,即80H;第三条指令是将片外2000H中的内容80H放入累加器A..
同意楼上的故事,单片机书里有详细讲解。你可以用keil51调试一下,就知道了。A中的内容是原00H中的内容。用过:MOVXA,@R0,表示外部数据存储器以“三总线”的形式与单片机相连。“三总线”的形式是用P2输出高8位地址,P0通过74373输出低8位地址,P0输入输出数据。所以MOVXA,@R0就是把2000H 单元的内容拿出来换80H。
movdptr,#2100hmova,#0f0hmovx@dptr,a .直接给他值ff00h就行了。MOVDPTR,# 2100H将2100h地址放入DPTR寄存器MOVA,# 0F0H将A的高四位清为1,低四位清为MOV@DPTR,A;将A放入2100H 单元,即2100h 单元中高位4,其余位清零。
别这么复杂;org 0000 hsjmpmainorg 0030h main:movdptr,# 1000h定义单元 MOVR1的第一个地址,# 2000H定义被传输的第一个地址单元 MOVR2,# 64h100 单元 data,十六进制表示为loop: movxa,@ dptrmovx @ R1,aincdptrincr1djnzr2,loops JMP $。
org 0000 hsjmpmainorg 0100h main:mov r0,# 1000H定义单元 MOVR1的第一个地址,# 2000H定义被传输的第一个地址单元 MOVR3,# 64h100条数据单元,十六进制表示为loop: movptr,r0movxa,@ dptrmovptr,r1movx @ dptr,a inc r0inc r1djnzr3。
文章TAG:2000h 储存 编写 单元 外部 编写一段程序将外部数据储存器2000h单元中=