4.2 数据传送指令

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

新编电类专业计算机基础4.2数据传送指令数据传送指令数据传送指令共28条,分为4类。内部数据传送指令外部数据传送指令堆栈操作指令数据交换指令目录内部数据传送指令堆栈操作指令外部数据传送指令数据交换指令内部数据传送指令数据传送发生在片内,助记符为“MOV”,通用格式为:MOV目的操作数,源操作数改变不变类似“Copy”而非“Cut”传送拷贝F盘(电影)E盘内部数据传送指令内部数据传送指令①立即寻址传送指令②寄存器寻址传送指令③直接寻址传送指令④寄存器间接寻址传送指令共28条,根据寻址方式不同,分为4类。立即寻址传送指令指令中包含有立即数的为立即寻址传送指令。MOV目的操作数,源操作数立即数不能被修改,只能作源操作数不同类型的传送指令就是将立即数、直接地址、寄存器、间接寄存器分别放于目的及源操作数进行排列组合立即寻址传送指令指令格式指令功能机器码MOVA,#dataMOVRn,#dataMOV@Ri,#dataMOVdirect,#data#data:8位立即数;(A)data01110100,dataRn:工作寄存器R0~R7;周期(Rn)dataRn与机器码对应关系指令机器码MOVR0,#data01111000MOVR1,#data01111001MOVR2,#data01111010…………MOVR6,#data01111110MOVR7,#data01111111带有工作寄存器R0~R7的指令翻译成机器码都存在上述对应关系规律性立即寻址传送指令指令格式指令功能机器码MOVA,#dataMOVRn,#data周期MOV@Ri,#dataMOVdirect,#data#data:8位立即数;(A)data01110100,dataRn:当前选中的R0~R7;(Rn)data01111rrr,dataRi:R0或R1;((Ri))data0111011i,data范例MOVR0,#78HMOV@R0,#55HR0=78H(地址值)0111011001010101操作码立即数程序存储器片内RAM78H…………R00111100001010101执行过程:(78H)55H将立即数55H传送到R0指定的地址单元78H。找到地址立即寻址传送指令指令格式指令功能机器码MOVA,#dataMOVRn,#data周期MOV@Ri,#dataMOVdirect,#data#data:8位立即数;(A)data01110100,dataRn:当前选中的R0~R7;(Rn)data01111rrr,dataRi:R0或R1;((Ri))data0111011i,datadirect:直接地址(片内RAM或SFR)。(direct)data01110101,direct,data范例MOVP1,#55HSJMP0003H(P1)=55H原地跳转0111010110010000操作码直接地址程序存储器01010101立即数执行过程:SFR90H01010101将立即数55H传送到直接地址90H。立即数寻址传送指令指令格式指令功能机器码MOVA,#dataMOVRn,#data周期MOV@Ri,#dataMOVdirect,#data#data:8位立即数;(A)data01110100,dataRn:当前选中的R0~R7;(Rn)data01111rrr,dataRi:R0或R1;((Ri))data0111011i,datadirect:直接地址(片内RAM或SFR)。(direct)data01110101,direct,data1112指令格式指令功能机器码周期寄存器寻址传送指令指令中包含有寄存器的为寄存器寻址传送指令。11MOVA,RnMOVRn,A(A)(Rn)11101rrr(Rn)(A)11111rrr2MOVdirect,Rn(direct)(Rn)10001rrr寄存器与累加器A间进行数据传送寄存器内容传送入直接地址范例MOVR0,#78HMOVP1,R0SJMP0004H将寄存器内容78H传送入直接地址90H。R0=78H(90H)=(R0)=78H原地跳转执行过程:10001000操作码程序存储器10010000直接地址片内RAMR0SFR90H0111100001111000直接寻址传送指令指令格式指令功能机器码周期直接地址单元与累加器A间进行数据传送指令中包含有直接地址的为直接寻址传送指令。MOVA,directMOVdirect,A(A)(direct)11100101,direct(direct)(A)11110101,direct11MOV,direct(Rn)(direct)10101rrr,direct2MOV,direct1(direct2)(direct1)10000101direct1,direct22MOV,direct((Ri))data1010011i,direct2直接地址单元中内容传送到寄存器、寄存器所指地址单元、直接地址单元Rn@Ridirect2范例MOV20H,#0AAHMOVP1,20HSJMP0006H将直接地址单元20H中内容送入直接地址单元90H中。(20H)=AAH(90H)=(20H)=AAH原地跳转执行过程:10000101操作码程序存储器direct11001000090H20H片内RAMSFR00100000direct21010101010101010寄存器间接寻址指令指令格式指令功能机器码周期指令中包含有间接寄存器的为寄存器间接寻址传送指令。11MOVA,@RiMOV@Ri,A(A)((Ri))1110011i((Ri))(A)1111011i2MOVdirect,@Ri(direct)((Ri))1000011i,direct寄存器所指地址单元内容与累加器A间进行数据传送寄存器所指地址单元内容传送入直接地址范例将寄存器所指地址单元78H的内容送入直接地址单元90H。SFR90H01010101执行过程:10000110操作码程序存储器10010000直接地址片内RAM78HR0…………MOVR0,#78HMOV@R0,#55HMOVP1,@R001111000R0=78H(地址值)((R0))=(78H)=55H(90H)=((R0))=55H01010101目录内部数据传送指令堆栈操作指令外部数据传送指令数据交换指令外部数据传送指令用于片外RAM、ROM与单片机片内存储器间的数据传送。C:CodeMOVMOVCMOVXX:ExternalRAM外部程序存储器字节传送指令16位数传送指令外部RAM字节传送指令外部数据传送指令16位数传送指令指令格式指令功能机器码周期2MOVDPTR,#data1610010000data15~8,data7~0(DPH)data15~8(DPL)data7~0唯一的16位传送指令;配合MOVC、MOVX指令实现外部数据传送。片外RAM、ROM的地址外部程序存储器字节传送指令属于变址寻址指令,专用于查表,称为查表指令。地址数据0040H55H0041H0AAH0042H0A0H0043H78H………………55H0AAH0A0H指令178H0040H0041H0043H0042H0000H……程序存储器程序存储器中连续存放的一段常数地址数据对应的表格表抽象外部程序存储器的字节传送指令指令格式指令功能机器码周期MOVCA,@A+PC100000112(PC)(PC)+1(A)((PC)+(A))MOVCA,@A+DPTR(A)((DPTR)+(A))100100112DPTR:表头地址(基址),A:偏移量(变址);范例MOVA,#dataMOVCDPTR,#0040HMOVCA,@A+DPTR程序存储器中从地址0x40H开始连续存放一串常数,用MOVCA,@A+DPTR指令查找任意数据。取得表内数据取得16位表头地址偏移量data存入A执行过程偏移量为1PC偏移量为2、3……结果??ACC00H55H0AAH0A0H0111010078H0040H0041H0043H0042H……1001001140HMOVCA,@A+DPTR01H10010000MOVA,#01HMOVDPTR,#0040H(DPH)(DPL)……DPTR程序存储器0040H0AAH取得表头地址表头地址加偏移量取得值外部程序存储器的字节传送指令指令格式指令功能机器码周期MOVCA,@A+PC100000112(PC)(PC)+1(A)((PC)+(A))MOVCA,@A+DPTR(A)((DPTR)+(A))100100112DPTR:表头地址(基址),A:偏移量(变址);PC:表头地址(基址),A:偏移量(变址)。范例MOVA,#dataMOVA,@A+PC程序存储器中从地址0x40H开始连续存放一串常数,用MOVCA,@A+PC指令查找任意数据。取得表中数据偏移量data存入A外部程序存储器的字节传送指令偏移量为5PCACC0A0H0111010078H0040H0041H0043H0042H05H10000011MOVA,#05HMOVCA,@A+PC程序存储器0AAH55H0AAHPC当前值1234PC+5=41H5外部程序存储器的字节传送指令指令格式特点执行结果由A和PC决定,表格只能存放在查表指令后的256个单元内,表格大小受到限制,且只能被一段程序所利用执行结果由A和DPTR决定,表格的大小和位置可在64KB程序存储器中任意安排,1个表格可由各个程序块公用MOVCA,@A+PCMOVCA,@A+DPTR外部RAM的字节传送指令指令格式指令功能机器码周期MOVXA,@Ri(A)((Ri))1110001i2MOVX@Ri,A((Ri))(A)1111001i2MOVXA,@DPTR(A)((DPTR))111000002MOVX@DPTR,A((DPTR))(A)111100002A与片外RAM中由Ri指示的地址单元中内容数据传送;A与片外RAM中由DPTR指示的地址单元内容数据传送。写外部RAM读外部RAM外部RAM的字节传送指令指令格式特点Ri为8位寄存器,寻片外RAM范围为0000H~00FFHDPTR为16位寄存器,寻片外RAM范围为0000H~FFFFHMOVXA,@RiMOVX@Ri,AMOVXA,@DPTRMOVX@DPTR,A目录内部数据传送指令堆栈操作指令外部数据传送指令数据交换指令堆栈操作指令指令格式指令功能机器码周期POPdirect11010000,direct2((SP))(direct)(SP)(SP)-1PUSHdirect11000000,direct2(SP)(SP)+1((SP))(direct)入栈操作指令;PUSHaddrnaddr+3addr+2addraddr+1addr+4堆栈区data1data2data3data4SP第一步:(SP)=(SP)+1第二步:((SP))(addrn)数据处理PUSH将DPH内的内容送入SPPUSHDPLPUSHDPH将DPL内的内容送入SP假设(SP)=09H,DPTR=0123H,执行DPTR入栈操作。SPSFRDPHDPL0BH堆栈区0AH09H执行过程:00000001001000110010001100000001中断、子程序调用现场保护堆栈操作指令指令格式指令功能机器码周期POPdirect11010000,direct2((SP))(direct)(SP)(SP)-1PUSHdirect11000000,direct2(SP)(SP)+1((SP))(direct)出栈操作指令;POPaddrnaddr+3addr+2addraddr+1addr+4堆栈区data4data1data2data3数据处理SP第二步:(SP)=(SP)–1第一步:(addrn)((SP))POP将SP内的内容送入DPHPOPDPHPOPDPLPOPSP将SP内的内容送入DPL将SP内的内容送入SP假设(SP)=32H,片内RAM

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功