湖南工大单片机辅助课件第3章MCS-51系列单片机的指令系统_第1页
湖南工大单片机辅助课件第3章MCS-51系列单片机的指令系统_第2页
湖南工大单片机辅助课件第3章MCS-51系列单片机的指令系统_第3页
湖南工大单片机辅助课件第3章MCS-51系列单片机的指令系统_第4页
湖南工大单片机辅助课件第3章MCS-51系列单片机的指令系统_第5页
已阅读5页,还剩120页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本章内容本章内容寻址方式 指令的分类、格式及符号说明 分类指令 掌握mcs-51指令系统的各种寻址方式掌握每条指令的格式、功能及用法掌握指令的操作过程中操作数的变化情况以及对标志位的影响。学会正确选用指令完成简单的任务学习目的学习目的 mcs-51指令系统共有255种操作代码,用汇编语言表达时,只需熟记42种助记符就能表示33种指令功能共111条指令。 3.1.1 寄存器寻址 以寄存器的内容为操作数的寻址方式。 可进行寄存器寻址的寄存器有:工作寄存器r0r7、a、b、dptr和进位cy。mov a , r0 ;a r0r0(35h)a结果结果a=35h 3.1.2 立即寻址立即寻址 (1 1)

2、 直接寻址指令的指令码中含有操作数地址。 3.1.3 直接寻址功能:mov a,56h ;a (56h) 机器码:e5 5634h片内ram 34h累加器a56h 图3.1 指令传递 3.1.4 寄存器间接寻址 指令指定寄存器中的内容为操作数的地址。 工作寄存器r0、r1和专用寄存器dptr可用于间接寻址,在寄存器前加“”符号作前缀。mov a,r0 ;a r0mov a,r0;a (r0)例如:r065h,65h26h如图3.2所示,所示,执行结果a65h,执行结果a26h。注意:是它区别寄存器寻址的标志。26h片内rama 65h 图3.2 r065h3.1.5 相对寻址 程序存储器a图3

3、-3 指令过程 pc 26h0000h2000h2001h 80h 26h 2028h02h 20h a l u2002h3.1.6 变址寻址 以dptr和pc基址寄存器和累加器a变址寄存器的内容和为地址,寻址该地址单元,读取数据。 (1)movca,apc;a(apc)(2)movca,adptr ;a(adptr) movdptr,2000h ;dptr2000hmovca,adptr ;a34hmova,06h ;a06h程序存储器a 图3.4 dptr20 06h0000h34h 2006h 00h a l u 3.1.7 位寻址 3.2.1 指令格式 3.2.2 指令的三种表达形式

4、通常,指令有二进制,十六制和助记符等三通常,指令有二进制,十六制和助记符等三种表示形式种表示形式 。 3.2.3 指令的字节数 1 1)无操作数单节指令)无操作数单节指令 2 2)含有操作数寄存器号的单字节指令)含有操作数寄存器号的单字节指令 3.2.4 指令的分类及符号说明 mcs-51单片机可以分为五类:单片机可以分为五类:1.指令分类指令分类2)算术运算指令算术运算指令4)位操作指令位操作指令3)逻辑运算指令逻辑运算指令1)数据传送指令数据传送指令5)控制转移指令控制转移指令 3.2.5 数据传送指令 已知:已知:(30h)=12h、(31h)=13h、r0=30h、r1=31h,试问执

5、行以下指令后试问执行以下指令后a、30h、31h和和32h各是什么?各是什么? mov a , r0 mov r1,a mov r0, #34h mov 32h , r1执行后,a=12h ,30h=34h ,31h=12h ,32h=12h pushdirect ;sp sp+1,(sp) (direct)pop direct ;(sp) direct, sp sp-1 第一条指令称为压栈指令,用于把direct为地址的操作数传送到堆栈中去。 第二条指令称为出栈指令。 已知:(20h)=m1,(50h)=m2编程用堆栈指令把20h和50h单元中内容相交换。解:由堆栈所具备的原则,程序为:mo

6、v sp ,#60h;栈底首地址为60hpush20h;spsp1,61hm1push50h;spsp1,62hm2pop 20h ;20m2,spsp-1=61h 该类指令是其核心,总共该类指令是其核心,总共49条,分为算术运算指令,逻辑运条,分为算术运算指令,逻辑运算和移位指令等三大类。算和移位指令等三大类。3.2.6 算逻运算和移位指令1、加法指令(13条)(1)不带进位位(cy)加法(4条)add a, rn add a, directadd a, rjadd a, #data 例例 3.10a= 0 1 0 1 1 0 1 0 bdata= 0 1 1 0 1 0 1 1 b 901

7、07+ ) 1 1 1 0 0 0 1 0 1 b 1cs1970cp 1ac2.带进位位(cy)加法(4条)addc a, rnaddc a, #dataaddc a, directaddc a, ri3.加1指令(5条) inca;aa1incrn;rnrn1incdirect;(direct)(direct)1incri;(ri)(ri)1incdptr;dptrdptr12、减法指令(8条)1)带进位位()带进位位(cy)减法指令减法指令(4条条)000 0011cyacf0rs1 rs0ov1p2 2)减)减1 1指令(指令(4 4条)条)dec a ;aa-1dec rn ;rnr

8、n-1dec direct ;direct(direct)-1dec ri ;(ri)(ri)-11. bcd加法加法对对a中两个压缩中两个压缩bcd数相加之和调整为数相加之和调整为2位位bcd码数。码数。1)只能用在对)只能用在对bcd码数进行码数进行add或或addc操操 作后使用。作后使用。2)影响标志位:有进位时)影响标志位:有进位时 c1。a= 0 1 0 0 0 1 0 0 bdata=1 0 0 0 0 1 1 0 b 4486+ )0 1 1 0 1 0 0 0 0 b 1 1 0 1 0 0 1 1 0 0 0 0 b 0 1 1 0 0 1 0 1 0 b 130 1 1

9、0 b 低4位9, 加6调整高4位9,加6调整 mcs51单片机中没有十进制减法调整指令,因此,这里的bcd减法运算必须采用bcd补码运算法则。 例例 3.17 两位bcd数的模100bcd减数加60调整bcd差bcd减数减数的补数 1 0 0 1 1 0 1 0 b0 0 1 0 0 1 0 1 b 1 1 1 1 0 1 0 1 b 1 1 0 1 0 1 0 1 0 1 0 1 b 0 1 1 1 0 1 0 1 b 1 0 0 0 0 0 0 0 b +4、乘法和除法指令mulab ;abba ,形成标志 c0积积255 ov1divab ;abab,形成标志乘法指令除法指令 c=0除

10、数除数0 ov1除数除数0 ov0 解:求8位无符号单字节乘法,可直接利用乘法指令来实现,程序为: 共共20条,分为与、或、异或、条,分为与、或、异或、a操作指令。操作指令。(一)与指令(一)与指令anl a,rnanl a,rianl a,directanl a,#dataanl direct, aanl direct, #data; a a rn; a a (ri); a a direct; a a #data; direct direct a; direct direct #data(二)或指令(二)或指令 (三)异或指令(三)异或指令例例 3.21(四)累加器清零和取反指令(四)累加器

11、清零和取反指令cpl aclr a; a a; a 0 解:一个8位带符号二进制机器数的补码可以定义为反码加“1”。为此,相应程序为:org 0030hmov a ,40h ;a34hcpl a ;a/34hinc a ;a34h的补码mov 30h ,a ;结果送回40h单元sjmp $ ;停止rl a ;rr a ;a7a0acya7a0acya7a0aa7a0arlc a ;rrc a ; 解:一个16位二进制数扩大到二倍就等于是把它进行一次算术左移。由于mcs51单元片机的移位指令都是二进制8位的移位指令,因此16位数的移位指令必须用程序来实现。 算法为: m m+1 0 一、控制转移

12、指令一、控制转移指令(17(17条条) )ljmpaddr16 ;pcaddr16ajmp addr11 ;pcpc+2,pc100arrr11sjmp rel ;pcpc+2,pcpc+reljmp a+dptr ;pca+dptr1、无条件转移指令、无条件转移指令3.2.7控制转移和位操作指令f800hffffhf000hf7ffhe800hefffhe000he7ffhd800hdfffhd000hd7ffhc800hcfffhc000hc7ffhb800hbfffhb000hb7ffha800hafffha000ha7ffh9800h9fffh9000h97ffh8800h8fffh8

13、000h87ffh7800h7fffh7000h77ffh6800h6fffh6000h67ffh5800h5fffh5000h57ffh4800h4fffh4000h47ffh3800h3fffh3000h37ffh2800h2fffh2000h27ffh1800h1fffh1000h17ffh0800h0fffh0000h07ffh程序存储器程序存储器64k地址空间地址空间mcs-51系列单片机可以在系列单片机可以在64kb地址范围内寻地址范围内寻址,绝对转移指令的转移范围只在址,绝对转移指令的转移范围只在pc当前值当前值所指的所指的2kb地址范围内。地址范围内。一页:一页: 256个地址

14、单元个地址单元一区:一区: 8页,共页,共2kb地址单元;地址高地址单元;地址高5位决定区。位决定区。 64k: 32区,区,256页。页。 长转移指令长转移指令ljmp addr16 ; pc addr16 三字节指令,不影响标志位,可在三字节指令,不影响标志位,可在64kb地址范围内无条件转移。地址范围内无条件转移。 绝对转移指令绝对转移指令二字节指令,可在二字节指令,可在2kb地址范围内转移。地址范围内转移。ajmp addr11 ; pc pc+2,pc10-0 addr11 解:设sz=4100h,addr11=11010101101b,则根据上述指令码格式可得绝对转移指令的指令码为

15、: addr11 ajmppcpc+1pc+2rom2kb 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1操作码a9a10a11a7a0pc= 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 b=46adhpc15 pc11a0 . . 短转移短转移机器码: 80h rel sjmp rel ; pc pc+2+rel . 变址寻址转移指令变址寻址转移指令jmp a+dptr; pc a+dptr机器码:机器码: 73h jb rel; a=0 pc pc+2+rel a 0 pc pc+2jnb rel; a0 pc pc+2+rel a=0 pc pc+22

16、、条件转移指令、条件转移指令累加器累加器a判零转移判零转移(2条条) cjne a, #data, rel ;不相等转移不相等转移;#data=a, pc pc+3, c 0 ;#dataa, pc pc+3+rel, c 1cjne a, direct,rel;不相等转移不相等转移 ;若若a=(direct) ,则则pcpc+3,c00 ;若若a(direct) ,则则pcpc+3+rel, c00 ;若若adata ,则则pcpc+3+rel, c00 ;若若rndata ,则则pcpc+3+rel, c00 ;若若(ri)data ,则则pcpc+3+rel, c11djnz direc

17、t, rel ;(direct) (direct)-1 ;若(direct)0,则pcpc+3+rel ;若(direct)=0,则pcpc+3djnz rn, rel;rn rn1 ;若rn=0 则 pc pc+2 ;若rn0 则pc pc+2+rel减一不为零转移减一不为零转移调用指令调用指令(2条条)acall addr11;pc pc+2 ;sp sp+1 ;(sp) pc70 ;sp sp-1 ;(sp) pc158 保护返回地址保护返回地址 ;pc100 addr11 a)短调用是一条双字节指令,格式为:3、子程序调用和返回指令、子程序调用和返回指令机器码:机器码: a10 a9

18、a8 1 0 0 0 1 a7 a6 a5 a4 a3 a2 a1 a0 b) 长调用指令长调用指令lcall addr16;pc pc+3;sp sp+1,(sp) pc70;sp sp1,(sp) pc158;pc addr16 返回指令返回指令(2(2条条) )retpc158 (sp) ,sp sp-1pc70 (sp), sp sp-1a)a)子程序返回指令子程序返回指令 b)b)中断返回指令中断返回指令reti 空操作空操作noppc158 (sp), sp sp-1pc70 (sp), sp sp-1 二、位操作类指令二、位操作类指令(17(17条条) )送指令送指令mov c, bit ; c bitmov bit,c ; bit c 位置位和位清零指令位置位和位清零指令(4条条)clr c ; cy 0clr bit;bit 0setb c;cy 1setb bit;bit 1位运算指令位运算指令(6条条)anl c,bit;cy cy(bit)anl c, /bit ;cy cy/(bit)orl c,b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论