




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主要内容寻址方式指令系统传送与交换指令算术运算、逻辑运算指令控制转移指令位操作指令伪指令程序设计举例第3章MCS-51系列单片机的指令系统及汇编语言程序设计计算机通过执行程序完成人们指定的任务,程序由一条一条指令构成,能为CPU识别并执行的指令的集合就是该CPU的指令系统。MCS-51单片机汇编语言指令格式:
操作符目的操作数,源操作数操作符指明该指令完成什么操作;操作数是指明该指令的操作对象。目的操作数是存放结果的。指令中操作数提供的方式称为寻址方式。
指令中的常用符号Rn:表示当前工作寄存器R0~R7中的一个。Ri:代表R0和R1寄存器中的一个,用作间接寻址寄存器。dir:8位直接字节地址(片内RAM和SFR)#data:8位立即数,即8位常数。可以为2进制(B)、10进制、16进制(H)、字符(‘’)#data16:表示16位立即数,即16位常数,取值范围为:#0000H~#0FFFFHaddr16:表示16位地址addr11:表示11位地址rel:相对偏移量(为一字节补码)用于相对转移指令中bit:
位地址,在位地址空间中。 $:表示当前指令的地址。 指令中直接给出操作数的寻址方式。在51系列单片机的指令系统中,立即数用一个前面加“#”号的8位数(#data,如#30H)或16位数(#data16,如#2052H)表示。立即寻址中的数,称为立即数。例如指令:MOVA,#58H;58H→A3.1寻址方式
3.1.1立即寻址操作数的地址直接出现在指令中。 寻址对象:①内部数据存贮器:使用它的地址。②特殊功能寄存器:既可使用它的地址,也可以直接使用寄存器名。③位地址空间④程序存储器空间例:MOVA,40H;(40H)→AMOV40H,41H;(41H)→(40H)MOVP0,#45H;
45H→P0MOV80H,#45H;
45H→P0MOVC,18H;位地址18H→C3.1.2直接寻址
操作数存放在寄存器中。寻址对象:A,B,C,DPTR,R0~R7。B仅在乘除法指令中为寄存器寻址,在其他指令中为直接寻址。A可以寄存器寻址又可以直接寻址,直接寻址时写作ACC 例如:MOVA,R0;R0→AMULAB;A*B→BAADDA,ACC;A+A→A3.1.3寄存器寻址 操作数存放在以寄存器内容为地址的单元中,用做间址的寄存器为Ri(i=0,1)、DPTR。
①对片内的间接寻址用Ri(i=0,1)如:MOVR0,#20H
MOV@R0,A;A→(20H)
②对片外的间接寻址可用Ri(i=0,1)或DPTR如:MOVX@DPTR,A;A→以DPTR的内容为地址的外部RAM中MOVX@R1,A;A→以P2R1内容为地址的外部RAM中③PUSH和POP指令的源操作数是以SP间接寻址注意:寄存器间接寻址不能访问SFRMOVR1,#81HMOVA,@R1;不能访问SP,只能用MOVA,SP3.1.4寄存器间址 变址寻址只能访问程序存储器。操作数所在位置的地址由DPTR或PC寄存器与A的内容相加后形成。其中累加器A内容是可变的。变址寻址只有三条指令。 MOVCA,@A+DPTR;(A+DPTR)→AMOVCA,@A+PC;(A+PC)→AJMP
@A+DPTR;A+DPTR→PC注意:①A的内容是无符号数。②PC值是指令的当前PC值,即下条指令的PC值3.1.5变址寻址3.1.6相对寻址变址寻址只能访问程序存储器。相对寻址是将程序计数器PC的当前值与指令第二字节给出的偏移量相加,从而形成转移的目标地址。
如:JZ61H注意:①相对偏移量是一字节有符号数,用补码表示,偏移范围是:-128~+127。②PC值是指令的当前PC值,即下条指令的PC值。③源程序中偏移量常用符号地址表示。对可位寻址的位地址寻址。包括片内RAM的位地址空间和可位寻址的SFR(地址能被8整除) 如:MOVC,20H;位寻址
MOVA,20H;字节寻址以上两条指令究竟是位寻址还是字节寻址,根据两操作数类型一致的原则,由另一个操作数决定。
3.1.7位寻址立即寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址片内RAM低128B单元√√工作寄存器组R0~R7√√√特殊功能寄存器SFRA、B、DPTR、C√√√程序存储器√√√√片外RAM√位地址空间√√寻址方式与存储空间的对应关系
dir@Ri
Rn#dataAMOVA, Rn
#datadir
@RiMOVdir, ARn,@Ri
#data
dir
MOV@Ri, A
dir
#data内部RAM、SFR之间的传送MOV指令MOVRn,
Adir
#data3.2指令系统
3.2.1数据传送与交换指令例R1=20H,(20H)=55H,MOVA,@R1执行后,A=55H。例(40H)=30H,MOVR7,40H执行后,R7=30H。例MOVR7,#40H执行后,R7=40H。注意:寄存器之间无传送;寄存器间址和寄存器之间无传送;立即数不能做目标地址;
@Ri,A@DPTR,AA,@RiA,@DPTRMOVXMOVCA,@A+PCA,@A+DPTR2.外部存储器和A累加器之间的传送MOVXA
外部数据存储器程序存储器MOVC
利用MOVX实现片外数据存储器数据传送
(2000H)→(2100H)
MOVDPTR,#2000H MOVXA,@DPTR MOVDPTR,#2100H MOVX@DPTR,A
;DPTR=2000H
;DPTR=2100H;A←X
;(2100H)←Xx片外数据存储器不能直接寻址。下列为非法指令:MOVXA,2000H×MOVX2100H,2000H×利用Ri间址找来实隐现将(2酱00配0H勤)→野(2树10畅0H洋)MO屋V杠P辛2,#2床0H;高位芳地址MO仇V烈R父0,#0早0;低位妇地址MO庙VX央A,@R恢0;读片蜜外RA箱MMO毅V弟P阿2,#2数1H;改变隐高位胡地址MO先VX岁@R等0,A;写片章外RA过M利用MO规VC指令秒实现味查表济功能注:①只能控从程如序存英储器挤读取约数据叹到A累加限器。②只能达使用贺变址溪间接渣寻址指方式1)DP晕TR为基牵址寄比存器MO另VC煌A,@A吴+D喷PT叶R;A←湾(A匆+D复PT楼R)查表凡范围禽为64猎KB程序个存储巨器任驰意空凡间。2)PC为基房诚址寄梁存器MO防VC养A,@A稠+P万C;A←术(鲜A+搂PC扛)常数葛表只软能在锁查表皇指令允后25宴6B范围配内。例查表座法求Y=码X2。设X(灵0≤筒X≤岩15梦)在片杯内RA盘M兄20校H单雾元,冻要求特将查绩表求Y,存入勺片内RA超M怒21逮H单元1)用DP怨TR作基湿址寄危存器OR姻G发0婶10移0HSQ蜂U:冻MO削V胞D他PT按R,#T荒AB;确定抛表首垂地址MO奋V未A,20曲H;取XMO孕VC丑A,@A权+D土PT宾R;查表祸求Y=温X2MO秃V众2爷1H,A;保存YRE照T;子程袜序结双束…;其坝它程秒序段OR栏G箩0历20穴0H;常数穷表格拆首地企址TA拉B:逢DB舞00,01,04,09,…,22岭5;平方涨表指令冻地址源程命序OR翁G茅0君10订0H;程序急起始授地址01犁00H具SQ容U:隐M鞠OV塔A,20捡H;取X01弟02马H垃AD剧D梁A,#3;修正泰偏移砍量01搏04讨HMO理VC赞A,@A覆+P吧C;查表妄求Y=梯X201灾05每H础MO锅V赠2捐1H,A;存结苗果01云07艰H拌R旧ET;子程羡序结瞎束01狗08艺H叛TA尤B:相D驰B课0肯0,01,04;平方药表01勉0BH励DB奴09,…,22泛5思考震题:当0≤粗X≤衬25牢5时,弦如何更用查纲表法贸编程婶求Y=故X22)用PC作基劣址寄革存器3.交换冶指令实现逢片内RA炸M区的艰数据馒双向涨传送1)字节宿交换肝指令XC案H公A,Rn;A←伤→R悦nXC名H蕉A,@Ri;A←熟→(族Ri)XC糟H捆A,di笑r;A←判→(昏di帝r)2)报半字昼节交剪换指隔令XC侄HD冻A,@Ri;A0~3←→(R鬼i)0~3SW举AP不A;A4~7←→A0~3
dir@Ri
RnA4.堆栈籍操作袜指令入栈源指令凯:PU蓝SH洗d占ir;SP隙←S主P+矿1,(SP盛)←交(d搁ir)出栈加指令备:PO瓶P吸d弊ir;(d楚ir奸)莫←(菜SP释),SP体←S钢P-木1
@RiA7~47~43~03~0A7~43~0dir@RiRn#dataA
dir@Ri
Rn#dataAA,Rn,@Ri
#datadirADDADDCSUBBANLORLXRL加进位加借位减与或异或1.以A为目理的操耳作数膏的算繁术、亡逻辑依运算多指令槽(24条)3.支2.现2算术乓运算粪和逻往辑运刺算指级令2.以di隶r为目偶的操格作数男逻辑简运算证指令文(6条)A#data
dir与AN界L或OR肺L异或XR沙Ldir,#dataA3.加1、减1指令@RiAdirRnDPTRINC@RiAdirRnDEC4.十进简制调携整指伶令DA察A;仅对浑存于A中的窄加法值结果枕进行继十进项制调洲整若需完成湾十进笑制减法初运算糟,则铺应变根减法饱运算假为补医码的免加法赢运算恐即可付,其摇减数X的补秩码通枝过(9阶9-X恩)+脂1再DA赌A后得钥到。原则汽:和勇低4位大随于9或有拆半进乒位,痒则低4位加6和高4位大荒于9或有落进位淡,则答高4位加6例:(D者AT究A)抹-(荡DA鸣TA雨+1跪)=冠>(讨DA触TA权+2层)Y-后X=伴Y-客X+饿10计0丝式-秤->有效老位为2位十傻进制芽,模底为10享0=Y辜+(寸99裹-X舌)+露15.乘、拨除法懂指令MU广L球AB;A蚁×B伤→B洞ADI遵V宅AB;A÷喘B→商在A中,婆余数哲在B中6.专对A的指冬令CP把L而ACL阻R秧A;凤0择→A;A→AMO橡V漏A,负#9恰9H畅D铺A绘ACL过R贫C毅A剪DD蚊A筒,D献AT精ASU拴BB疾A树,D旁AT巨A+啄1姓D仓A顽AAD块D差A,年#1熊M会OV烂D敢AT伐A+庄2,炕ACYRR益ARL劲ARL猜C馒ARR壳C漆A移位企指令齐(仅峰对A宽)00101101A01001011ACY11001011A000101101A1CY10010110A设1CYCY1.调用想程序秆和返攻回类葵指令1)长告调用LC假AL价L副a枕dd怖r1录6;ad残dr桶16批→P钟C0~15指令马功能呀同80座X8扭6中的CA泳LL,调用催范围64波KB全部僻空间狭,指策令的纯机器雪码为装三字私节。2)短贤调用AC芹AL好L瓜a奸dd嗽r1册1丽;隶ad详dr大11辰→P网C0~10指令民的功阶能同巩前,近主要逢区别胳为:ad僚dr疫11公→P脱C0~10,而PC11~15保持皇原值珠不变遣,故雀其调轻用范盖围为2K晴B,即字子程腰序入厘口距棕当前PC不得铸超过2K肾B地址应范围碗。本饶指令逝的机库器码惭为二遮字节蔬。3.委2.色3控制唱转移利类指区令3)子秤程序租返回条指令(从著栈顶为弹出料断点筝到PC)RE巧T;从调托用子馒程序胞返回誓。RE慕TI;从才中断绵服务冒程序盟返回锣并恢册复中断计优先面级状蚊态触塘发器窄。2.转移财指令1)无初条件缠转移畏指令(1)短氧转移AJ笼MP脂ad郑dr以11;ad颗dr岸11咳→P蛋C0~10转移径范围迎:2K似B机器迫码为2字节(2)长弓转移LJ叶MP仍a杯dd准r1缎6;ad煌dr昂16物→P终C0~15转移银范围侄:64逮KB机器弱码为3字节宅。(3)间接箩转移JM胀P棵@清A+灶DP救TR;A+述DP诞TR疗→P焰C分析沾下列炎程序娃段,诞说出里当A分别听为0和2时,袋程序们转置薯何处登?该匪程序勿段的夹功能皇是什锦么?MO肆V财DP去TR,#T繁AB乒LEJM捡P汗@A偷+D肥PT煤RTA剧BL蒜E:AJ狂MP水P斧RO创C0AJ荒MP号P司RO幸C1AJ毁MP谱P劣RO腰C2AJ饥MP种P感RO增C3(4)无码条件说相对鸽转移SJ犯MPre颈l;PC真+r醒el穿→P壮C,即As+2+re驼l→牙PC,机器辞码为2字节As为源贞地址与(本港指令向的首替地址参),程执行婚本指喉令时怎当前PC=As救+2,re婶l为转喝移的哪偏移供量,猾转移萝可以植向前壳转(烤目的荣地址邪小于波源地羞址)干,也告可以壳向后弄转(朵目的巡寿地址逼大于拜源地拌址)诉,因烘此偏君移量re令l是1字节惹有符欠号数排,用先补码撞表示律(-12某8~+12遵7),番所以捷指令耳转移漠范围约在离首源地略址As的-12坚6~+12裹9字节来之间佛。2)条背件转欺移指午令(1)累惠加器北为零侧(非伏零)浮转移JZ舒/J柄NZre概l;A=战0/螺(A≠0)则转讲移,够否则肥顺序执行叼程序(2)减1不等捎于零御转移DJ禁NZRn大/d末ir骗,r交el功能刷为:Rn斥(d虫ir凑)-盖1→弹Rn怨(d央ir艇)相减胆结果≠0转,否则赵顺序刘执行车程序(3)比终较转已移指撤令CJ艳NEA,鞋di斤r,惭re亚lCJ两NEA,碌#d阿at僚a,肤re翅lCJ蜡NERn假,#站da蓝ta汇,r确elCJ天NE贱@Ri客,#则da启ta山,r奋el操作虹数1不等于承操作庸数2则转梨,否逮则顺塔序执裤行。1例:Y=-1X≥ZX<Z
Z
X
YDATA+2DATA+1DATAMO灭V瘦D涨AT午A+抄2,#0友FF丛HMO识V思A,DA缩慧TACJ帖NE蓄A,DA壤TA悲+1,NE叫XTNE暖XT猎:槐JC琴N装EX张T1MO蛙V演DA吩TA古+2,#1NE笔XT诞1:创RE坡Tdir@RiRn#dataA1.位传株送指拔令MO载V清C,bi紧t尚;(bi们t)→CYMO铜V悼bi罚t,C;CY仇→b丽it2.位状桃态控颜制指克令CL哄R件C;0→僚CY仗C链LR果b笨it;0→塞bi覆tSE扇TB宪C;1→森CYSE料TB留bi亦t;1→敞bi矩tCP敢L距C;CY米→C绕YCP恶L块bi晕t;bi原t→蠢bi逆t3.拐2.渴4位操傲作指骄令3.位逻辑运算指令
ANLC,bit;CY∧(bit)→CY
ANLC,/bit;CY∧(bit)→CY
ORLC,bit;CY∨(bit)→CY
ORLC,/bit;CY∨(bit)→CY4.位转椒移位转茫移根锹据位邻的值怒决定较转移锐,均粱为相图对转呀移指棒令。JCre挪l;C尤Y=惑1,则转卸移,专否则舟顺序疯执行孔程序JN旧Cre娘l;C弓Y=催0,则转武移,述否则拐顺序米执行世程序JB谷b号it,re诸l;(抹bi覆t)栋=1扑,则转六移,半否则显顺序懒执行毅程序JN毕B嫂b雁it,re疾l;(鱼bi麻t)肥=0毒,则转齐移,杨否则炸顺序神执行渐程序JB五C尸b坐it,re先l;(周bi捧t)锅=1趣,则转蚁移,碧且该平位清炸零,级否则顺序苏执行论程序1.定义厦:汇编进控制蓄指令叫,没道有指吸令代迎码,事不能鸭被CP桐U执行淡,只编用于样汇编金过程球,为敞汇编纲程序拖提供芒汇编刷信息孤。2.常用完伪指搅令(1)OR沃GOR娱G是设着置起循始地艳址伪蜂指令倡,其垦格式鬼是:OR疯G俭16位地斗址或油标号(2)EN跟DEN驱D是结娱束汇症编伪好指令矿,其逮格式宅是:EN塌D(3)DBDB是定巷义字惹节伪谣指令傻,其念格式汉是:[标号诞:]逗D骨B字节叫型数估表(4)DWDW是定原义字骡伪指晓令,走其格临式是厌:[标号禾:]氏DW字型赢数表3.什3伪指无令(5)DSDS是定坑义存灯储空膊间伪烧指令斤,其邪格式你是:[标号防:]降DS表达浸式(6)EQ叹UEQ铲U是赋探值伪征指令埋,其糊格式枕是:字符彩名称EQ游U数据顺或汇宾编符辉号(7)DA知TADA肺TA是数羊据地权址赋丸值伪敬指令热,其苦格式陵是:字符磨名称DA置TA表达根式(8)BI国TBI横T是位剥地址傲赋值厨伪指织令,今其格许式是指:字符倒名称BI戏T位地蜡址详见格表3.竭3糊MC之S-颗51中的穴伪指堂令进制雀间的美转换1.十进雷制→二进伐制(锁整数朝)任何抱十进瓜制数辨D有董:D=dn荡-1×10n-1+dn卖-2×10n-2+…+d1×101+d0×100=(…(d贿n-1×10+dn婚-2)×10+…+d1校)×策10+d0规律斗:di×10+di莲-1悬(i艘=1狗,2晨,…厚n-棚1)按二扒进制续运算衬规则逝运算类则得稍二进向制数3.乎4程序距设计颗举例例:信将4骂位十债进制己数D3D2D1D0转换钳成二融进制国数,掩设4栋位十进晴制数D3D2D1D0按分扯离BC起D码形清式存继放,充要求茂结果的吃高位槽存放主在R3中,他结果限的低出位存工放在R2中。方法谊:D3蕉D2阁D1百D0君=((宝(0×1副0+D3)×梨10吧+D2)×祸10+D1)×舱10冶+D推0结果海:16位二拢进制钢数0D30D20D10D0DATA流程瓜:设置指针指向DATA计数器初始(R7=3)Di初始→结果单元结果单元内容×10+Di-1→结果单元修改指针计数器-1→计数器↓↓↓↓↓↓计数器=0?↓返回YN×R3R2R2×0AHR3×0AH0A000R3R2MO细V忽A,怕R2MO窝V铁B,朽#0库AHMU管L极ABMO旧V窝R2扬,AMO绍V托A,叉BXC数H惊A,泡R3MO旱V祖B,悲#0厨AHMU旗L煌ABAD隆D淘A,暑R3MO任V恳R3负,ARE漂TMU纵L1拘0:结果孟单元犹乘10子程历序由于4位10进制犹(99和99)小全于16位2进制捕(65乱53季5),斑所以枯转换磨结果炭不会识大于16位MO闭V妥R0,#D猎AT限AMO嗓V能R7,#0盆3HMO唯V挥A,@R违0MO外V尾R2,AMO夕V月R3,#0AC忠AL模L敢M抄UL快10IN咸C芝R0MO毫V俘A,@R壳0AD模D宴A,R2MO面V像R2,AMO捎V比A,决R3AD垮DC岛A渴,#滑0MO林V辣R3俯,ADJ赏NZ太R糊7,嫂BC拒DB盘1RE澡TBC远DB投:BC彼DB拐1:0D30D20D10D0DATA2.十进洽制→二进露制(贡小数庙)10进制乘2取整(取趴溢出流)例:0.居62鼻5悔=2-1+2-3=0.符10窄10泳00勇00屑Ba.小数刺点位慕数由工乘2次数砌定,己结果贡单元昏字节猛数也由逮此定b.第一冷次的纺整数诸权最露高=2-1c.乘2是10进制忆的乘2,自躺身相刷加再DA乎A调整D=拾b-1×2-1+身b-2×2-2+…+b-m×2-m例:经设入龙口时10进制遣数在A中,爸要求先结果复放在R2中(8位二艇进制丢小数栋)结果单元清0次数计数器初始十进制小数单元乘2整数移入结果单元计数器-1→计数器↓↓↓↓↓计数器=0?↓返回YNBC适DB饭P:MO暮V妻R市2,#0MO厦V椅R锻6,#8BC芝DB贞P1:AD轧D愉A,AC涂CDA益AXC蔽H痒A,R2RL迅C汁AXC篮H跨A,R2DJ灵NZ术R补6,BC横DB害P1RE润T;结厚果单脾元清0;次味数初态始;10雀×2;将整数移入孟结果樱单元溢出腔在进威位位斤中3.二进偶制→十进余制(柄整数民)按权而展开以8位为普例:b7b6b5b4b3b2b1b0=b7×27+b6×26+…持+b0×20=(拳…(猛(0犯×2肉+b7)×粘2+复b6)×细2+叼…)根×2晒+b灰0将二饭进制携数逐阔步左亏移得利:b7,b6,b5,b4,b3,b2,b1,b0结果肆单元鸭字节泥数细:二习进制1字节(≤欢25哨5)十进念制2字节二进芒制2字节(≤麻65厚53牙5)十进救制3字节注:万这窃里的础乘2为10进制亿乘2按十梢进制绪运算失规则运算辫则得
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅游行业旅游品牌建设方案
- 工业工程与制造自动化作业指导书
- 建筑业BIM技术应用推广方案
- 马鞍山2025年安徽马鞍山和县事业单位招聘41人笔试历年参考题库附带答案详解
- 产品质量管理与品牌形象塑造的策略研究
- 铜仁2025年贵州铜仁市玉屏县事业单位招聘40人笔试历年参考题库附带答案详解
- 通化2025年吉林通化市事业单位招聘应征入伍高校毕业生24人笔试历年参考题库附带答案详解
- 淄博2025年山东淄博市博山区事业单位招聘综合类岗位18人笔试历年参考题库附带答案详解
- 2025年二级建造师考试《机电工程管理与实务》全真模拟卷
- 五四运动测试题及答案
- 港口大数据安全与隐私保护
- 校外培训机构规范办学承诺书
- 传统经典车要求 编制说明
- 工程项目管理智慧树知到期末考试答案章节答案2024年武昌工学院
- 奔驰订车合同范本
- 对直播带货税收征管问题研究与探索
- (高清版)JTGT 3650-01-2022 公路桥梁施工监控技术规程
- DZ∕T 0213-2020 矿产地质勘查规范 石灰岩、水泥配料类(正式版)
- MH 5006-2015民用机场水泥混凝土面层施工技术规范
- 江苏省装备制造业可持续发展对策研究
- 第十一届大唐杯5G知识考试题库300题(含答案)
评论
0/150
提交评论