版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章第三章 MC68HC08MC68HC08单片机指令系统单片机指令系统3.1 3.1 寻址方式寻址方式3.2 3.2 指令系统指令系统3.3 3.3 汇编语言程序设计汇编语言程序设计3.1 3.1 寻址方式寻址方式3.1.1 3.1.1 立即寻址立即寻址 寻址方式总表寻址方式总表 直接寻直接寻 直接寻址直接寻址 间接寻间接寻 即无偏移量变址即无偏移量变址 址方式址方式 扩展寻址扩展寻址 址方式址方式 : 寻址寻址 位寻址位寻址立即寻址立即寻址 相对寻址相对寻址 :直接:直接 变址寻址变址寻址 用变址寄存器的变址寻址用变址寄存器的变址寻址 位寻址位寻址 用堆栈指针的变址寻址用堆栈指针的变址寻
2、址 另:隐含寻址另:隐含寻址 类别:立即寻址类别:立即寻址 概念:操作数包含于指令中,即在操作码的后续字节中概念:操作数包含于指令中,即在操作码的后续字节中 表达:汇编语言表达:汇编语言 #data #data 机器语言机器语言 OP CODEOP CODE,n n 例:例: AND #AND #0F CPX #100F CPX #10 寻址区域:用户寻址区域:用户ROMROM或或Flash Flash 3.1.2 3.1.2 直接寻址直接寻址 类别:直接寻址(零页寻址)类别:直接寻址(零页寻址) 概念:指令中直接给出存放操作数的低位字节地址,即操作数的有效地址概念:指令中直接给出存放操作数的
3、低位字节地址,即操作数的有效地址EAEA的低位存放于操作码后续的一个字节中,地址的高位字节默认为的低位存放于操作码后续的一个字节中,地址的高位字节默认为$00$00,且不含在,且不含在指令中。在单字节地址前加符号指令中。在单字节地址前加符号“”表示直接寻址表示直接寻址。 表达:汇编语言表达:汇编语言 addr8 addr8 机器语言机器语言 OP CODEOP CODE,n n 例:例: LDA LDA 40 40 或或 LDA LDA 40 40 寻址区域:存储器中最低寻址区域:存储器中最低256256个字节,即个字节,即0000000000FF00FF 类别:直接寻址类别:直接寻址 概念:
4、指令中直接给出存放操作数的概念:指令中直接给出存放操作数的2 2字节地址,即操作数的有效地址字节地址,即操作数的有效地址EAEA存存放于操作码后续的放于操作码后续的2 2个字节中个字节中 表达:汇编语言表达:汇编语言 addr16 addr16 机器语言机器语言 OP CODEOP CODE,m m,n n 例:例: SUB SUB 15401540 寻址区域:存储器中的任何一个字节,即寻址区域:存储器中的任何一个字节,即00000000 FFFF FFFF 3.1.3 3.1.3 扩展寻址扩展寻址 类别:间接寻址类别:间接寻址 概念:指令中指出存放操作数的概念:指令中指出存放操作数的1 1或
5、或2 2字节地址由变址寄存器字节地址由变址寄存器H H:X X给出,如果给出,如果没有一个指令修改没有一个指令修改H H寄存器中的内容,寄存器中的内容,H H寄存器中的值将默认为寄存器中的值将默认为$00$00。 该寻址方式该寻址方式可以移动链表指针或锁定一个经常使用的可以移动链表指针或锁定一个经常使用的RAMRAM地址或输入输出地址。地址或输入输出地址。 表达:汇编语言表达:汇编语言 ,X X 机器语言机器语言 OP CODEOP CODE 例:例: ADD ADD ,X X 寻址区域:存储器中的任何地方寻址区域:存储器中的任何地方3.1.4 3.1.4 无偏移量变址寻址(无偏移量变址寻址(
6、IXIX)3.1.5 3.1.5 相对寻址相对寻址 类别:变址寻址类别:变址寻址 概念:指令中指出如果发生转移,转移地址由操作码后提供的概念:指令中指出如果发生转移,转移地址由操作码后提供的8 8位有符号整位有符号整数(数(1 1字节)作为偏移量加上字节)作为偏移量加上PCPC提供的基地址(提供的基地址(PCPC的当前值)而得出。相对寻址的当前值)而得出。相对寻址只用于转移指令(包括转子指令)。只用于转移指令(包括转子指令)。 表达:汇编语言表达:汇编语言 标号标号 机器语言机器语言 OP CODEOP CODE,n n 例:例: BLO LOOP BSR DISPLYBLO LOOP BSR
7、 DISPLY 寻址区域:用户寻址区域:用户ROMROM或或FlashFlash中中PCPC当前值所表达地址的当前值所表达地址的-128-128到到+127+127(或操作码(或操作码起始地址的起始地址的-126-126到到+129+129) 类别:变址寻址类别:变址寻址 概念:指令中指出存放操作数的有效地址概念:指令中指出存放操作数的有效地址 EAEA由变址寄存器由变址寄存器H H:X X提供的基地提供的基地址和操作码后提供的址和操作码后提供的8 8位无符号整数(位无符号整数(1 1字节)的偏移量相加而得出。字节)的偏移量相加而得出。 表达:汇编语言表达:汇编语言 偏移量,偏移量,X X 机
8、器语言机器语言 OP CODEOP CODE,n n 例:例: DEC DEC 4040,X X 寻址区域:存储器中的任何地方寻址区域:存储器中的任何地方3.1.6 83.1.6 8位偏移量变址寻址(位偏移量变址寻址(IX1IX1)3.1.7 163.1.7 16位偏移量变址寻址(位偏移量变址寻址(IX2IX2) 类别:变址寻址类别:变址寻址 概念:指令中指出存放操作数的有效地址概念:指令中指出存放操作数的有效地址EAEA由变址寄存器由变址寄存器H H:X X提供的基地址提供的基地址和操作码后提供的和操作码后提供的1616位无符号整数(位无符号整数(2 2字节)的偏移量相加而得出。字节)的偏移
9、量相加而得出。 表达:汇编语言表达:汇编语言 偏移量,偏移量,X X 机器语言机器语言 OP CODEOP CODE,m m ,n n 例:例: ADD ADD 12401240,X X 寻址区域:存储器中的任何地方寻址区域:存储器中的任何地方3.1.8 3.1.8 用堆栈指针的用堆栈指针的8 8位偏移量变址寻址位偏移量变址寻址 类别:变址寻址类别:变址寻址 概念:概念: 指令中指出存放操作数的有效地址指令中指出存放操作数的有效地址 EAEA由堆栈指针由堆栈指针SPSP提供的基地址和提供的基地址和操作码后提供的操作码后提供的8 8位无符号整数(位无符号整数(1 1字节)的偏移量相加而得出。该寻
10、址方式可方字节)的偏移量相加而得出。该寻址方式可方便访问堆栈中的数据,但访问时间将会长一些。便访问堆栈中的数据,但访问时间将会长一些。 表达:汇编语言表达:汇编语言 偏移量,偏移量,SP SP 机器语言机器语言 OP CODEOP CODE,n n 例:例: DEC DEC 4040,SPSP 寻址区域:堆栈中的任何地方寻址区域:堆栈中的任何地方3.1.9 3.1.9 用堆栈指针的用堆栈指针的1616位偏移量变址寻址位偏移量变址寻址 类别:变址寻址类别:变址寻址 概念:指令中指出存放操作数的有效地址概念:指令中指出存放操作数的有效地址EAEA由堆栈指针由堆栈指针SPSP提供的基地址和操提供的基
11、地址和操作码后提供的作码后提供的1616位无符号整数(位无符号整数(2 2字节)的偏移量相加而得出。字节)的偏移量相加而得出。 表达:汇编语言表达:汇编语言 偏移量,偏移量,SP SP 机器语言机器语言 OP CODEOP CODE,m m ,n n 例:例: ADD ADD 12401240,SPSP 寻址区域:堆栈中的任何地方寻址区域:堆栈中的任何地方3.1.10 3.1.10 直接位寻址直接位寻址 类别:直接位寻址类别:直接位寻址 概念:指令中指出存放位操作数(概念:指令中指出存放位操作数(0 0或或1 1)的直接位地址,该位地址由操作)的直接位地址,该位地址由操作码中的相应位来表达。码
12、中的相应位来表达。 表达:汇编语言表达:汇编语言 bit bit 机器语言机器语言 OP CODEOP CODE中的相应位中的相应位 例:例: BSET 5BSET 5,4040 寻址区域:存储器中的前寻址区域:存储器中的前256256个字节中的任何可读写的位,即个字节中的任何可读写的位,即0000 0000 00FF00FF中的任何可读写的位中的任何可读写的位3.1.11 3.1.11 隐含寻址隐含寻址 类别:隐含寻址类别:隐含寻址 概念:指令中以隐含方式指出存放操作数的地址,该地址以操作码来指定,概念:指令中以隐含方式指出存放操作数的地址,该地址以操作码来指定,而不提供地址的任何信息。而不
13、提供地址的任何信息。 表达:汇编语言表达:汇编语言 指令本身指令本身 机器语言机器语言 无无 例:例: TAXTAX 寻址区域:专对寻址区域:专对A A、H H、X X、CCRCCR等等3.1.12 3.1.12 存储器到存储器的寻址方式存储器到存储器的寻址方式 存储器到存储器的寻址方式有存储器到存储器的寻址方式有4 4种不同的形式:种不同的形式: (1)(1)立即寻址到直接寻址立即寻址到直接寻址 (2)(2)直接寻址到直接寻址直接寻址到直接寻址 (3)(3)自动变址寻址到直接寻址自动变址寻址到直接寻址 (4)(4)直接寻址到自动变址寻址直接寻址到自动变址寻址 指令格式为:指令格式为:MOV
14、MOV 源地址,目的地址源地址,目的地址 1.1.立即寻址到直接寻址立即寻址到直接寻址 操作码后紧跟的操作数将被存储到操作码后第二个字节所指的地址中。操作码后紧跟的操作数将被存储到操作码后第二个字节所指的地址中。通常用来初始化变量和寄存器,用这种寻址方式的传送指令不影响累加器通常用来初始化变量和寄存器,用这种寻址方式的传送指令不影响累加器的值。的值。 例如例如 MOV #$05MOV #$05, $C5 $C5 2. 2.直接寻址到直接寻址直接寻址到直接寻址 操作码后第一个字节是源操作数的地址,第二个字节是目的操作数操作码后第一个字节是源操作数的地址,第二个字节是目的操作数的地址。通常用于在存
15、储器间直接移动数据。用这种寻址方式的传送指的地址。通常用于在存储器间直接移动数据。用这种寻址方式的传送指令不影确累加器的值。令不影确累加器的值。 例如例如 MOV $05MOV $05,$F0$F0 3 3自动变址寻址到直接寻址自动变址寻址到直接寻址 H H:X X中的内容作为存放源操作数的地址,有效目标地址由操作码的中的内容作为存放源操作数的地址,有效目标地址由操作码的后继字节给出,数据传送后,后继字节给出,数据传送后,H H:X X自动加自动加1 1。 常用来在间接寻址页中的常用来在间接寻址页中的数据块传送,用这种寻址方式的指令不影响累加器的值。数据块传送,用这种寻址方式的指令不影响累加器
16、的值。 例如例如 MOV X+MOV X+,$18 $18 4 4直接寻址到自动变址寻址直接寻址到自动变址寻址 有效源地址由操作码的后继字节给出,有效源地址由操作码的后继字节给出, H H:X X中的内容作为存放目中的内容作为存放目标操作数的地址,数据传送后,标操作数的地址,数据传送后,H H:X X自动加自动加1 1。 通常用于将存储器的内通常用于将存储器的内容填充到间接寻址页中的数据表格。用这种寻址方式的指令不影响累加容填充到间接寻址页中的数据表格。用这种寻址方式的指令不影响累加器的值。器的值。 例如例如 MOV $18MOV $18,X+X+3.2 3.2 指令系统指令系统 指令系统指令
17、系统 即即MCUMCU所能执行的所有指令的集合。所能执行的所有指令的集合。 MC68HC08MC68HC08的指令系统可分为的指令系统可分为4 4类:类: 数据存取类指令数据存取类指令 算术算术/ /逻辑运算类指令逻辑运算类指令 又分:算术运算类指令和逻辑运算类指令又分:算术运算类指令和逻辑运算类指令 程序控制类指令程序控制类指令 又分:无条件又分:无条件/ /条件转移类指令和控制类指令条件转移类指令和控制类指令 位操作类指令位操作类指令 学习指令系统必须掌握的内容:学习指令系统必须掌握的内容:1 1)类别;)类别; 2 2)寻址方式;)寻址方式; 3 3)表达形式;)表达形式; 4 4)功能
18、和对标志位的影响;)功能和对标志位的影响; 5 5)执行过程和时序)执行过程和时序3.2.1 3.2.1 数据存取类指令数据存取类指令 数据存取类指令的目标单元是数据存取类指令的目标单元是A A和和X X(或(或H H:X X),主要是取数指令、),主要是取数指令、存数指令、堆栈操作指令以及传送指令,还有几条存数指令、堆栈操作指令以及传送指令,还有几条A A、H H:X X、CCRCCR和和SPSP之之间的数据互换指令。间的数据互换指令。: 表示相乘运算; 表示逻辑与; 表示逻辑或; 表示逻辑异或; 表示Y的反码; 表示Y中的内容; 表示立即寻址; 表示隐含寻址; 表示相对寻址; 表示无偏移量
19、变址寻址; 表示8位偏移量变址寻址; 表示16位偏移量变址寻址; 表示直接寻址; 表示扩展寻址; 表示8位偏移量栈指针寻址; 表示16位偏移量栈指针寻址;表示无偏移量变址增1寻址;表示8位偏移量变址增1寻址;表示存储器至存储器IMD寻址; 表示存储器至存储器DD寻址;表示存储器至存储器寻址;表示方法:表示方法:(Y) 表示表示Y中的内容中的内容(Y) 表示以表示以Y中的内容作地址,该地址中的内容中的内容作地址,该地址中的内容执行执行取数取数操作操作并按并按取入取入的数的数来改来改变变N,Z标标志位,志位,且且V=0操作说明操作说明43IX2(X)+addr16) XLDX addr16,X32
20、IX1(X)+addr8) XLDX addr8,X21IX(X) XLDX ,X43EXT(addr16) XLDX addr1632DIR(addr8) XLDX addr822IMM data XLDX # data寄寄存存器器X取取数数累累加加器器取取数数周期数周期数字节字节寻址方式寻址方式操操 作作指指 令令类类型型表表1 1 数据存取类指令数据存取类指令LDA addr16,XLDA addr8,XLDA ,XLDA addr16LDA addr8LDA # dataLDA addr8,SPLDA addr16,SP(SP)+addr8) A(X)+addr16) A(X)+add
21、r8) A(X) A(addr16) A(addr8) A data A( SP)+addr16) AIX2IX1IXEXTDIRIMMSP2SP14332214332223445LDX addr8,SPLDX addr16,SPLDHX # data16LDHX addr8(SP)+addr8) X(SP)+addr16) X addr16 H:X(addr8)H (addr8+1)XSP1SP2IMMDIR34324534续表续表1 154SP2(X) (SP)+addr16STX addr16,SP操作说明操作说明周期周期数数字字节节寻址方寻址方式式操作操作指令指令类型类型43SP1(X
22、) (SP)+addr8STX addr8,SP43IX2(X) (X) +addr16STX addr16,X32IX1(X) (X)+addr8STX addr8,X21IX(X) (X)STX ,X43EXT(X) addr16STX addr1632DIR(X) addr8STX addr8寄寄存存器器X存存数数43IX2(A) (X) +addr16STA addr16,X32IX1(A) (X)+addr8STA addr8,X21IX(A) (X)STA ,X43EXT(A) addr16STA addr16(A) addr8STA addr8累累加加器器存存数数执行存执行存数操
23、作数操作并按存并按存入的数入的数来改变来改变 N,Z标志位标志位,且且V=032DIRSTA addr8,SPSTA addr16,SP(A) (SP)+addr8(A) (SP)+addr163445SP1SP242(H)addr8 (X) addr8+1STHX addr8DIR续表续表2 221INH(H:X)-1 SP操作说明操作说明周期周期数数字字节节寻址方寻址方式式操作操作指令指令类型类型21INH(SP)+1 H:X11INH(CCR) A21INH(A) CCR42IX+D42DIX+53DD( addr8) addr8传传送送指指令令21INHPULH21INHPULA21I
24、NHPSHX21INHPSHH(A)(SP) (SP)-1 SPPSHA堆堆栈栈操操作作指指令令 影响影响 N,Z标志标志位,且位,且V=021INHPULX12INH31 A3:0 A7:4NSAINH(H)(SP) (SP)-1 SP(X)(SP) (SP)-1 SP(SP)+1 SP (SP) A(SP)+1 SP (SP) H(SP)+1 SP (SP) XMOV #data,addr8MOV addr8 ,addr8MOV addr8 ,X+MOV X+ ,addr8TAPTPATSXTXATXSTAX data addr8( addr8)(H:X) (H:X)+1 H:X(H:X)
25、 ) addr8 (H:X)+1 H:X(A) X(X) A交换交换IMDINHINH341111不影不影响标响标志位志位不影不影响标响标志位志位VHINZC例:例:LDA #$05LDA $05LDA $1030LDX #$05LDX $05LDX $1030#$05A($0005)A($1030)A#$05X($0005)X($1030)X例:例:LDX #$89 LDA , X 执行结果:执行结果:A ($0089)#$89X(X)=($0089)ALDA $08 , X若 :(X)=$60 ($08+$60)ALDA $1002 , X若 :(X)=$60 ($1002+$60)ALD
26、X , X(X)X若(X)=$60 ($0060)XSTA $90(A)$0090STX $90(X)$0090STX , X(X)(X)若(X)=$60 (X) ($0060)即$60 ($0060)例:例:LDA $1010 ; A ($1010) LDA $1010 , X ; A ( $1010+(X) LDX , X ; X (X) LDX $0F , X ; X (X)+$0F)执行前:执行前:X中内容为中内容为$50, $50RAM单元内容为单元内容为$20执行此段程序后执行此段程序后X中内容为多少?中内容为多少?执行后:执行后:X中内容为单元号为中内容为单元号为$20+$0F=
27、$2F RAM单元的内容单元的内容。 STX $0F , X ; $0F+(X) (X)执行前:执行前:X中内容为中内容为$50执行此段程序后执行此段程序后X中内容为多少,中内容为多少,$5F RAM单元的内容为多少?单元的内容为多少?执行后:单元号为执行后:单元号为$50+$0F=$5F RAM单元的内容为单元的内容为$50,X中也为中也为$50。3.2.2 3.2.2 算术算术/ /逻辑运算类指令逻辑运算类指令 又分:算术运算类指令和逻辑运算类指令。又分:算术运算类指令和逻辑运算类指令。3.2.2.1 3.2.2.1 算术运算类指令算术运算类指令 MC68HC08MC68HC08的算术运算
28、指令一般均隐含为操作数与累加器的算术运算指令一般均隐含为操作数与累加器A A进行算术进行算术运算或存储器本身以及变址寄存器运算或存储器本身以及变址寄存器 X X进行算术运算。进行算术运算。 算术运算指令又分为:算术运算指令又分为: 加减法运算指令加减法运算指令 比较指令比较指令 乘法运算指令乘法运算指令 增量减量指令增量减量指令 取负指令和零测试指令取负指令和零测试指令 算术运算类指令如表算术运算类指令如表2 2所示:所示:表表2 2 算术运算类指令算术运算类指令根据根据结果结果影响影响V、H,N、Z,C标标志志操作说操作说明明周期数周期数字字节节寻址方式寻址方式操操 作作指指 令令类类型型5
29、3IX2(A) + ( X) +addr16) AADD addr16,X42IX1(A) + ( X) +addr8) AADD addr8,X31IX(A) + ( X) AADD ,X43EXT(A) +(addr16) AADD addr1632DIR(A) +(addr8) AADD addr822IMM(A) + data AADD #data加加法法指指令令ADD addr8,SPADD addr16,SP(A) + ( SP) +addr8) A(A) + ( SP) +addr16) ASP2SP13333带带进进位位加加法法指指令令43IX2(A) + ( X) +addr
30、16) + (C) AADC addr16,X32IX1(A) + ( X) +addr8) + (C) AADC addr8,X21IX(A) + ( X) + (C) AADC ,X43EXT(A) +(addr16) + (C) AADC addr1632DIR(A) +(addr8) + (C)AADC addr822IMM(A) + data + (C) AADC #dataADC addr8,SPADC addr16,SP(A) + ( SP) +addr8) + (C) A(A) + ( SP) +addr16) + (C) ASP2SP14534AIS #dataAIX #da
31、ta( SP) +data SP(H:X) +data H:XIMMIMM22223续表续表 2 2根据根据结果结果影响影响V、H,N、Z,C标标志志操作说操作说明明周期数周期数字字节节寻址方式寻址方式操操 作作指指 令令类类型型43IX2(A) - ( X) +addr16) ASUB addr16,X32IX1(A) - ( X) +addr8) ASUB addr8,X21IX(A) - ( X) ASUB ,X43EXT(A) -(addr16) ASUB addr1632DIR(A) -(addr8) ASUB addr822IMM(A) - data ASUB #data减减法法指
32、指令令SUB addr8,SPSUB addr16,SP(A) - ( SP) +addr8) A(A) - ( SP) +addr16) ASP2SP14534带带借借位位减减法法指指令令43IX2(A) - ( X) +addr16) - (C) ASBC addr16,X32IX1(A) - ( X) +addr8) - (C) ASBC addr8,X21IX(A) - ( X) - (C) ASBC ,X43EXT(A)-(addr16) - (C) ASBC addr1632DIR(A) -(addr8)- (C)ASBC addr822IMM(A) - data - (C) AS
33、BC #dataSBC addr8,SPSBC addr16,SP(A) - ( SP) +addr8) - (C) A(A) - ( SP) +addr16) - (C) ASP2SP14534续表续表 2 2乘乘除除53IX2( SP) +addr8) 1 ( SP) + addr8DEC addr8,SP42IX1( X) +addr8) 1 ( X) +addr8DEC addr8,X31IX( X) 1 ( X)DEC ,X42EXT(addr8) 1 addr8DEC addr811DIR(X) 1 XDECX11IMM(A) 1 ADECA减减1指指令令53IX2( SP) +a
34、ddr8) +1 ( SP) +addr8INC addr8,SP42IX1( X) +addr8) +1 ( X) +addr8INC addr8,X31IX( X) +1 ( X)INC ,X42EXT(addr8) +1 addr8INC addr811DIR(X) +1 XINCX根据结根据结果影响果影响V、N、Z标志标志11IMM(A) +1 AINCA加加1指指令令操作说操作说明明周期周期数数字字节节寻址寻址方式方式操操 作作指指 令令类类型型MULDIV(A) * (X) X:A(H:A) / (X) A,余数余数H影响影响Z、CINHINH1751根据根据结果结果影响影响V、N
35、、Z,C标志标志操作说操作说明明周期数周期数字字节节寻址方式寻址方式操操 作作指指 令令类类型型43IX2(A) ( X) +addr16)CMP addr16,X32IX1(A) ( X) +addr8)CMP addr8,X21IX(A) ( X)CMP ,X43EXT(A) (addr16)CMP addr1632DIR(A) (addr8)CMP addr822IMM(A) dataCMP #data与与累累加加器器比比较较指指令令CMP addr8,SPCMP addr16,SP(A) ( SP) +addr8)(A) ( SP) +addr16)SP2SP14534与与变变址址寄寄
36、存存器器比比较较指指令令43IX2 (X) ( X) +addr16)CPX addr16,X32IX1(X) ( X) +addr8)CPX addr8,X21IX(X) ( X)CPX ,X43EXT(X) (addr16)CPX addr1632DIR(X) (addr8)CPX addr822IMM(X) dataCPX #dataCPX addr8,SPCPX addr16,SP (X) ( SP) +addr8)(X) ( SP) +addr16)SP2SP14534CPHX #data16CPHX addr8 (H:X) data16 (H:X) (adata8:adata8 +
37、1)IMMIMM3342续表续表 2 2影响影响N、Z 、C43SP1( SP) +addr8) $00 TST addr8,SP32IX1( X) +addr8) $00 TST addr8,X21IX( X) $00 TST ,X32DIR(addr8) $00 TST addr811INH(X) $00 TSTX11INH(A) $00TSTA零零测测试试指指令令53SP1$00 ( SP) +addr8) ( SP) +addr8NEG addr8,SP42IX1$00 ( X) +addr8) ( X) +addr8NEG addr8,X31IX$00 ( X) ( X)NEG ,X
38、42DIR$00 (addr8) addr8NEG addr811INH$00 (X) XNEGX根据结根据结果影响果影响V、N、Z 、C标志标志11INH$00 (A) ANEGA取取负负指指令令操作说操作说明明周期周期数数字字节节寻址寻址方式方式操操 作作指指 令令类类型型DAA十进制调整十进制调整A21INH根据结根据结果影响果影响N、Z 标志标志,而而V=0续表续表 2 2例:例:LDA #$60 ADD #$30执行后:执行后:A中为中为$90。例:例: LDX #$80 LDA $1080 SUB ,X执行前:执行前:$80单元中的数为单元中的数为$20,$1080单元中的数为单元
39、中的数为$33执行后:执行后:A中的数为多少?中的数为多少? A:$33-$20=$13若用若用 CMP ,X 代替代替 SUB ,X 结果如何?结果如何? 减法运算后,差不回送减法运算后,差不回送A,A中仍然是中仍然是$33, 减法的结果通过标志位反映。减法的结果通过标志位反映。例:例:NEG $60执行前:执行前:$60单元中的数为单元中的数为$03执行后:执行后:$60单元中的数为单元中的数为$FD,是,是-03H的补码。的补码。例:例:LDX #$92 TSTX执行后:结果只影响标志位执行后:结果只影响标志位 $92-$00=$92 ,结果,结果N=1,Z=03.2.2.2 3.2.2
40、.2 逻辑运算类指令逻辑运算类指令 MC68HC08MC68HC08的逻辑运算指令又分为:的逻辑运算指令又分为: 基本逻辑操作指令基本逻辑操作指令 包括逻辑与、逻辑或和逻辑异或指令包括逻辑与、逻辑或和逻辑异或指令 位测试指令位测试指令 简单逻辑操作指令简单逻辑操作指令 包括清零指令和取反指令包括清零指令和取反指令 移位指令移位指令 包括算术左移指令、算术右移指令、逻辑左移指令、包括算术左移指令、算术右移指令、逻辑左移指令、逻辑右移指令、循环左移指令和循环右移指令逻辑右移指令、循环左移指令和循环右移指令 逻辑运算类指令如表逻辑运算类指令如表3 3所示:所示:表表3 3 逻辑运算类指令逻辑运算类指
41、令根据根据结果结果影响影响N、Z标志,标志,而而V=0操作说操作说明明周期数周期数字字节节寻址方式寻址方式操操 作作指指 令令类类型型43IX2(A) ( X) +addr16) AAND addr16,X32IX1(A) ( X) +addr8) AAND addr8,X21IX(A) ( X) AAND ,X43EXT(A) (addr16) AAND addr1632DIR(A) (addr8) AAND addr822IMM(A) data AAND #data逻逻辑辑与与指指令令AND addr8,SPAND addr16,SP(A) ( SP) +addr8) A(A) ( SP)
42、 +addr16) ASP2SP14534逻逻辑辑或或指指令令43IX2(A) ( X) +addr16) AORA addr16,X32IX1(A) ( X) +addr8) AORA addr8,X21IX(A) ( X) AORA ,X43EXT(A) (addr16) AORA addr1632DIR(A) (addr8)AORA addr822IMM(A) data AORA #dataORA addr8,SPORA addr16,SP(A) ( SP) +addr8) A(A) ( SP) +addr16) ASP2SP14534根据根据结果结果影响影响N、Z标志,标志,而而V=0
43、操作说操作说明明周期数周期数字字节节寻址方式寻址方式操操 作作指指 令令类类型型43IX2(A) ( X) +addr16) AEOR addr16,X32IX1(A) ( X) +addr8) AEOR addr8,X21IX(A) ( X) AEOR ,X43EXT(A) (addr16) AEOR addr1632DIR(A) (addr8) AEOR addr822IMM(A) data AEOR #data逻逻辑辑异异或或指指令令EOR addr8,SPEOR addr16,SP(A) ( SP) +addr8) A(A) ( SP) +addr16) ASP2SP14534位位测测
44、试试指指令令43IX2(A) ( X) +addr16)BIT addr16,X32IX1(A) ( X) +addr8)BIT addr8,X21IX(A) ( X)BIT ,X43EXT(A) (addr16) BIT addr1632DIR(A) (addr8)BIT addr822IMM(A) dataBIT #dataBIT addr8,SPBIT addr16,SP(A) ( SP) +addr8)(A) ( SP) +addr16)SP2SP14534续表续表 3 3续表续表 3 311INH $00 H CLRH32IX1 $00 ( X) +addr8 CLR addr8,X
45、21IX $00 ( X) CLR ,X32DIR $00 addr8 CLR addr811INH $00 X CLRX11INH $00 A CLRA清清 零零指指令令53SP1( SP) +addr8) ( SP) +addr8COM addr8,SP42IX1( X) +addr8) ( X) +addr8COM addr8,X31IX( X) ( X)COM ,X42DIR(addr8) addr8COM addr811INH(X) XCOMX根据结根据结果影响果影响N、Z 标志,标志,而而V=0,C=111INH(A) ACOMA取取反反指指令令操作说操作说明明周期周期数数字字节节
46、寻址寻址方式方式操操 作作指指 令令类类型型CLR addr8,SP$00 ( SP) +addr843SP1Z =1,而而V=0, N=0算算术术右右移移指指令令续表续表 3 353SP1ASR addr8,SP42IX1ASR addr8,X31IXASR ,X42DIRASR addr811INHASRX11INHASRACb7b0操作操作说明说明周期周期数数字字节节寻址寻址方式方式操操 作作指指 令令类类型型53SP1ASL addr8,SP42IX1ASL addr8,X31IXASL ,X42DIRASL addr811INHASLX11INHASLA算算术术左左移移指指令令C0b
47、7b0根据根据结果结果影响影响V、NZ、C标志标志根据根据结果结果影响影响V、NZ、C标志标志续表续表 3 353SP1LSR addr8,SP42IX1LSR addr8,X31IXLSR ,X42DIRLSR addr811INHLSRX11INHLSRACb7b0类类型型逻逻辑辑左左移移指指令令C0b7b0操操 作作操作操作说明说明周期周期数数字字节节寻址寻址方式方式指指 令令53SP1LSL addr8,SP42IX1LSL addr8,X31IXLSL ,X42DIRLSL addr811INHLSLX11INHLSLA根据根据结果结果影响影响V、NZ、C标志标志根据根据结果结果影响
48、影响V、Z、C标标志,志,而而N=0逻逻辑辑右右移移指指令令0续表续表 3 353SP1ROR addr8,SP42IX1ROR addr8,X31IXROR ,X42DIRROR addr811INHRORX11INHRORACb7b0循循环环左左移移指指令令Cb7b0操作操作说明说明周期周期数数字字节节寻址寻址方式方式操操 作作指指 令令类类型型53SP1ROL addr8,SP42IX1ROL addr8,X31IXROL ,X42DIRROL addr811INHROLX11INHROLA根据根据结果结果影响影响V、NZ、C标志标志根据根据结果结果影响影响V、NZ、C标志标志循循环环右
49、右移移指指令令例:LDA #$5D TAX STX ,X AND #$0F ORA #$30 AND ,X BIT #$01 A #$5DX (A) ; (X)=$5D(X) (X) ;$5D单元 $5DA (A) #$0F ; (A)=$0DA (A) #$30 ;(A)=$3DA (A) (X) ;(A)= #$3D #$5D =#$1D(A) #$01 ; Z=0, N=03.2.3 3.2.3 程序控制类指令程序控制类指令 又分:无条件转移指令又分:无条件转移指令/ /条件转移指令和控制类指令。条件转移指令和控制类指令。3.2.3.1 3.2.3.1 无条件转移指令无条件转移指令 MC
50、68HC08MC68HC08的无条件转移指令又分为:的无条件转移指令又分为: 无条件跳转指令无条件跳转指令 转子程序指令转子程序指令 返回指令返回指令 无条件转移指令如表无条件转移指令如表 4 4 所示:所示:操作操作说明说明周期周期数数字字节节寻址寻址方式方式操操 作作指指 令令类类型型42relPC进栈,进栈, (PC)+ 2 + rel PCBSR rel63IX2PC进栈,进栈, 00: ( X) +addr16 PCJSR addr16,X52IX1PC进栈,进栈, 00:( X) +addr8 PCJSR addr8,X41IXPC进栈,进栈, 00:( X) PCJSR ,X53
51、EXTPC进栈,进栈, addr16 PCJSR addr1642DIRPC进栈,进栈,00: addr8 PCJSR addr832rel(PC)+ 2 + rel PCBRA rel43IX200:( X) +addr16 PCJMP addr16,X32IX100:( X) +addr8 PCJMP addr8,X21IX00:( X) PCJMP ,X33addr16 PCJMP addr1622DIR00: addr8 PCJMP addr8无无条条件件跳跳转转指指令令表表 4 4 无条件转移指令无条件转移指令转转子子程程序序指指令令EXT类类型型指指 令令操操 作作寻址寻址方式方式
52、字字节节周周期期数数操作操作说明说明返返回回指指令令RTSRTI(SP)+1 SP,(SP) PCH(SP)+1 SP,(SP) PCLINHCCR、ACC、X、PCH、PCL依次从依次从栈中弹出栈中弹出INH1147续表续表 4 4根据结根据结果影响果影响V、H、I、N、Z、C标志标志3.2.3.2 3.2.3.2 条件转移指令条件转移指令 MC68HC08MC68HC08的条件转移指令又分为:的条件转移指令又分为: 标志位测试转移指令(包括无符号数比较转移指令和有符号数比标志位测试转移指令(包括无符号数比较转移指令和有符号数比较转移指令)较转移指令) 比较转移指令比较转移指令 减减1 1比
53、较转移指令比较转移指令 条件转移指令如表条件转移指令如表 5 5 所示:所示:类类型型指指 令令操作及测试条件操作及测试条件寻址寻址方式方式字字节节周周期期数数操操作作说说明明标志标志位测位测试转试转移指移指令令(无(无符号符号数比数比较转较转移指移指令)令)BHI rel大于转移大于转移 CZ=0BHS rel大于等于转移大于等于转移 C=0BLO rel小于转移小于转移 C=1BLS rel小于等于转移小于等于转移 C Z=1BEQ rel 等于转移等于转移 Z=1BNE rel不等于转移不等于转移 Z=0标志标志位测位测试转试转移指移指令令(有(有符号符号数比数比较转较转移)移)BGE
54、rel 大于等于转移大于等于转移 N V=0BGT rel 大于转移大于转移 Z (N V)=0BLT rel 小于转移小于转移 N V= 1BLE rel小于等于转移小于等于转移 Z (N V)=1表表 5 5 条件转移指令条件转移指令relrelrelrelrelrelrelrelrelrel22222222223333333333IRQ脚脚=0BIL relIRQ脚脚=1BIH relI=0BMC relI=1BMS relH=0BHCC relH=1BHCS relC=0BCC relrelC=1BCS rel标标志志位位测测试试转转移移操作操作说明说明周期周期数数字字节节寻址寻址方式
55、方式测试条件测试条件指指 令令类类型型续表续表 5 5relrelrelrelrelrelrelrelrelrelrel222222222222333333333333BPL relBMI relBNE relBEQ relN=0N=1Z=1Z=0操作操作说明说明周期周期数数字字节节寻址寻址方式方式测试转移条件测试转移条件指指 令令类类型型64SP1DBNZ addr8,SP, rel42IXDBNZ X, rel53IX1DBNZ addr8, X, rel32INHDBNZX rel32INHDBNZA rel53DIR(addr8 ) - 1 addr8, 0DBNZ addr8 , r
56、el64SP142IX+53IX1+43IMM4353DIR(A)-(addr8)= 0 比比较较转转移移指指令令续表续表 5 5CBEQ addr8,rel减减 1比比较较转转移移指指令令CBEQA #data,relCBEQX #data,relCBEQ addr8,X+,relCBEQ X+,relCBEQ addr8,SP,rel(A)- data = 0(X)- data = 0(A)- (H:X)+addr8 )= 0, (H:X)+1 H:X(A)-(H:X)= 0, (H:X)+1 H:X(A) - (SP)+addr8 )= 0(A ) - 1 A , 0(X ) - 1 X
57、 , 0(X )+addr8) - 1 (X )+addr8 , 0(X)- 1 (X) , 0(SP )+addr8) - 1 (SP )+addr8 , 0IMM3.2.3.3 控制类指令控制类指令 MC68HC08的控制类指令又分为:的控制类指令又分为: C和和I标志控制指令标志控制指令 空操作指令空操作指令 复位指令复位指令 省电控制指令省电控制指令(低功耗指令低功耗指令) 软件中断指令软件中断指令 控制类指令如表控制类指令如表 6所示:所示:表表 6 6 控制类指令控制类指令类型类型指指 令令操操 作作寻址寻址方式方式字字节节周期周期数数操作操作说明说明标志标志控制控制SEC1 CI
58、NH11CLC0 CINH11SEI1 IINH12CLI0 IINH12空操空操作作NOPINH11BRN relINH21复位复位RSP$FF SPL, SPH保持不变保持不变INH13省电省电控制控制WAIT停止停止CPU的运行的运行INH11STOP停止振荡器的工作停止振荡器的工作INH11软件软件中断中断SWI( PC )+ 1 PC( PCL ) (SP) ; (SP) 1 SP( PCH ) (SP) ; (SP) 1 SP( X ) (SP) ; (SP) 1 SP( ACC ) (SP) ; (SP) 1 SP (CCR ) (SP) ; (SP) 1 SP 1 I ($FF
59、FC) PCH ; ($FFFD) PCLINH193.2.4 3.2.4 位操作类指令位操作类指令 位操作指令包括置位位操作指令包括置位/清零(复位)指令和位测试转移指令清零(复位)指令和位测试转移指令,位的寻址位的寻址采用对所寻址位所在的内部采用对所寻址位所在的内部RAM单元直接寻址的方式单元直接寻址的方式(DIR)加上对所寻加上对所寻址位直接位寻址的方式址位直接位寻址的方式(bit)相结合的寻址方式。相结合的寻址方式。 置位置位/清零指令清零指令 位测试转移指令位测试转移指令 位操作指令如表位操作指令如表7 所示:所示:表表 7 7 位操作类指令位操作类指令类类型型指指 令令测试条件若测
60、试条件若寻址方式寻址方式字字节节周期周期数数置置位位 清清零零BSET bit,addr81 (addr8) bitDIR. bit24BCLR bit,addr80 (addr8) bitDIR . bit24位位测测试试BRSET bit , addr8 , rel(addr8)(addr8) bit C,bit C,若若(C) = 1,(C) = 1,则则(PC) + 3 + rel PC(PC) + 3 + rel PCDIR . bit35BRCLR bit , addr8 , rel(addr8) (addr8) bit C,bit C,若若(C) = 0,(C) = 0,则则(P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年实习律师面试题库及标准解答
- 机械前沿新技术
- AI行情:市场动态分析
- 2025 小学四年级思想品德上册公共场合礼仪示范课件
- 2026年5G+工业互联网融合报告
- 2025年生态环保型河道治理工程雨水收集利用技术创新可行性分析报告
- 2025年钠离子电池电解液商业化应用案例报告
- 优化门诊护理教学:教师技能大赛课件集锦
- 侨胞之家维权制度
- 仓库理货奖罚制度
- 2026院感知识考试题及答案
- 《红楼梦》导读 (教学课件) -高中语文人教统编版必修下册
- 安徽省九师联盟2025-2026学年高三(1月)第五次质量检测英语(含答案)
- (2025年)四川省自贡市纪委监委公开遴选公务员笔试试题及答案解析
- 2025年度骨科护理部年终工作总结及工作计划
- 2026安徽省农村信用社联合社面向社会招聘农商银行高级管理人员参考考试试题及答案解析
- 室外供热管道安装监理实施细则
- 岩板采购合同范本
- 通信管道施工质量管理流程解析
- popchrio欧可芮小红书营销方案
- (零模)2026届广州市高三年级调研测试英语试卷(含答案解析)
评论
0/150
提交评论